通过 MicroK8s 搭建你的 K8s 环境 (soulteary.com)
去年的时候,我曾经写过如何[简单搭建 Kubernetes 集群],当时使用的是官方的工具箱:Kubeadm,这个方案对于只是想试试的同学来说,还是过于复杂。这里介绍一款简单的工具:MicroK8s。官方给这款工具的人设是“无需运维的 Kubernetes ,服务于工作站、物联网。”最大的价值在于可以快速搭建单节点的容器编排系统,用于生产试验。[官方网站]里的文档有简单介绍如何安装使用,但是却未曾考虑安装过程存在网络问题的神州大陆的同学们,本文将结合这种情况聊聊。
by @技术头条 2020-02-01 13:43 查看详情
基于Yarn的分布式应用调度器Slider (codemacro.com)
Apache Hadoop Map-Reduce框架为了解决规模增长问题,发展出了yarn。而yarn不仅解决Map-Reduce调度问题,还成为了一个通用的分布式应用调度服务。yarn中的一个创新是把各种不同应用的调度逻辑拆分到了一个称为ApplicationManager(以下简称AM)的角色中,从而让yarn自己变得更通用,同时解决调度性能问题。ApacheSlider就是这其中的一个AM具体实现。但Slider进一步做了通用化,可以用于调度长运行(long-running)的分布式应用。

为了更好地理解Slider/Yarn,需要思考这样一个问题:在不用Slider/Yarn这种自动部署并管理应用的软件时,我们如何在一个网络环境中部署一个分布式应用?
by @技术头条 2019-08-10 22:38 查看详情
Python协程greenlet实现原理 (codemacro.com)
实现协程主要是在协程切换时,将协程当前的执行上下文保存到协程关联的context中。在c/c++这种native程序中实现协程,需要将栈内容和CPU各个寄存器的内容保存起来。在Python这种VM中则有些不同。
by @技术头条 2019-08-10 22:37 查看详情
kubernetes网络相关总结 (codemacro.com)
要理解kubernetes的网络模型涉及到的技术点比较多,网络上各个知识点讲得细的有很多,这里我就大概梳理下整个架构,方便顺着这个脉络深入。本文主要假设kubernetes使用docker+flannel实现。

整体上,了解kubernetes的网络模型,涉及到以下知识:
1、linux网络及网络基础
2、docker网络模型
3、kubernetes网络需求,及flannel网络实现

最后大家就可以结合实例对照着学习。
by @技术头条 2019-08-10 22:35 查看详情
结合场景谈一谈微服务配置 (jm.taobao.org)
除了文中三个场景,其实还有更多更大胆的应用场景,如“大数据实时计算算法调整”、“异地容灾多活”、“应用业务场景动态推送”等等,可以参看 Nacos 的阿里云产品 ACM 的使用场景 。Nacos 配置管理模块,将敏感配置收拢管控起来,极大降低数据泄露等风险,并且提供如“动态推送”、“版本控制”、“快速回滚”等功能,保障了敏感配置的变更安全平稳的执行。

在限流与降级的场景,通过一个示例,为大家演示了如何通过 Nacos + Sentinel 实现流量的动态控制,这也是 Nacos 配置管理的一个十分典型的应用场景。降级也一样,大促高峰期间将某个非关键的系统组件进行关闭,在过了高峰期后再开启,这个也是可以通过 Nacos 的“动态推送”的功能来实现。

总之,只要系统涉及到了“敏感的配置”、“动态的配置”,都应该考虑将配置放入到 Nacos 中,让 Nacos 管控起来。
by @技术头条 2019-08-10 22:30 查看详情
如何在优雅地Spring 中实现消息的发送和消费 (jm.taobao.org)
本文将对rocktmq-spring-boot的设计实现做一个简单的介绍,读者可以通过本文了解将RocketMQ Client端集成为spring-boot-starter框架的开发细节,然后通过一个简单的示例来一步一步的讲解如何使用这个spring-boot-starter工具包来配置,发送和消费RocketMQ消息。
by @技术头条 2019-08-10 22:29 查看详情
基于servlet实现一个web框架 (codemacro.com)
servlet作为一个web规范,其本身就算做一个web开发框架,但是其web action (响应某个URI的实现)的实现都是基于类的,不是很方便,并且3.0之前的版本还必须通过web.xml配置来增加新的action。servlet中有一个filter的功能,可以配置所有URI的功能都经过filter。我们可以基于filter的功能来实现一个简单的web框架。
by @技术头条 2019-08-10 22:28 查看详情
一次逆向网页内容加密 (codemacro.com)
最近写一个爬虫要从这个网页爬取内容。以往爬取网页内容复杂点的,一般就是处理下页面内容动态载入,动态载入的内容可能会要求复杂奇怪的参数,或者找到这个动态载入的HTTP接口在哪里麻烦点。但是这个网页不同。
by @技术头条 2019-08-10 22:27 查看详情
使用 Ngrox 实现内网穿透 (www.kymjs.com)
最近在做 Server 开发,需要将一个内网的服务暴露出去,使其在家也能访问到。

ngrok 是一个反向代理工具,官方有免费的可以使用,但是由于海外原因速度非常慢。好在这套服务都开源了,我们可以用开源代码搭建一个服务,自己使用。
by @技术头条 2019-08-06 22:28 查看详情
KNN算法实战:验证码的识别 (www.biaodianfu.com)
识别验证码的方式很多,如tesseract、SVM等。前面的几篇文章介绍了KNN算法,今天主要学习的是如何使用KNN进行验证码的识别。
by @技术头条 2019-08-06 22:28 查看详情
如何列出 Ubuntu 和 Debian 上已安装的软件包 (linux.cn)
当你安装了 Ubuntu 并想好好用一用。但在将来某个时候,你肯定会遇到忘记曾经安装了那些软件包。

这个是完全正常。没有人要求你把系统里所有已安装的软件包都记住。但是问题是,如何才能知道已经安装了哪些软件包?如何查看安装过的软件包呢?
列出 Ubuntu 和 Debian 上已安装的软件包

如果你经常用 apt 命令,你可能觉得会有个命令像 apt 一样可以列出已安装的软件包。不算全错。
by @技术头条 2019-06-28 13:40 查看详情
SOCKS 代理协议漫谈 (sexywp.com)
SOCKS 代理协议是网络上使用非常普遍的一种协议,最近因为想要自己搭建一个穿透防火墙的代理,所以,顺便仔细学习了一下 SOCKS 的相关资料,还算有点意思,特此记录一下。
by @技术头条 2019-06-28 13:39 查看详情
在 Linux 上创建文件的 10 个方法 (linux.cn)
我们都知道,在 Linux 上,包括设备在内的一切都是文件。Linux 管理员每天应该会多次执行文件创建活动(可能是 20 次,50 次,甚至是更多,这依赖于他们的环境)。如果你想 在Linux上创建一个特定大小的文件,查看前面的这个链接。

高效创建一个文件是非常重要的能力。为什么我说高效?如果你了解一些高效进行你当前活动的方式,你就可以事半功倍。这将会节省你很多的时间。你可以把这些有用的时间用到到其他重要的事情上。

我下面将会介绍多个在 Linux 上创建文件的方法。我建议你选择几个简单高效的来辅助你的工作。你不必安装下列的任何一个命令,因为它们已经作为 Linux 核心工具的一部分安装到你的系统上了。
by @技术头条 2019-06-28 13:33 查看详情
Go 各种数据库连接字符串汇总 (colobu.com)
各种数据库的连接字符串的连接格式(一般叫做database source name, 简称DSN)是不同的,本文汇总了各个数据库驱动程序的字符串连接方式。
by @技术头条 2019-06-28 13:32 查看详情
贝塞尔曲线学习笔记 (www.biaodianfu.com)
贝塞尔曲线的数学基础是早在 1912 年就广为人知的伯恩斯坦多项式。但直到 1959 年,当时就职于雪铁龙的法国数学家Paul de Casteljau才开始对它进行图形化应用的尝试,并提出了一种数值稳定的de Casteljau 算法。然而贝塞尔曲线的得名,却是由于1962年另一位就职于雷诺的法国工程师Pierre Bézier的广泛宣传。他使用这种只需要很少的控制点就能够生成复杂平滑曲线的方法,来辅助汽车车体的工业设计。

贝塞尔曲线由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋,我们在绘图工具上看到的钢笔工具就是来做这种矢量曲线的。因为控制简便却具有极强的描述能力,贝塞尔曲线在工业设计领域迅速得到了广泛的应用。不仅如此,在计算机图形学领域,尤其是矢量图形学,贝塞尔曲线也占有重要的地位。今天我们最常见的一些矢量绘图软件,如 Flash、Illustrator、CorelDraw 等,无一例外都提供了绘制贝塞尔曲线的功能。甚至像 Photoshop 这样的位图编辑软件,也把贝塞尔曲线作为仅有的矢量绘制工具(钢笔工具)包含其中。

贝塞尔曲线在 web 开发领域同样占有一席之地。CSS3 新增了transition-timing-function属性,它的取值就可以设置为一个三次贝塞尔曲线方程。在此之前,也有不少 JavaScript 动画库使用贝塞尔曲线来实现美观逼真的缓动效果。
by @技术头条 2019-06-28 13:31 查看详情
使用document.scrollingElement控制窗体滚动高度 (www.zhangxinxu.com)
介绍一个更加兼容、更加标准的设置窗体滚动高度的方法,那就是document.scrollingElement,兼容性足矣在实际项目中应用。JS基础API,人人必须了解的特性,学到就是赚到。
by @技术头条 2019-06-28 13:30 查看详情
如何在 Emacs 中使用 Magit 管理 Git 项目 (linux.cn)
Emacs 的 Magit 扩展插件使得使用 Git 进行版本控制变得简单起来。

Git 是一个很棒的用于项目管理的 版本控制 工具,就是新人学习起来太难。Git 的命令行工具很难用,你不仅需要熟悉它的标志和选项,还需要知道什么环境下使用它们。这使人望而生畏,因此不少人只会非常有限的几个用法。

好在,现今大多数的集成开发环境 (IDE) 都包含了 Git 扩展,大大地简化了使用使用的难度。Emacs 中就有这么一款 Git 扩展名叫 Magit。

Magit 项目成立有差不多 10 年了,它将自己定义为 “一件 Emacs 内的 Git 瓷器”。也就是说,它是一个操作界面,每个操作都能一键完成。本文会带你领略一下 Magit 的操作界面并告诉你如何使用它来管理 Git 项目。

若你还没有做,请在开始本教程之前先 安装 Emacs,再 安装 Magit。
by @技术头条 2019-06-28 13:28 查看详情
机器学习算法之线性回归 (www.biaodianfu.com)
线性回归是统计学总最常用的算法之一。从根本上来说,当你想表示两个变量间数学关系时,就可以使用线性回归。当你使用它时,你首先假设输出变量(有时称为响应变量、因变量或标签)和预测变量(有时称为自变量、解释变量或特征)之间存在线性关系。当然这种线性关系也可能存在于一个输出变量和数个预测变量之间。输出变量于预测变量之间存在线性关系是一个大胆的假设,同时也是一个最简单的假设。从数学表示形式来看,线性函数比非线性函数更加简单。线性模型作为最简单的参数化方法,始终值得关注。这是因为很多问题,甚至本质是非线性的问题,也可以采用线性模型解决。
by @技术头条 2019-06-28 13:27 查看详情
网站服务性能优化实践 (xuexb.com)
首先这里的服务性能优化不是指代码层面,也不是规范相关,只是对于网站运行的服务、请求、响应做的一些优化。当然这里的优化是我个人理解的,很可能事倍功半。

由于我多年(2005)前看过了 @心梦无痕 的【七界传说】,至今也在追他的【神武天帝】小说,更新频率是每天下午更新两章,而在看小说时的体验可为是极差,很多小说站都会有一个透明蒙层的广告,并且还把一章分成了多页以来提高 PV 量,但想看时还不得不点。于是很早我就想搞个小说站,正好手里有一个 xiaoshuo.io 域名,再结合我的服务已经 使用 Docker 部署 了,正好拿这个小说站练习下优化。
by @技术头条 2019-06-28 13:26 查看详情
RadonDB架构解析 (wubx.net)
做为一个MySQL从业人员,从我对RadonDB关注到使用,将近有半年多时间,这次RadonDB开源,基本也全程参与,在这里开源计划到最终在DTCC展现,也深深感受为开源,公司也需要付出很多很多。

这里了为了能快速的让大家了解RadonDB,我这里对RadonDB架构做一个简单的梳理,本着更容易大家理的态度不夸大,更利于接近于实质, 同时也方便大家深入去学习RadonDB。
by @技术头条 2019-06-27 13:53 查看详情