1.Nacos安装部署
1.1 下载安装
nacos官网提供了安装部署教程,其下载链接指向github官网,选择合适版本即可。如访问受阻可直接使用以下最新稳定版压缩包:,后续我们也可能会更改为其他版本做更多测试。
公司一般会采用最新版落后几个版本的稳定版当做生产版本,避免一些新特性引发的未知问题。
1.2 启动
● window请直接进入路径:cd nacos/bin后双击startup.sh启动,或按照下述指令启动
cd nacos/bin
startup.cmd -m standalone
● linux或mac进入路径:nacos/bin/,cmd控制台执行
cd nacos/bin
sh startup.sh -m standalone
注意:如存在端口冲突,可至路径:nacos/conf/application.properties 中修改后启动
注意:nacos存储路径不可有中文。如遇启动异常,
● mac可至路径:nacos/logs/start.out 查看具体错误信息
● windows可至路径:nacos/logs/nacos.log 查看具体错误信息,正常启动日志如下
1.3 访问
成功启动后访问如下地址:http://localhost:8848/nacos/#/login,默认用户名/密码:nacos/nacos
2.整合Nacos注册中心
2.1 依赖导入
父工程新增spring-cloud-alibaba依赖
com.alibaba.cloud
spring-cloud-alibaba-dependencies
2.2.6.RELEASE
pom
import
因为Spring-cloud-alibaba自身也是集成了多个组件,所以这里只需引入alibaba大管家即可
子工程去除eureka依赖
注意order-service、user-service均需删除
子工程新增spring-cloud-alibaba-nacos依赖
注意:不同于父工程,是nacos-discovery,order-service、user-service均需添加
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery
至此,三个工程pom如下(eureka相关工程无需操作):
● 父pom:
● user-service pom:
● order-service pom:
2.2 配置文件修改注册中心
子工程均去除eureka注册配置,均新增nacos配置
spring:
cloud:
nacos:
server-addr: localhost:8848 #nacos服务地址
至此,两个业务工程application.yml如下(eureka相关工程无需操作):
● order-service:
● user-service:
2.3 启动工程并验证
启动应用后访问Nacos会发现服务已完成注册
如启动遇到工程仍存在Eureka依赖,可尝试重新编译整个工程,或手动删除target文件夹后再启动
3.Nacos服务分级模型
不同于Zookeeper没有针对服务发现设计数据模型,它的数据是以一种更抽象的树形K-V组织的,因此理论上可以存储任何语义的数据。而Eureka或Consule都做到了实例级别的数据扩展,这能满足大多数场景但无法满足大规模和多环境的服务数据存储。Nacos经过多年经验后提炼出上述模型,其特点在于:服务-集群-实例三层模型,可以满足所有场景下的数据存数和管理。
通过设置不同的集群所在参数,可以保证相同集群间优先调用,减少网络开销。当本地集群服务无法拉取时,再去跨集群调用。对于此工程我们只需要设置提付提供者集群参数:
cloud:
nacos:
server-addr: localhost:8848 # nacos服务地址
discovery:
cluster-name: HZ # 声明集群名称杭州
此时访问Nacos会发现其增加了集群属性发生变化,原为:Default
为模拟多集群场景,此时我们复制一个新的userApplicatio3启动类,具体操作步骤如下:
● 复制一个新的userApplicatio3启动类,设置其启动端口:-Dserver.port=8083
● 更改配置文件集群属性为GZ(注意不要停userApplication、userApplication2,否则原注册信息会失效)
● 启动userApplication3并访问nacos