K8s折腾日记(一)--在Kubernetes中部署spring boot应用

基于容器的微服务架构目前已经成为了开发应用系统的主流,Kubernetes 则是运行微服务应用的理想平台。基于没事儿瞎折腾的态度,自己最近有空闲时间也开始鼓捣起了k8s,经过一步步摸索,终于完成安装和部署。接下来就先分享一下怎么在 kubernetes 中部署一个简单 Spring boot 的应用。

一致性哈希算法的一次实践

最近在分析一个需求,需要开发一个采集器的调度框架,实现采集器的注册,离线以及采集任务分配(负载均衡)。

采集器用于登录到网络设备上采集数据,部分运营商考虑到设备性能问题,会限制同时只能有一个用户登录设备查询数据。那么在此限制下,分配采集任务时需要保证:

  • 对于同一设备的任务始终都落在同一个采集器上去执行,才能保证同一时刻对于同一设备不会有多个采集器采集。
  • 而且,需要保证在某个采集器失效离线时,之前落在该采集器上的设备列表需要均匀分布到剩下的采集器上去,不至于造成某一个采集器负载过大。

到这里,实现方案已经呼之欲出,这不就是解决分布式缓存问题的套路么 — 一致性哈希算法,可以参考这篇文章进行了解 《一致性哈希算法及其在分布式系统中的应用》

使用Docker快速搭建Kafka开发环境

最近准备学习Kafka,于是买了《Kafka权威指南》来看。作为一个初学者,快速搭建起一套可以运行的环境十分重要,跟着该书第2章的安装介绍可以完成在Linux系统下的环境搭建,但是读下来发现步骤还是有点繁多。有没有什么更加快捷的办法搭建一套可以运行的开发环境呢,于是我想到了Docker。2018年了,容器化已经成为了主流,在本地进行开发和测试的时候使用Docker也便于模拟多节点的集群环境。