SpringBoot + Dobbo + nacos
一、nacos
-
https://nacos.io/zh-cn/docs/quick-start.html
1、下载安装包
- https://github.com/alibaba/nacos/releases/
- 下载后在主目录下,创建一个logs的文件夹:用来存日志
2、启动nacos
- 在bin目录下打开cmd
- 运行启动命令: startup.cmd -m standalone
- 这样即为运行成功
二、Dobbo
1、进入入门项目github
2、拉取代码
3、启动入门项目
-
- 因为这个示例代码是zookeeper的注册中心,我这配置的是nacos的注册中心
- 所以我们提取关键配置即可
5、dubbo整合nacos
- https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/registry/nacos/
5.1、在 提供者 和 调用者中 都添加依赖
-
把zookeeper的依赖删除换上以下依赖 <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo</artifactId> <version>3.0.9</version> </dependency> <dependency> <groupId>com.alibaba.nacos</groupId> <artifactId>nacos-client</artifactId> <version>2.1.0</version> </dependency>
5.2、两个项目里都配置以下信息
-
yml配置信息
-
#把zookeeper的配置信息改为以下这个 registry: id: nacos-registry address: nacos://localhost:8848
-
-
启动dubbo
- 在启动类上添加注解: @EnableDubbo
-
两者上面都创建接口(这里的案例是用了一个公共接口)
/**
* 示例服务
*
*/
public interface DemoService {
String sayHello(String name);
String sayHello2(String name);
}
-
注意事项,接口所在的位置在,提供者和调用者的位置要一模一样
5.3、在提供者上实现接口
/**
* 示例服务实现类
*
*/
@DubboService
public class DemoServiceImpl implements DemoService {
@Override
public String sayHello(String name) {
return "Hello " + name;
}
@Override
public String sayHello2(String name) {
return name + "zzj";
}
}
5.4、在调用者上调用接口
@Component
public class Task implements CommandLineRunner {
@DubboReference
private DemoService demoService;
@Override
public void run(String... args) {
String result1 = demoService.sayHello("world");
String result2 = demoService.sayHello2("hello");
System.out.println("Receive result1 ======> " + result1);
System.out.println("Receive result2 ======> " + result2);
}
}
6、结果
- 在调用者的控制台能看到输出的信息
- 查看nacos里的注册信息也是注册上了