更新于
|
0 条评论
| 热度
0°C
Github项目地址 | 线上demo
微服务架构愈演愈烈,但是社区一直缺少一个部署简便,高可用的配置中心。
XConf
是一个基于 go-micro 微服务框架构建的分布式配置中心,提供配置的管理与发布、实时推送。

配置中心底层存储采用 MySQL 数据库,主要分为三个服务:
- config-srv : 负责底层配置的读写
- admin-api : 负责与管理页面交互,相关鉴权,账号体系也会与此模块交互
- agent-api : 负责与客户端交互,提供配置读取和推送。
配置中心本身就是一个“读多写少”的服务,所以在 agent-api 服务中增加缓存,从而有效增加并发性能。得益于 go-micro 框架,三个服务可以便捷的横向伸缩。例如,当获取配置的客户端较多时,可以增加 agent-api 实例。
配置获取采用 HTTP 方式实现,配置的实时推送采用 HTTP Long Polling(长轮询)方式实现。选择 HTTP 方式,更加便于各种语言接入配置中心。
Golang 语言读取配置和监听实时配置推送( ➡️ 源码地址 ):
更新于
|
0 条评论
| 热度
0°C
微服务应用使用容器部署非常方便,但是当应用服务注册自身地址(ip:port)到服务注册中心的时候,如果注册的是容器内的ip,别的服务是无法访问到的。
解决这个问题,可以在运行容器的时候指定网络模式为 host (--net=host) ,这样就可以跳过 Docker 的独立网络栈,直接通过本机IP端口就可以访问,但是这样会大量占用本地端口。
最好的场景还是后端服务都在容器网络中,仅 API 网关暴露一个端口供外部访问,但是同时还后端服务还需要能实现跨机器的网络连通。
早期 Docker 本身的容器网络本身并不支持跨机器,也就是说明如果容器部署在不同的节点(服务器)上面,只能通过暴露端口到宿主机上,再通过宿主机之间进行通信。Docker 12.0 之后的版本自带 Docker Swarm,Docker Swarm 的 Overlay 网络驱动可以实现跨主机网络通信。Kubernetes 固然好,但是同时也非常重,学习成本也很大,Swarm 在小项目中还是有用武之地的。
更新于
|
0 条评论
| 热度
0°C
服务健康检查
在微服务架构中,每个服务都会存在多个实例,可能部署在不同的主机中。因为网络或者主机等不确定因素,每个服务都可能会出现故障。我们需要能够监控每个服务实例的健康状态,当一个服务故障时,及时将它从注册中心删除。
更新于
|
0 条评论
| 热度
0°C
micro API网关
micro API网关是基于go-micro开发的,具有服务发现,负载均衡和RPC通信的能力。
业界普遍做法是将鉴权,限流,熔断等功能也纳入API网关。micro API网关本身是可插拔的,可以通过新增插件的方式加入其他功能。
更新于
|
0 条评论
| 热度
0°C
OpenTracing
OpenTracing通过提供平台无关、厂商无关的API,使得开发人员能够方便的添加(或更换)追踪系统的实现。 OpenTracing提供了用于运营支撑系统的和针对特定平台的辅助程序库。
jaeger兼容OpenTracing API,所以我们使用OpenTracing的程序库可以方便的替换追踪工具。
更新于
|
0 条评论
| 热度
0°C
github完整代码地址
hystrix-go
hystrix是Netflix开源的一个JAVA项目,不过GitHub也有golang的实现版本hystrix-go
hystrix-dashboard
hystrix并没有自带一个仪表盘,无法直观的查看接口的健康状况。所以,我们采用GitHub的一个开源实现hystrix-dashboard。
更新于
|
0 条评论
| 热度
0°C