hyperf 服务注册与发现之初识 consul
4421
0
0
阅读目录
什么是consul
我们在服务注册与发现一文中了解到consul是用来管理服务的。它是HashiCorp 公司使用 Go 语言开发且开源的分布式服务发现和配置管理系统。
Consul提供了支持面向服务的体系结构所需的一系列功能。包括服务发现,还包括丰富的运行状况检查,锁定,密钥/值,多数据中心联合,事件系统和ACL。
Consul 遵循CAP原则中的CP原则,保证了强一致性和分区容错性。它使用的是Raft算法,虽然保证了强一致性,但是可用性就相应下降了,例如服务注册的时间会稍长一些,因为 Consul 的 raft 协议要求必须过半数的节点都写入成功才认为注册成功 ;在leader挂掉了之后,重新选举出leader之前会导致Consul 服务不可用。
注:raft指的是Server 节点之间的数据一致性保证协议
consul我们会做重点介绍,我们不仅会介绍consul的使用,包括服务集群,源码分析也会详细的跟大家聊聊。在实际的服务中心的实现上,zk(zookeeper的简称)、consul、eurake、nacos等等都可以作为服务中心,虽然hyperf目前(v2.2)还只支持consul和nacos,但官方也提供了对其他服务中心的自定义支持。希望大家在学习consul的时候主要学习下其编程思想以及架构思想。
hyperf 引入consul之后,服务启动时,服务提供者会向consul服务中心注册,即是服务注册;消费者远程调用服务时,会向consul获取注册信息,且同时发
还有76%的精彩内容,购买继续阅读
在实际测试中 用 -dev 会造成内存持续增加的样子 ,以下命令启动则没问题 “consul agent -server -bootstrap-expect=1 -bind=172.17.121.165 -client=0.0.0.0 -ui -data-dir=/usr/bin/data”。 172.17.121.165 替换成本机内网地址 /usr/bin/data 数据目录
我觉得用docker 比较麻烦 那么长一大段命令~Linux 直接按照官方文档 yum 安装 最后简单粗暴的来一句 consul agent -dev -client=0.0.0.0 就可启动服务对方访问了
都可以的。
docker run --name consul8500 -d -p 8500:8500 -p 8300:8300 -p 8301:8301 -p 8302:8302 -p 8600:8600 consul:1.9.9 agent -dev -server -bootstrap-expect=1 -ui -bind=0.0.0.0 -advertise=39.100.65.142 -client=0.0.0.0 -node=consul_server1 按以上命令搭建以后,反向代理,外网能成功telnet。启动另外一台服务器的服务提供者时,会提示连接超时。
要怎么调试啊?
开发环境是什么呢?
都可以用docker的