挺简单的一个Dubbo+zookeeper上手教程,记录一下!
zookeeper下载地址 打开后如图 选择第二个,下载成功后解压,目录如下 bin目录下,双击zkServer.cmd,启动zookeeper服务。如果报错,提示信息是conf目录下zoo.cfg找不到的情况,则复制一份conf目录下zoo_sample.cfg文件,重命名为zoo.cfg即可 如图
这个主要是一个dubbo的可视化界面,不要也可
dubbo-admin的git地址 下载下来之后目录如下 dubbo-admin 是一个springboot项目,现在将该项目打成jar包. cmd中执行以下命令,项目同级目录 mvn clean package -Dmaven.test.skip=true 等待漫长时间后(根据网速),会看到success信息。然后可以在项目目录下,target目录下,找到如图jar包
在生成的jar包同级目录下,执行cmd命令,java -jar 浏览器中输入 localhost:7001 ,账 号密码 root/root ,进入如下页面
新建两个springboot项目,prodiver-server(生产者)和 consumer-server(消费者) 两个项目均引入以下依赖:
<!--导入 dubbo+zookeeper--> <!-- https://mvnrepository.com/artifact/org.apache.dubbo/dubbo-spring-boot-starter --> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>2.7.3</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> <!--引入zookeeper--> <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-log4f12--> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions> </dependency>provider-server项目中 配置文件
server.port=8001 # 服务应用名字 dubbo.application.name=provider-server #注册中心地址 dubbo.registry.address=zookeeper://127.0.0.1:2181 #哪些服务要被注册 dubbo.scan.base-packages=com.yyyy.serviceservice接口
//demo接口 public interface TicketService { public String getTicket(); }serviceImpl 实现类
//zookeeper:服务注册与发现 @Service //使用这个注解,可以被扫描到,在项目一启动就自动注册到注册中心 @Component // 使用了Dubbo后,尽量不要使用service注解 public class TicketServiceImpl implements TicketService { @Override public String getTicket() { return "测试Dubbo+zookeeper"; } }consumer-server项目中
配置文件
server.port=8002 #消费者去拿服务要暴露自己的名字 dubbo.application.name=consumer-server #注册中心地址 dubbo.registry.address=zookeeper://127.0.0.1:2181service类
@Service //放到容器中 public class UserService {
//想拿到provider-server提供的票,要去注册中心拿到服务 @Reference //引用,Pom坐标,或者可以定义路径相同的接口名 TicketService ticketService; public void bugTicket(){ String ticket = ticketService.getTicket(); System.out.println("在注册中心拿到票=>"+ticket); }} 在UserService同级目录下,复制一个provider-server项目中的service接口 如图: 在consumer-server项目中测试调用UserService 方法
@Autowired UserService userService; @Test void contextLoads() { userService.bugTicket(); }在debbo-admin页面中的–>服务治理–>应用中可看到如下:
到这差不多就完了,只是想记录下入门过程。有哪里缺漏或者不正确的地方欢迎留言
未经允许,禁止转载!
