Consul是用于服务发现和配置的工具。Consul是分布式的,高度可用的,并且具有极高的可伸缩性,而且开发使用都很简便。它提供了一个功能齐全的控制面板,主要特点是:服务发现、健康检查、键值存储、安全服务通信、多数据中心、ServiceMesh。Consul在设计上把很多分布式服务治理上要用到的功能都包含在内了。
3.2组件特点
Consul提供多个数据中心的支持,基于Fabio做负载均衡,每个数据中心内,都有客户端和服务端的混合构成。预计有三到五台服务端。可以在失败和性能的可用性之间取得良好的平衡。数据中心中的所有节点都参与八卦协议。这意味着有一个八卦池,其中包含给定数据中心的所有节点。这有几个目的:首先,不需要为客户端配置服务器的地址;发现是自动完成的。其次,检测节点故障的工作不是放在服务器上,而是分布式的。这使得故障检测比天真的心跳方案更具可扩展性。第三,它被用作消息传递层,用于在诸如领导者选举等重要事件发生时进行通知。
4、Nacos组件4.1基础描述
Nacos致力于发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助您实现动态服务发现、服务配置管理、服务及流量管理。Nacos更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构(例如微服务范式、云原生范式)的服务基础设施。Nacos支持作为RPC注册中心,例如:支持Dubbo框架;也具备微服务注册中心的能力,例如:SpringCloud框架。
4.2组件特点
Nacos在经过多年生产经验后提炼出的数据模型,则是一种服务-集群-实例的三层模型。如上文所说,这样基本可以满足服务在所有场景下的数据存储和管理,数据模型虽然相对复杂,但是并不强制使用数据结构的风格,大多数应用场景下,和Eureka数据模型是类似的。
Nacos提供数据逻辑隔离模型,用户账号可以新建多个命名空间,每个命名空间对应一个客户端实例,这个命名空间对应的注册中心物理集群是可以根据规则进行路由的,这样可以让注册中心内部的升级和迁移对用户是无感知的。
三、组件选择如下注册中心对比图。
综合上述几种注册中心对比,再从现在SpringCloud框架流行趋势看,个人推荐后续微服务架构体系选择Nacos组件,大致原因如下,社区活跃,经过大规模业务验证,不但可以作为微服务注册中心,也支持作RPC框架Dubbo的注册中心,且有完善的中文文档,总结下来就一句话:通用中间件,省时;文档详细,省心。
四、源代码地址 GitHub·地址 https://github.com/cicadasmile/husky-spring-cloud GitEE·地址 https://gitee.com/cicadasmile/husky-spring-cloud推荐文章:微服务基础系列
序号 文章标题01 微服务基础:Eureka组件,管理服务注册发现
02 微服务基础:Ribbon和Feign组件,实现请求负载均衡
03 微服务基础:Hystrix组件,实现服务熔断
04 微服务基础:Turbine组件,实现微服务集群监控
05 微服务基础:Zuul组件,实现路由网关控制
06 微服务基础:Config组件,实现配置统一管理
07 微服务基础:Zipkin组件,实现请求链路追踪
08 微服务基础:与Dubbo框架、Boot框架对比分析
09 微服务基础:Nacos组件,服务和配置管理
10 微服务基础:Sentinel组件,服务限流和降级
11 微服务应用:分库分表模式下,数据库扩容方案
12 微服务应用:Shard-Jdbc分库分表,扩容方案实现