Docker & Consul & Fabio & ASP.NET Core 2.0 微服务跨平台实践
Consul介绍 Consul是HashiCorp公司推出的开源工具[开源地址:https://github.com/hashicorp/consul],用于实现分布式系统的服务发现与配置。 与市面上其他系统比较如下: 总体而言, Consul用Golang实现,因此具有天然可移植性(支持Linux、windows和Mac OS X);安装包仅包含一个可执行文件,方便部署,与Docker等轻量级容器可 无缝配合 。 此外,关于Consul的架构以及相关的角色,如下图所示: 以Server模式运行的Consul Agent节点用于维护Consul集群的状态,官方建议每个Consul Cluster至少有 3个或以上的运行在Server Mode的Agent,Client节点不限。 Consul支持多数据中心,每个数据中心的Consul Cluster都会在运行于Server模式下的Agent节点中选出一个Leader节点,这个选举过程通过Consul实现的raft协议保证,多个 Server节点上的Consul数据信息是强一致的。处于Client Mode的Consul Agent节点比较简单,无状态,仅仅负责将请求转发给Server Agent节点。 集群搭建 笔者打算通过五台Centos7来搭建Consul集群,借助VMware