承接上文,介绍了Dubbo与Zookeeper之后,这一篇博客就来记录一下怎么在SpringBoot项目中整合它们。 首先因为Dubbo的架构设计,有服务提供者(provider) 和 服务消费者(consumer),那我们可以创建一个空项目,并往里面加入两个子模块,一个叫 现在开始行动吧,项目创建好之后: Dubbo内部还是有挺多组件的,如果在以往的SSM项目中,我们会在配置文件中,配置很多 当然这还不够,因为还需要注册中心Zookeeper,这里引入它的客户端 接下来就可以编写代码了,我们先来编写服务提供者的代码. 编写一个 接下来,需要把该服务注册到Zookeeper中去,在 特别注意, 之后注册服务,还差最后一步,我们还需要在全局配置文件中 (application.yaml) 配置一些属性,服务提供者的名称,注册中心的ip地址和服务所在包下: 注册服务到注册中心完成啦,接下来启动程序,并保持该模块不中断。项目启动后可以在控制台上看到比较帅气的界面: 项目基本结构还是和 接口内有一个方法 在该模块中,我们需要远程调用 说白了就是创建一个 之后就可以远程调用了,我们需要在 注意,这里 在此之前,别忘了 还有一点,需要在两个启动类上加入 测试代码: 运行结果: 成功运行~
provider_ticket,另外一个是consumer_user。由前者提供服务,并注册到Zookeeper中,后者订阅Zookeeper,收到通知后远程调用前者完成业务。大致业务逻辑就是这样。
<bean>组件,但好在SpringBoot的优势,它会为我们自动导入各种组件,我们只需要在两个模块中都引入Dubbo的starter即可: <dependency> <groupId>com.alibaba.spring.boot</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>2.0.0</version> </dependency> zkclient即可:<!-- https://mvnrepository.com/artifact/com.github.sgroschupf/zkclient --> <dependency> <groupId>com.github.sgroschupf</groupId> <artifactId>zkclient</artifactId> <version>0.1</version> </dependency> provider_ticket:
TicketService接口,其中有一个getTicket()方法,并编写一个类去实现它:TicketServiceImpl中实现该方法:public class TicketServiceImpl implements TicketService { @Override public String getTicket() { return "《霸王别姬》"; } } TicketServiceImpl类上添加两个注解:@Service @Component @Service是alibaba那个包的注解,不要导成Spring的了,@Component就不用说了,添加类到容器中。dubbo: application: name: provider_ticket registry: address: zookeeper://localhost:2181 //注意是zookeeper协议,后面加上你安装zookeeper的主机ip地址,端口号为2181 scan: base-packages: com.leslie.provider_ticket.service.impl

接下来就是服务消费者的代码编写了。consumer_user:
provider_ticket相同:
buyTicket(),实现类中实现它,这里代码稍后再放。provider_ticket模块的方法,我们需要在此模块(consumer_user)创建一个和上一个模块(provider_ticket)一模一样的项目结构(有点绕),直接看看创建完成之后的结构:
TicketService接口的全限定类名的包结构。(别问,我也不知道为什么…)UserServiceImpl类中编写代码:@Service public class UserServiceImpl implements UserService { @Reference private TicketService ticketService; @Override public void buyTicket() { System.out.println("买到票了:"+ticketService.getTicket()); } } @Service是Spring包下的注解,@Reference是alibaba包下的注解,之后编写测试代码运行,再次注意,provider_ticket模块的服务器程序不能关闭!!!consumer_user模块的全局配置文件也是需要配置的:dubbo: application: name: consumer_user registry: address: zookeeper://localhost:2181 @EnableDubbo注解。@SpringBootTest class ConsumerUserApplicationTests { @Autowired private UserService userService; @Test void contextLoads() { userService.buyTicket(); } } 
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算
官方软件产品操作指南 (170)