服务发现
服务与服务之间的调用需要在配置文件中填好主机和端口,不易于维护且分布式环境中不容易部署与扩容
那么此时就需要考虑服务启动时自己把主机和端口以及一些其他信息注册到注册中心,这样其他服务可以从中找到它,甚至更为简单的注册完毕后通过DNS的方式来寻址。
consul的优势
- 使用Raft算法来保证一致性,比复杂的Paxos算法更直接,相比而言,zookeeper采用的是Paxos,而etcd使用的则是Raft
- 支持多数据中心,内外网的服务采用不同的端口记性监听,多数据中心集群可以避免单数据中心的单点故障,而其部署需要考虑网络延迟,分片等情况
- 支持健康检查,
- 支持http和dns协议接口
- 官方提供web管理界面
consul的工作原理:
consul提供了一套健康监测机制简单的说针对http类型的服务(consul也支持其他类型例如tcp)在注册的时候可以顺便注册下健康监测的信息,提供一个健康监测的地址(url)以及一个频率超时时间,这样的话consul会定期的请求当状态码是200的时候设置此服务是健康的状态,否则是故障状态