Dubbo官方文档中提到有三种方式来开发Dubbo的应用程序,分别是
基于XML配置实现
继续注解实现(常用 / 推荐)
基于API实现
本文用的注册中心是zookeeper,所以需要下载并安装zookeeper。安装zookeeper的示例网上有很多了,也很简单,自行安装就好啦。启动zookeeper之后如下图:
安装步骤
https://blog.csdn.net/qiunian/article/details/?ops_request_misc=%257B%2522request%255Fid%2522%253A%%2522%252C%2522scm%2522%253A%3..pc%255Fall.%2522%257D&request_id=65&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v28-1-.pc_search_result_cache&utm_term=windouw%E5%AE%89%E8%A3%85zookeeper&spm=1018.2118.3001.4449
创建一个空的maven项目,命名为dubbo-springboot
<?xml version="1.0" encoding="UTF-8"?>com.bazooka
dubbo-springboot
1.0-SNAPSHOT
创建dubbo-springboot-api子项目
整个子项目其实什么也没有做,只是单纯的定义一个接口。
package com.bazooka.api.service;
public interface HelloDubboService {
String sayHello(String name);
}
创建dubbo-springboot-provider子项目
这个子项目主要是以服务提供者的身份编写HelloDubboService的实现,来供服务消费者远程调用。
编写服务提供者的实现
@Service
@Component
public class HelloDubboServiceImpl implements HelloDubboService {
@Override
public String sayHello(String name) {
return “欢迎” + name + “使用Dubbo。”;
}
}
@Service是Dubbo提供的注解
修改application.properties
#当前服务/应用的名字
dubbo.application.name=dubbo-springboot-provider
#注册中心的协议和地址
dubbo.registry.protocol=zookeeper
dubbo.registry.address=127.0.0.1:2181
#通信规则(通信协议和接口)
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
#连接监控中心
dubbo.monitor.protocol=registry
添加@EnableDubbo注解
这个注解的含义主要是来扫描包,实现Dubbo的自动装配,相当于配置dubbo.scan.base-packages。
@SpringBootApplication
@EnableDubbo
public class ProviderApplication {
public static void main(String[] args) {
SpringApplication.run(ProviderApplication.class, args);
}
}
一切就绪之后启动ProviderApplication。
pom保持一致就可以啦。
定义一个ConsumerService并实现它。
这里的@Service是import org.springframework.stereotype.Service
@Reference来代替 @Autowired
@Service
public class ConsumerServiceImpl implements ConsumerService {
@Override
public String sayHello(String message) {
return helloDubboService.sayHello(message);
}
}
修改application.properties
server.port=8081
dubbo.application.name=order-service-consumer
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.monitor.protocol=registry
同样的需要在main方法上添加@EnableDubbo注解
@SpringBootApplication
@EnableDubbo
public class ConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(ConsumerApplication.class, args);
}
}
创建一个HelloDubboController如下:
@RestController
public class HelloDubboController {
@GetMapping("/sayHello")
public String sayHello(@RequestParam(“name”) String name) {
return consumerService.sayHello(name);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/80700.html