前言:
之前说的dubbo官网指定的注册中心的zookeeper,现在我们说一下更加常用的nacos.
nacos: 它是专注于服务发现和配置管理领域的一个阿里项目。nacos可以跟很多技术 进行整合的,我就说一下比较常用的整合吧。
前期准备:
下载nacos服务,直接解压就好了。
nacos下载注意点:
如果你使用的是最近比较新的版本可能会报错,比如2.0.3
推荐使用命令启动:startup.cmd -m standalone
如果你想直接双击就启动,推荐使用版本nacos-server-1.1.3
整合使用
**
Springcloud与nacos整合
- 添加依赖
<!--nacos启动配置管理-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>${latest.version}</version>
</dependency>
<!--启动nacos服务发现功能-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>0.2.2.RELEASE</version>
</dependency>
<!--nacos客户端-->
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>1.1.0</version>
</dependency>
- 添加配置
# 服务方的配置
server:
port: 8000
spring:
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848 # 配置nacos 服务端地址
application:
name: nacos-provider # 服务名称
# 消费方的配置
server:
port: 9000
spring:
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848 # 配置nacos 服务端地址
application:
name: nacos-consumer # 服务名称
- 添加注解
在启动类的位置上加上注解:@EnableDiscoveryClient
核心代码
dubbo与nacos整合
- 添加依赖
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>common-api</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>2.7.3</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-registry-nacos</artifactId>
<version>2.7.3</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.1</version>
</dependency>
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>1.3.1</version>
</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>
- dubbo中配置nacos的信息
## 其他属性保持不变
server:
port: 8082
dubbo:
registry:
address: nacos://127.0.0.1:8848
application:
name: nacos-provider-application
启动类上加上注解@EnableDubbo
重启你的dubbo即可。
- 访问你的nacos
-
地址为
:localhost:8848/nacos账户密码
:默认为nacos
其实它dubbo整合的方法是一样的 只是换了注册中心的地址而已。
nacos作为注册中心源码
nacos的其他概念
- 命名空间
你可能会在配置文件中看到一个namespace的属性,这个就是命名空间,你可以将它理解成一个不同的饭店,不同的饭店可以存在相同的门牌号(相同的Group或Data ID)常常开发的时候,我们会有不同的环境,比如开发环境,生产环境什么的,我们可以通过这个命名空间
进行区别. - 服务名
服务提供的标志,说白了就是相当与服务的唯一标识,就像数据库中的主键一样。 - 注册中心
存储服务实例和服务负载均衡策略的数据库,说白了就是你写的服务,会 生成一个实例,这个实例放的位置就是我们的注册中心。 - 服务提供方和服务消费方
就是我们提供可复用和可调用服务的应用方,而消费方就是我们对于我们注册的服务方发起调用的应用方,我们的使用都是基于这两个的。