nacos集群的ap cp切换_你应该了解的Nacos注册中心

本文深入探讨了Nacos服务发现的原理,包括命名空间、服务和实例的基本概念,以及AP和CP模式的选择。Nacos通过Distro协议实现AP,保证最终一致性,而Raft协议用于需要强一致性的场景。文章还分析了Nacos与Zookeeper的区别,指出Nacos在注册中心选择、协议设计和节点注册订阅方面的优势。
摘要由CSDN通过智能技术生成

背景

前段时间有新闻报道,国外HashiCorp在官网宣布:不允许中国境内使用、部署和安装该企业旗下的企业版产品和软件。

d67eb764b3ec588d044e4aa167685e5a.png

其中Consul是Java的spring cloud开发者非常熟悉的一个服务发现和配置中心的中间件,很多人担心是否Consul会受到影响,目前来看HashiCorp只是对商业版进行了禁止使用,还没有对开源版本进行限制,所以使用Consul的小伙伴不用担心。但是随着时间的发展,不同地区的对抗会不断的升级,说不定有一天开源的版本会被也会被宣布禁用,所以我们需要知道如何去替代Consul。

在2008年的时候,那个时候zk还没出来,阿里巴巴当时内部需要做服务发现,于是自研了ConfigServer,过了十年,在2018年7月的时候,阿里发布了Nacos(ConfigServer开源实现)0.1.0版本,到现在快两年了已经到了1.3.0版本,现在已经可以支持很多功能了:

  • 服务注册和发现:nacos和很多rpc框架已经做了集成,比如dubbo,SpringCloud等,方便我们拿来即用,同时也开放了比较简易的api方便我们对自己的rpc进行定制。

  • 配置管理:类似apllo的一个配置管理中心,让我们不用把配置写在文件中了,在后台进行统一的管理。

  • 地址服务器: 方便我们对不同环境不同隔离场景的nacos进行寻址。

  • 安全与稳定性: 性能监控,加密传输,权限控制管理等等。

对于nacos的来说,最大的核心功能就是服务注册和配置管理,我的文章主要也是介绍这两大模块,这篇文章主要是介绍Nacos服务发现-注册相关的一些使用,原理以及对比其他的一些优化。

基本概念

首先我们来看看再Nacos中服务发现-注册的一些基本概念:

  • 命名空间(namespace):命名空间属于Nacos顶层的结构,用于进行租户级别的隔离,我们最常用的就是不同环境比如测试环境,线上环境进行隔离。

  • 服务(Service):服务的概念就和我们平常的微服务一一对应,比如订单服务,物流服务等等。一个命名空间下可以有多个Service,不同的命名空间可以有相同的Service,比如测试环境和线上环境都可以有订单服务。

  • 虚拟集群:一个服务下所有的机器组成一个集群,在Nacos中还可以对集群根据需要进行进一步划分成虚拟集群。

  • 实例:粗略一点理解就是一台机器或者一个虚拟机就是一个实例,细粒一点理解就是一个或多个服务的具有可访问网络地址(IP:Port)的进程。

91a8c6b65f2bbee8a2a51a71134466f3.png

上面是Nacos官网文档中给出的服务领域模型图,从图上我们可以知道层级关系的属于是:服务-集群-实例,同时在服务,集群和实例中都会保存一些数据用作其他的需求。

其实一说到服务注册很多人首先会想到Zookeeper,其实ZK并没有直接提供服务注册订阅的功能,在ZK中要实现这些功能,你必须要自己一个一个的去划分文件目录,非常不方便,并且ZK的Api也特别难用,对于Nacos来说服务注册的Api使用如下:

        Properties properties = new Properties();
        properties.setProperty("serverAddr", System.getProperty("serverAddr"));
        properties.setProperty("namespace", System.getProperty("namespace"));

        NamingService naming = NamingFactory.createNamingService(properties);

        naming.registerInstance("microservice-mmp-marketing", "11.11.11.11", 8888, "TEST1");

        naming.subscribe("microservice-mmp-marketing", new EventListener() {
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值