nacos 注册中心示例
导入依赖
<!-- 服务注册与发现 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- 服务调用 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-dubbo</artifactId>
</dependency>
服务端
application.yml
spring:
application:
name: nacos-provider
cloud:
nacos:
discovery:
server-addr: localhost:8848
dubbo:
#registry:
#address: spring-cloud://localhost:8848
protocol:
name: dubbo
port: 20880
NacosDiscoveryConfiguration(alibaba cloud toolkit自动添加)
@EnableDiscoveryClient //开启客户端自动发现
@Configuration
public class NacosDiscoveryConfiguration {
}
HelloService
public interface HelloService {
String hello();
}
HelloServiceImpl
@DubboService
public class HelloServiceImpl implements HelloService {
@Override
public String hello() {
return "hello";
}
}
DemoApplication
@EnableDubbo //开启dubbo服务注册
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
消费端
application.yml
spring:
application:
name: nacos-consuemr
cloud:
nacos:
discovery:
server-addr: localhost:8848
dubbo:
protocol:
name: dubbo
port: 20881
server:
port: 8081
NacosDiscoveryConfiguration
@EnableDiscoveryClient //开启服务发现客户端
@Configuration
public class NacosDiscoveryConfiguration {
}
HelloService
public interface HelloService {
String hello();
}
HelloController
@RestController
public class HelloController {
@DubboReference
private HelloService helloService;
@RequestMapping("/hello")
public String hello(){
System.out.println(helloService.hello());
return "success";
}
}
DemoApplication
@EnableDubbo
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
使用测试
查看注册的服务
服务端、消费端均注册成功
localhost:8081/hello,控制台输出:
2022-03-10 17:02:28.893 INFO 4065 --- [ main] o.a.d.config.bootstrap.DubboBootstrap : [DUBBO] DubboBootstrap has started., dubbo version: 2.7.8, current host: 172.25.12.168
2022-03-10 17:02:28.897 INFO 4065 --- [ main] com.example.demo.DemoApplication : Started DemoApplication in 5.167 seconds (JVM running for 5.885)
2022-03-10 17:02:29.711 WARN 4065 --- [client.listener] a.c.d.m.r.DubboServiceMetadataRepository : Current application will subscribe all services(size:2) in registry, a lot of memory and CPU cycles may be used, thus it's strongly recommend you using the externalized property 'dubbo.cloud.subscribed-services' to specify the services
2022-03-10 17:04:28.116 INFO 4065 --- [nio-8081-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2022-03-10 17:04:28.117 INFO 4065 --- [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2022-03-10 17:04:28.157 INFO 4065 --- [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 40 ms
hello