https://gitee.com/zjj19941/ZJJ_Dubbo.git
看dubbo-start-demo项目即可
搭建zookeeper自己去博客随便弄个zookeeper安装教程.,然后启动起来
或者看我的博客,用docker快速搭建一个zookeeper起来,
https://blog.csdn.net/qq_41489540/article/details/109129293
pom文件自己去我码云项目看一下,我就不粘贴了
https://gitee.com/zjj19941/ZJJ_Dubbo.git
看dubbo-start-demo项目即可
package com.zjj; public interface DemoService { // 同步调用方法 String sayHello(String name); }服务的提供者 properties文件
# Spring boot application spring.application.name=dubbo-provider-demo server.port=8081 # base packages to scan Dubbo Component: @org.apache.dubbo.config.annotation.Service #这个配置是扫描带有@org.apache.dubbo.config.annotation.Service注解的类,如果有的话,就解析这个注解的类 #将配置信息进行处理,最后放到注册中心上面去. #你在类上面定义注解是没有用的,你得有配套的逻辑去识别定义这个注解的类 #然后做一些别的处理 dubbo.scan.base-packages=com.zjj.provider.service # dubbo需要定义你的应用名字 dubbo.application.name=${spring.application.name} ## Dubbo 注册的注册中心地址 dubbo.registry.address=zookeeper://zjj101:2181 # Dubbo 协议定义,这个是属于应用级别的 ,配置你这个应用 用什么协议 dubbo.protocol.name=dubbo dubbo.protocol.port=20880 #dubbo.protocol.name=rest #dubbo.protocol.port=8083提供服务的实现类
package com.zjj.provider.service; import com.zjj.DemoService; import org.apache.dubbo.common.URL; import org.apache.dubbo.config.annotation.Service; import org.apache.dubbo.rpc.RpcContext; @Service(version = "default") public class DefaultDemoService implements DemoService { @Override public String sayHello(String name) { System.out.println("执行了服务" + name); URL url = RpcContext.getContext().getUrl(); return String.format("%s:%s, Hello, %s", url.getProtocol(), url.getPort(), name); // 正常访问 } }启动类
package com.zjj; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DubboProviderDemo { public static void main(String[] args) { SpringApplication.run(DubboProviderDemo.class, args); } }服务的消费者 配置文件
spring: application: name: dubbo-consumer-demo server: port: 8082 dubbo: registry: address: zookeeper://zjj101:2181启动类
package com.zjj; import org.apache.dubbo.config.annotation.Reference; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ConfigurableApplicationContext; @SpringBootApplication public class DubboConsumerDemo { //@Reference注解就是用于标记这个服务具体使用了生产者的哪个接口实现 @Reference(version = "default") private DemoService demoService; public static void main(String[] args) { ConfigurableApplicationContext context = SpringApplication.run(DubboConsumerDemo.class); DemoService demoService = context.getBean(DemoService.class); System.out.println((demoService.sayHello("你好"))); } }开始测试
先启动服务的提供者项目 ,再启动服务的消费者, 然后控制台就能看到,说明服务的消费者已经访问到了服务的发起方了.
dubbo:20880, Hello, 你好
查看zookeeper,你会发现这个服务被注册到了注册中心上
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)