consul集群架构

上一篇文章是如何安装搭建consul集群并在这个集群上如何进行注册和发现服务,偏向于技术点的记录;这一篇从更宏观的角度对consul进行说明,偏向于架构的层面。由于consul集群的建立完全按照leader浩哥的要求来的,所以写文章的目的是想把这些琐碎的知识点总结一下,下面是架构图:


图中分为四个主要的部分:服务、Nginx、服务调用者和consul集群。

服务可能有几十上百或者更多个,这些服务分布在各个独立的项目(微服务)中,而某一个微服务又部署在一台以上的虚机或者物理机上。在各自提供服务的项目中如果写死consul集群的IP和端口的时候就会将所有的服务都注册在同一个consul集群的server上,虽然当这个server挂掉的时候集群依然能够提供服务,但是将所有的服务注册在某一个节点上本身就是不合理的。这样在注册的时候增加Nginx负载将注册服务的请求平均分布到集群中不同的consul节点上,同样在获取服务的时候也要经过Nginx这一层进行负载。注册服务的详细过程如下:

服务一在IP1上,服务二在IP2上,Nginx在IP3上,consul server1在IP4上,consul server2在IP5上。服务一在IP1上启动的时候会根据配置的spring.cloud.consul.host=IP3以及spring.cloud.consul.port=80配置,注意这里的端口配置不是8500而是80,这样在注册的时候服务请求就会经过Nginx,Nginx根据配置文件中的IP4和IP5设置会负载到某一个consul集群中的IP4上去,这时由于端口号没有指定会默认使用8500在负载之后的IP4上进行服务的注册,第二的服务也是如此流程。

################################

补充:

服务调用端会在consul集群中查询服务提供的地址,获取地址后,通过Nginx负载后直接调用服务

集群通过健康检查的方式判断服务是否还能提供服务,如果不能会被踢出

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
windows系统运行 consul(替换批处理里面的-bind参数为自己的ip然后运行批处理) Consul特性 基础特性 1.服务注册/发现 为什么微服务架构下就需要做服务注册和服务发现呢?微服务的目标就是要将原来大一统的系统架构,拆分成细粒度的按功能职责分成的小系统,这样就会出现很多小的系统,部署的节点也会随之增加。试想一下,如果没有一个统一的服务组件来管理各系统间的列表,微服务架构是很难落地实现的。 Consul提供的服务注册/发现功能在数据强一致性和分区容错性上都有非常好的保证,但在集群可用性下就会稍微差一些(相比Euerka来说)。 2.数据强一致性保证 Consul采用了一致性算法Raft来保证服务列表数据在数据中心中各Server下的强一致性,这样能保证同一个数据中心下不管某一台Server Down了,请求从其他Server中同样也能获取的最新的服务列表数据。数据强一致性带来的副作用是当数据在同步或者Server在选举Leader过程中,会出现集群不可用。 3.多数据中心 Consul支持多数据中心(Data Center),多个数据中心之间通过Gossip协议进行数据同步。多数据中心的好处是当某个数据中心出现故障时,其他数据中心可以继续提供服务,提升了可用性。 4.健康检查 Consul支持基本硬件资源方面的检查,如:CPU、内存、硬盘等 5.Key/Value存储 Consul支持Key/Value存储功能,可以将Consul作为配置中心使用,可以将一些公共配置信息配置到Consul,然后通过Consul提供的 HTTP API来获取对应Key的Value。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值