开发者学堂课程【微服务实战-服务注册中心 - Nacos :Nacos 注册中心的使用场景】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/619/detail/9430
Nacos 注册中心的使用场景
内容简介:
一、在 Spring Cloud 中使用 Nacos 作为注册中心
二、在 Dubbo 中使用 nacos 作为注册中心
一、在 Spring Cloud 中使用 Nacos 作为注册中心
通过实现一个简单的 echo server,演示如何在 spring cloud 项目中启用 nacos 的服务注册与发现功能。
1.添加 maven 依赖
只需要引入 spring cloud 阿里巴巴 nacos discovery 依赖就可以支持 nacos 注册中心。
需要说明的是由于 spring cloud 阿里巴巴进行了仓库的迁移,所以 maven 依赖以spring cloud 阿里巴巴官方文档为准。
org.springframework.cloud
spring-cloud-starter-alibaba-nacos-discovery
${latest.version}
Spring cloud version |
Spring cloud alibaba version |
Nacos version |
Spring cloud greenwich |
0.9.0.RELEASE |
1.0.0 |
Spring cloud finchley |
0.2.2.RELEASE |
1.0.0 |
Spring cloud edgware |
0.1.2.RELEASE |
1.0.0 |
2.配置 provider 端
(1)在 application.properties 中配置 Nacos Server 地址:
server.port=8070
spring.application.name=service-provider
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
(2)通过 Spring Cloud 原生注解@EnableDiscoveryClient 开启服务注册发现功能: @SpringBootApplication
@EnableDiscoveryClient
public class NacosProviderApplication {
public static void main(String[] args){
SpringApplication.run(NacosProviderApplication.class, args):
}
@RestController
class EchoController {
@RequestMapping(value = "/echo/{string}", method =
RequestMethod.GET public String echo(@PathVariable String string){
return "Hello Nacos Discovery " + string;
}
}
代码主要关注的是 echo 支持一个 echo 的 get 方法,支持训参数的传入,同时会返回 hello nacos discovery 和传入的参数组合的一个返回结果
3.配置 onsumer 端:
(1) 在 application.properties 中配置 Nacos Server 地址:
(2) 通过 Spring Cloud 原生注解@EnableDiscoveryClient 开启服务注册发现功能:
@SpringBootApplication
@EnableDiscoveryClient
public class NacosProviderApplication {
public static void main(String[] args){
SpringApplication.run(NacosProviderApplication.class, args):
}
@RestController
class EchoController {
@RequestMapping(value = "/echo/{string}", method =
RequestMethod.GET public String echo(@PathVariable String string){
return "Hello Nacos Discovery " + string;
}
}
在代码中创建了一个 test controller 提供 htp 服务,同时有一个 echo 方法,echo 方法的返回值是另一个服务 sever provider 对应的 echo 方法的返回值
4.启动 ProviderApplication 和 ConsumerApplication
调用 https://localhost:8080/echo/2018,返回内容为 Hello Nacos Discovery 2018
二、在 Dubbo 中使用 nacos 作为注册中心
1.引入 maven 依赖
<dependency>
<groupld>com.alibaba</groupld>
<artifactld>dubbo-registry-nacos</artifactld>
<version>0.0.2</version>
</dependency>
<dependency>
<groupld>com.alibaba.nacos</groupld> <artifactld>nacos-client</artifactld>
<version>1.0.1</version>
</dependency>
<dependency>
<groupld>com.alibaba</groupld>
<artifactld>dubbo</artifactld>
<version>2.6.5</version>
</dependency>
这里有三个依赖,第一个是 dubbo-registry-nacos 依赖,这个依赖主要与 duboo groupld 结合,来调用 nacos gloupld 进行服务注册与发现。
第二个是 nacos-client 依赖,这个依赖是真正与 nacos 服务端进行通讯的依赖。第三个是 dubbo 与客户端的依赖
2.配置 provider 端
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans'
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://dubbo.apache.org/schema/ dubbo" xsi:schemalocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsdhttp://dubbo.apache.org/schema/dubbohttp://dubbo.apache.org/schema/dubbo/dubbo.xsd">
<!--提供方应用信息,用于计算依赖关系>
<dubbo:application name="dubbo-provider-xml-demo"f>
<!-暴露的服务,将会注册到Nacos上>
<dubbo:service interface-"com.alibaba.dubbo.demo.DemoService" ref='demoServicelocal' version=*1.0.o"/>
<!-暴露的端口-->
<dubbo:protocol name="dubbo" port="20881"/>
<!使用Nacos注册中心->
<dubbo:registry address="nacos://127.0.0.1:8848"/>
</beans>
3.查看服务注册情况:
通过启动 provider 端就可以通过 nacos 控制台看到已经注册好的 dubbo 服务。