zookeeper和dubbo一块搭建集群吗,dubbo zookeeper集群
目录
环境搭建1.我们首先做好服务端2.启动服务端3.我们再来做客户端4.总结
环境搭建
项目结构图:
1.我们首先做好服务端
pom.xml
依赖!- 导入依赖:Dubbo zookeeper-dependency groupIdorg.apache.dubbo/groupId artifactId Dubbo-spring-boot-starter/artifactId版本2 . 7 . 3/版本/依赖!- 引入groupIdcom.github.sgroschupf/groupId artifactidzk客户端/artifactId 0.1 ZK客户端依赖版/版本/依赖关系!- 引入zkclient,可能会日志冲突,还需要剔除日志依赖-依赖关系groupIdorg.apache.curator/groupId artifact id光标-框架/artifactId版本2 .12 .0/版本/依赖关系groupIdorg.apache.curator/groupId人工标识光标-配方/人工标识版本2 .12 .0/版本/依赖关系groupIdorg.apache.zookeeper/groupId动物园管理员/人工动物版本3 . 4 . 14/版本!- 排除这个slf4j-log4j12 -排除排除groupId组织。slf4j/groupId artifactId slf4j-log4j 12/artifactId/exclusion/exclusions/dependency groupIdorg.springframework.boot/groupId artifactId spring-boot-starter-web/artifactId/dependency groupIdorg.springframework.boot/groupId artifactId spring-boot-starter-test/artifactId scope test/scope/dependency/d
ependencies>application.properties
server.port=8001# 服务应用名字dubbo.application.name=provider-server# 注册中心地址dubbo.registry.address=zookeeper://127.0.0.1:2181# 哪些服务要被注册dubbo.scan.base-packages=com.wlm.service
TicketService
package com.wlm.service;public interface TicketService { public String getTicket();}
TicketServiceImpl.java
package com.wlm.service;import org.apache.dubbo.config.annotation.Service;import org.springframework.stereotype.Component;//zookeeper:服务注册与发现@Service //可以被扫描到,在项目一启动就自动注册到注册中心@Component //使用了Dubbo后尽量不要用Service注解public class TicketServiceImpl implements TicketService { @Override public String getTicket() { return "咸鱼_翻身"; }}
2.启动服务端
打开服务端,开启之后不要点掉,让他在后台运行:
执行服务端的jar包,待会我们要监控服务端:
运行上面的服务端代码,然后去游览器中查看http://localhost:7001/
3.我们再来做客户端
pom.xml
<dependencies> <!--导入相关的依赖--> <!--导入依赖:Dubbo + zookeeper--> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>2.7.3</version> </dependency> <!--引入zkclient--> <dependency> <groupId>com.github.sgroschupf</groupId> <artifactId>zkclient</artifactId> <version>0.1</version> </dependency> <!--引入zkclient,可能会日志冲突,还需要剔除日志依赖--> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>2.12.0</version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version>2.12.0</version> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.14</version> <!--排除这个slf4j-log4j12--> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
application.properties
server.port=8002# 消费者去哪里拿服务,需要暴露自己的名字dubbo.application.name=consumer-server# 注册中心的地址,可以在任何电脑上!dubbo.registry.address=zookeeper://127.0.0.1:2181
TicketService
package com.wlm.service;public interface TicketService { public String getTicket();}
UserService.java
package com.wlm.service;import org.apache.dubbo.config.annotation.Reference;import org.springframework.stereotype.Service;@Service //放到容器中,注意区分public class UserService { //想拿到provider-server提供的票,要去注册中心拿到服务 @Reference //引用, pom坐标,可以定义路径相同的接口名 TicketService ticketService; public void buyTicket(){ String ticket = ticketService.getTicket(); System.out.println("在注册中心拿到=>"+ticket); }}
ConsumerServerApplicationTests.java
package com.wlm;import com.wlm.service.UserService;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;@SpringBootTestclass ConsumerServerApplicationTests { @Autowired UserService userService; @Test void contextLoads() { userService.buyTicket(); }}
运行ConsumerServerApplicationTests.java结果:拿到服务端的咸鱼_翻身
4.总结
前提:zookeeper服务已经开启
1.首先提供者提供服务
导入依赖配置注册中心的地址,以及服务发现名,和要扫描的包在想要被注册的服务上面增加一个注解@Service2.消费者如何消费
导入依赖配置注册中心的地址,配置自己的服务名从远程注入服务 @Reference
到此这篇关于springBoot+dubbo+zookeeper实现分布式开发应用的项目实践的文章就介绍到这了,更多相关springBoot dubbo zookeeper分布式 内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。