springcloud alibaba组件nacos学习笔记

注册中心:eureka、consul、nacos、zookeeper、etcd

 

consul、eureka、nacos对比

配置中心

  • eureka 不支持
  • consul 支持 但用起来偏麻烦,不太符合springBoot框架的命名风格,支持动态刷新
  • nacos 支持 用起来简单,符合springBoot的命名风格,支持动态刷新

 

注册中心

  • eureka
    • 应用内/外:直接集成到应用中,依赖于应用自身完成服务的注册与发现,
    • ACP原则:遵循AP(可用性+分离容忍)原则,有较强的可用性,服务注册快,但牺牲了一定的一致性。
    • 版本迭代:目前已经不进行升级
    • 集成支持:只支持SpringCloud集成
    • 访问协议:HTTP
    • 雪崩保护:支持雪崩保护
    • 界面:英文界面,不符合国人习惯
    • 上手:容易
  • consul
    • 应用内/外:属于外部应用,侵入性小
    • ACP原则:遵循CP原则(一致性+分离容忍) 服务注册稍慢,由于其一致性导致了在Leader挂掉时重新选举期间真个consul不可用。
    • 版本迭代:目前仍然进行版本迭代
    • 集成支持:支持SpringCloud K8S集成
    • 访问协议:HTTP/DNS
    • 雪崩保护:不支持雪崩保护
    • 界面:英文界面,不符合国人习惯
    • 上手:复杂一点
  • nacos
    • 应用内/外:属于外部应用,侵入性小
    • ACP原则:通知遵循CP原则(一致性+分离容忍) 和AP原则(可用性+分离容忍)
    • 版本迭代:目前仍然进行版本迭代
    • 集成支持:支持Dubbo 、SpringCloud、K8S集成
    • 访问协议:HTTP/动态DNS/UDP
    • 雪崩保护:支持雪崩保护
    • 界面:中文界面,符合国人习惯
    • 上手:极易,中文文档,案例,社区活跃

erueka: 目前不再维护,不推荐使用了.

 

nacos:

 

一.简介: 注册中心+配置中心

有自己的web界面,有自己管理平台

nacos学习文档: https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html

注意:版本 2.1.x.RELEASE 对应的是 Spring Boot 2.1.x 版本。版本 2.0.x.RELEASE 对应的是 Spring Boot 2.0.x 版本,版本 1.5.x.RELEASE 对应的是 Spring Boot 1.5.x 版本。

 

二: mac版下载安装使用

1.下载地址: https://github.com/alibaba/nacos/releases

2.下载(目前版本到变化挺快,我这边使用的是1.1.4版本)

3.看下载完后的地址,复制bin的位置. 然后mac下执行两个命令

cd /Users/didi/Downloads/nacos/bin 

sh startup.sh -m standalone

4.输入nacos登陆地址:http://127.0.0.1:8848/nacos/#/login

5.默认账号:nacos

默认密码:nacos

6.关闭nacos: sh shutdown.sh

如果关闭失败: 需要杀死该端口号的进程

lsof -i:8848

kill -9 45025

 

三. 注册中心与配置中心demo

3.1 演示服务注册到nacos注册中心, 和可以做ribbon等负载均衡 (相等于eureka,zookeeper,consul)

启动: 本地启动nacos服务,登陆 http://127.0.0.1:8848/nacos/#/login

启动服务提供者: cloudalibaba-provider-payment9001

cloudalibaba-provider-payment9002

启动服务调用者: cloudalibaba-consumer-nacos-order83

测试接口看变化: http://127.0.0.1:83/consumer/payment/nacos/2 看端口变化一直刷

3.2 演示nacos做动态配置中心(相等于apollo等)

配置管理模型:

可以通过namespace ,group, dataid三个层级配置不同环境的读取配置信息

demo:

测试增加配置: 启动nacos + cloudalibaba-config-nacos-client3377

访问地址: http://127.0.0.1:3377/config/info

注意: 修改nacos控制台的配置config.info , 不需要启动项目再次请求接口,里面的返回信息可以立刻改变. 且提供了很多历史查询等管理,功能更加强大.apollo用的时候还需要重启!

 

四. 注册中心对比

著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性)、A(可用性)和P(分区容错性)。由于分区容错性在是分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡。

nacos文档(支持的多): https://nacos.io/zh-cn/docs/what-is-nacos.html

注意⚠️: nacos支持ap和cp的切换!!!

 

五.nacos的持久化

背景: 我们在nacos平台上的配置信息,需要存储一个地方.

官方文档: https://nacos.io/zh-cn/docs/deployment.html

目前本地mysql版本8+,很多坑...

1.nacos本地保持的sql;

2.修改数据库链接的地方

目标: 我们可以搭建自己的nacos-config数据库, 用户保存配置信息.

 

六.思考

  1. 从eureka等注册中心如何平滑的迁移到nacos上?
  2. nacos的集群如何协作?
  3. 如何保证服务高可用,服务和注册中心之间的心跳监控等问题需要深入研究.

猜你喜欢

转载自blog.csdn.net/qq_39809613/article/details/109572876