SpringCloudAlibaba——Nacos
什么是SpringCloudAlibaba
Spring Cloud Alibaba 是阿里巴巴提供的微服务开发一站式解决方案,是阿里巴巴开源中间件与 Spring Cloud 体系的融合
主要功能
Nacos
什么是Nacos
一个更易于构建云原生应用的动态服务发现,配置管理和服务管理平台
即,服务注册中心+服务配置中心
Nacos安装
环境为:阿里云服务器Centos7
-
下载
下载地址:https://github.com/alibaba/nacos/releases
-
上传
使用xftp上传 -
解压
tar -xvf nacos-server-1.4.1.tar.gz -
启动
进入bin目录:cd nacos/bin
启动单机模式:sh startup.sh -m standalone
安全组没有配置的需要打开8848端口
- 访问测试
默认账号和密码都为nacos
服务注册中心实例
新建三个模块(两个生产者,一个消费着)
cloudalibaba-provider-payment9001
cloudalibaba-provider-payment9002(构建步骤和9001相同)
cloudalibaba-provider-consumer83
cloudalibaba-provider-payment9001
- 新建model
- 改pom
<dependencies> <!--spring cloud alibaba nacos--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!--web/actuator这两个一般一起使用,写在一起--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--监控--> <dependency> <groupId> org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <!--热部署--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
- 改yml
server: port: 9001 spring: application: name: nacos-payment-provider cloud: nacos: discovery: server-addr: xxxxxxx:8848 # 做监控的话:要把这个全部暴露出来 management: endpoints: web: exposure: include: "*" # 注意是双引号
- 写业务
cloudalibaba-provider-consumer83
-
新建model
-
改pom
<dependencies> <!--spring cloud alibaba nacos--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!--引入我们自定义的公共api jar包--> <dependency> <groupId>org.cjd</groupId> <artifactId>cloud-api-commons</artifactId> <version>${project.version}</version> </dependency> <!--web/actuator这两个一般一起使用,写在一起--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--监控--> <dependency> <groupId> org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <!--热部署--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
-
改yml
server: port: 83 spring: application: name: nacos-order-consumer cloud: nacos: discovery: server-addr: xxxxx:8848 # 配置nacos注册中心地址 # 消费者将要去访问的微服务名称(成功注册进nacos的微服务提供者) server-url: nacos-user-service: http://nacos-payment-provider
-
配置类
-
业务类
启动测试
测试服务是否注册到nacos
测试消费者是否可以轮询调用生产者
Nacos与其它服务注册中心对比
- Nacos 支持 AP 和 CP 模式的切换
如何切换
curl -X PUT ‘ip地址:8848/nacos/vi/ns/operator/switches?entry=serverMode&value=CP’