SpringBoot整合Dubbo+Zookeeper
SpringBoot整合Dubbo+Zookeeper
不多BB,直接上代码,奥力给!
一、创建项目
1.首先创建一个空的项目Empty project
2.然后创建三个子模块分别为如下
dubbo-provider:服务提供者
dubbo-consumer:服务消费者
dubbo-interface:消费者与提供者共同的接口层
三个创建好后是这样的
二、导入依赖
分别在dubbo-consumer和dubbo-provider的pom.xml文件导入依赖
dubbo-interface 、zookeeper依赖、dubbo依赖、zookeeper客户端
<!-- 导入dubbo-interface-->
<dependency>
<groupId>com.chw</groupId>
<artifactId>dubbo-interface</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<!-- zookeeper依赖 -->
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.6.1</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- dubbo依赖 -->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.7</version>
</dependency>
<!-- zookeeper客户端 -->
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
</dependency>
三、在接口项目定义接口
在dubbo-interface模块下创建包 写入接口
public interface TestService {
public String Test();
}
四、服务者提供实现接口
在dubbo-provider模块下最好在同包同名提供实现接口
我们需要用到dubbo的注解@Service
注意 :@Service 用在服务提供者中,在类或者接口中声明。
服务提供者实现相关的服务接口,当消费端调用相关的类时,最终会调用提供者的实现方法。
import com.chw.service.TestService;
import org.apache.dubbo.config.annotation.Service;
//注意这里的service是dubbo包里面的
@Service
public class TestServiceImpl implements TestService {
@Override
public String Test() {
return "==========williamc==========";
}
}
这时我们要写配置文件
在resources目录下application.properties或yml,这里为了方便我就用properties。
#tomcat端口
server.port=8001
#服务应用的名字
dubbo.application.name=provider-server
#注册中心地址
dubbo.registry.address=zookeeper://127.0.0.1:2181
#哪些服务要被注册
dubbo.scan.base-packages=com.chw.service
这里我们就完成了dubbo-provider。
五、消费者订阅接口
在dubbo-consumer下创建一个Controller
这里要用到dubbo的注解@Reference
@Reference 用在消费端,表明使用的是服务端的什么服务
import com.chw.service.TestService;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class TestController {
@Reference
TestService testService;
@ResponseBody
@RequestMapping("/test")
public String test(){
return testService.Test();
}
}
还需要写配置文件和服务者相似
#tomcat端口
server.port=8002
#服务应用的名字
dubbo.application.name=consumer-server
#注册中心地址与服务者一样
dubbo.registry.address=zookeeper://127.0.0.1:2181
六、运行
整个项目就写完了,是不是很容易。
接下里我们要先运行Zookeeper的zkServer.cmd(这里不会的可以看我的博客dubbo+zookeeper简单入门)
运行好之后,运行服务者的主程序DubboProviderApplication,再运行消费者的主程序DubboConsumerApplication。
访问http://localhost:8002/test
你们的消费者端口是多少就访问多少
我们就可以看到我们运行出来的结果。超简单~
如果想看dubbo管理控制台 我们要运行Dubbo官方给的dubbo-admin(这里不知道的看我的博客dubbo+zookeeper简单入门)
然后访问http://localhost:7001/ (用户名密码都是root) 界面如下
我们可以进入服务治理的提供者和消费者
简单易懂
结合dubbo+zookeeper一起学
完结撒花!素质三连!谢谢!