因为团队目前正在考虑服务化部署,所以了解下相关的技术堆栈。 作为微服务架构里重中之重的 服务发现
和 集群一致性KV存储
当然是首先要了解的.
介绍
现在市面上有3种比较常见的服务发现服务:
在综合团队内部情况下,决定采用consul
作为我们的服务发现中心和配置管理.
Consul快速入门
功能
- 服务发现
- Key->Value存储
- 分布式锁
- Watch变更
- 属于颜控的一个好看的UI
环境搭建
建议使用docker快速部署:
|
|
golang使用
这里提供一个golang的官方sdk: sdk
官方已经有一个详细的 example, 这里就不多说了,但是研究Watch的时候发现有一点坑. Api模块里并没有Watch相关功能操作,所以看了下consul的源码,在consul/watch目录下看到了大概的实现
consul 的 watch有几种实现方式
- 变更时执行shell脚本
- 变更时通过http触发
- 在源码中发现有一个hook接口,挂在handler上就会自动执行
这里因为避免部署上的操作,所以在应用启动中代码直接启动Watch. 下面是consul相关使用的实例代码:
|
|
全文完!