Nacos
1、服务注册与发现
Nacos提供基于DNS和基于RPC的服务发现,即能被用来支持https/http的服务注册与发现,也支持RPC如dubbo的服务注册与发现。
与Dubbo使用的zookeeper相比而言,两者差异还是比较大的,zookeeper是一种分布式的协调服务,它天生是作为分布式数据一致性场景下的解决方案,所以zookeeper是CP的,它牺牲了可用性来保证一致性,在极端情况下(master选举期间)服务会对外停止,对于服务可用性要求比较高的系统是难以接受的。Nacos是一种去中心化的架构,属于CAP理论里的AP架构,支持最终一致性,在分布式服务发现与注册场景下具有很不错的性能。目前dubbo官方也支持使用Nacos代替zookeeper。
2、动态配置服务
动态修改配置并实时生效对于服务端的同学而已并不陌生,这种服务能够让我们的服务拥有更多的灵活性,不需要重启服务即可做到配置实时生效,非常适合于“配置优先”的服务开发。
二、部署
Nacos支持集群和单机部署两种方式,单机部署适合于开发调试,集群部署使用生产环境。参考文档:https://nacos.io/zh-cn/docs/deployment.html
根据官方文档的步骤部署一般不会出现问题,但是需要注意一下几点:
1、单机部署的时候默认会采用内置的mysql存储Nacos云信息,如果想切换到自己本地的开发数据库,在conf/applicaition.properties文件增加以下配置:
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://11.162.196.16:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=nacos_devtest
db.password=youdontknow
使用自己的数据库,需要按照nacos提供的msyql脚本进行数据库初始化,脚本可参考:https://github.com/alibaba/nacos/blob/master/di
nacos支持基于NDS和基于RPC得服务发现
nacos支持在Spring、Spring Boot、Spring Cloud、Docker、Dubbo、K8s、Sync生态得使用。
Nocas默认端口号8848,默认用户名密码是nocas
Nocas和eoraka,区别
1)springcloud eureka是注册中心,负责微服务的注册与发现,起到承上启下的作用,在微服务架构中相当于人体的 大脑,很重要,nacos是阿里巴巴出的,功能类似eureka,区别不再啰嗦了。
(2)nacos的部署方式与springcloud eureka不太一样,euraka是需要创建springboot项目,然后将euraka服务端通过gav的方式加载进来,然后部署项目。
(3)nacos是直接从阿里巴巴nacos的官网下载jar包,88888服务。