SpringCloudAlibaba Nacos
? 由于eureka的功能性较少,且一段时间内没有维护,因此,阿里推出了自己的注册中心Nacos。
? Nacos是由SpringCloudAlibaba提供一个组件,可以作为服务注册中心、分布式配置中心使用。功能强大且性能强悍。其不仅能与SpringCloud无缝整合,同时也能与Apache Dubbo、Service Mesh整合。
官网地址:https://nacos.io/zh-cn/index.html
1)基于Docker安装并启动nacos
简单版
docker run -id -e MODE=standalone -e JVM_XMS=256m -e JVM_XMX=256m -e JVM_XMN=256m --name nacos -p 8848:8848 nacos/nacos-server:1.4.1
# 基于MySQL版本
docker run -e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=192.168.200.150 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=root \
-e MYSQL_DATABASE_NUM=1 \
-e JVM_XMS=256m -e JVM_XMX=256m -e JVM_XMN=256m \
--name nacos -d -p 8848:8848 nacos/nacos-server:1.4.1
2)访问nacos ip:8848/nacos 默认账号密码是nacos/nacos
3)父工程pom文件
<!-- cloud -->
<dependencyManagement>
<dependencies>
<!--springcloud-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR8</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--Springcloud alibaba-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.5.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
4)修改用户服务&订单服务pom文件
<!-- nacos注册中心依赖包 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
5)修改用户服务&订单服务application.yml
spring:
cloud:
nacos:
discovery:
server-addr: 192.168.200.150:8848 #nacos地址
#如果不想使用 Nacos 作为您的服务注册与发现,可以将 spring.cloud.nacos.discovery.enabled 设置为 false
6)启动服务并测试
命名空间(namespace)可用于进行不同环境的配置隔离。
例如可以隔离开发环境、测试环境和生产环境,因为它们的配置可能各不相同,或者是隔离不同的用户,不同的开发人员使用同一个nacos管理各自的配置,可通过 namespace隔离。
快速使用步骤:
1)新建命名空间
新建成功后复制id
2)修改用户服务&订单服务application.yml
cloud:
nacos:
discovery:
server-addr: 192.168.200.150:8848 #nacos地址
namespace: 823f04d1-af6e-470d-b363-029ea453c8de #namespace id
3)启动用户服务&订单服务查看nacos服务列表
实际开发过程如果nacos是共用,则可以每个开发人员设置自己的namespace空间,起到隔离的作用。
关于nacos更多配置可以参考官网
1)启动注册中心,其内部会维护一张服务注册表。
2)当服务提供者启动后,会向注册中心注册。注册中心会将服务提供者信息更新到注册表中并将提供者实例挂载。
3)服务提供者向注册中心发送心跳包。
4)服务消费者要获取实例有两种方式:直接获取、长订阅。
? 4.1)直接获取:直接从注册中心获取实例(不推荐)
? 4.2)长订阅:服务消费者启动后会建立长连接,从注册中心获取服务信息并在本地维护一张注册表。当注册中心的注册表更新后,服务消费者也会获取消息并更新本地服务列表。