2016年08月Reading Notes

服务发现

服务发现用于动态感知服务提供方地址,并提供服务路由分发策略能力。

1. 客户端发现

客户端从注册中心获取服务列表,客户端监听服务列表的变化,客户端通过路由策略选择合适的服务端地址。

服务端在停服务时,需要先通知客户端不要发送新请求过来,等服务端把当前请求处理完后,才断开连接。

2. 代理端发现

代理端对外提供服务,主要用于对外请求路由。代理端(比如nginx/haproxy)转发请求到后端服务。后端服务暴露地址到注册中心,代理程序动态获取服务地址。

nginx可以试试nginx-upsync-module

在k8s内部,采用nginx+dns+k8s proxy实现。

关于高可用系统

http://coolshell.cn/articles/17459.html

前段时间写了一段公司的公关文(CUI NIU BI),强迫自己写了5个9

作者讲了几个大实话:

如果你没有一套科学的牛逼的软件工程的管理,没有牛逼先进的自动化的运维工具,没有技术能力很牛逼的工程师团队,怎么可能出现高可用的系统啊。

深层次的东西则是——对工程这门科学的尊重:1.对待技术的态度 2.一个公司的工程文化 3.领导者对工程的尊重

佛渡有缘人,点到即止,不强求。

  1. 以前对高可用的关注点主要在应用层面,现在加入运维团队后,高可用的关注点延伸到机房、硬件。
  2. 同城双活只要网络质量靠谱点,还是比较好做,主要是南北请求路由控制和东西流量故障切换。
  3. 把服务不可用的因素分成planned、unplanned,分别设计预案

也许把SLA写到合同里,我就不敢乱吹牛逼了。

给攻城狮一个小小的鼓励!