在上一次的日志中,已经在 Kubernetes 中部署了一个单实例的 MySQL,接下来就是创建一个微服务来提供 MySQL 的 REST API, 让其他微服务能够通过 REST API 来访问数据库中的资源。
之前已经尝试在Kubernetes中部署了一个简单的Spring boot应用,但这个应用是无状态的,这次主要折腾一下如何运行一个单实例有状态应用(MySQL)
基于容器的微服务架构目前已经成为了开发应用系统的主流,Kubernetes 则是运行微服务应用的理想平台。基于没事儿瞎折腾的态度,自己最近有空闲时间也开始鼓捣起了k8s,经过一步步摸索,终于完成安装和部署。接下来就先分享一下怎么在 kubernetes 中部署一个简单 Spring boot 的应用。
最近在分析一个需求,需要开发一个采集器的调度框架,实现采集器的注册,离线以及采集任务分配(负载均衡)。
采集器用于登录到网络设备上采集数据,部分运营商考虑到设备性能问题,会限制同时只能有一个用户登录设备查询数据。那么在此限制下,分配采集任务时需要保证:
- 对于同一设备的任务始终都落在同一个采集器上去执行,才能保证同一时刻对于同一设备不会有多个采集器采集。
- 而且,需要保证在某个采集器失效离线时,之前落在该采集器上的设备列表需要均匀分布到剩下的采集器上去,不至于造成某一个采集器负载过大。
到这里,实现方案已经呼之欲出,这不就是解决分布式缓存问题的套路么 — 一致性哈希算法,可以参考这篇文章进行了解 《一致性哈希算法及其在分布式系统中的应用》
最近准备学习Kafka,于是买了《Kafka权威指南》来看。作为一个初学者,快速搭建起一套可以运行的环境十分重要,跟着该书第2章的安装介绍可以完成在Linux系统下的环境搭建,但是读下来发现步骤还是有点繁多。有没有什么更加快捷的办法搭建一套可以运行的开发环境呢,于是我想到了Docker。2018年了,容器化已经成为了主流,在本地进行开发和测试的时候使用Docker也便于模拟多节点的集群环境。