SpringBoot+dubbo+zookeeper入门
最近学习dubbo,采用springBoot+dubbo+zookeeper ,将相关配置写在application.properties 中,记录下自己学习的过程,仅作学习。
zookeeper安装
zookeepr是standlone模
-
zookeeper安装在虚拟机上
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz -
解压:tar -zxvf zookeeper-3.4.14.tar.gz;
-
创建 数据目录 mkdir -p /data/zookeeper/data/;
-
修改配置文件
cd /usr/local/zookeeper/conf
cp zoo.sample.cfg zoo.cfg
vim zoo.cfgdataDir=/data/zookeeper/data
-
安装 JDK1.8
-
echo "export JAVA_HOME=/usr/local/java" >> /etc/profile echo "export JRE_HOME=/usr/local/java" >>/etc/profile echo "export ZK_HOME=/usr/local/zookeeper" >> /etc/profile echo "export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$ZK_HOME/bin" >>/etc/prfile source /etc/profile
-
启动
zkServer.sh start -
测试、连接客户端
zkCli.sh -server localhost:2181 -
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
项目目录
接口文件
服务提供者
- 引入依赖
- 提供服务接口实现类
- application.properties 文件
- 启动类添加@EnableDubbo注释
//scanBasePackages的值是服务接口实现类DemoServiceImpl所在的包。 @EnableDubbo(scanBasePackages = "com.invengo.dubboprovider.service") @SpringBootApplication public class DubboProviderApplication { public static void main(String[] args) { SpringApplication.run(DubboProviderApplication.class, args); } }
- 启动如图所示,成功。
服务消费者
-
引入依赖
依赖配置于服务提供者中的配置是一样的 -
调用服务
-
application.properties 文件
server.port=8081 server.servlet.context-path=/consumer spring.main.allow-bean-definition-overriding=true dubbo.application.name=dubbo-consumer dubbo.registry.address=zookeeper://192.168.1.205:2181 dubbo.protocol.name=dubbo dubbo.consumer-timeout=3000
基本上与服务提供者中的application.properties 文件一致。
-
启动类添加@EnableDubbo注释
import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; //scanBasePackages的值是调用服务接口的进行消费的服务消费类所在的完整包名,例如:服务接口 //DemoService被DemoController调用,其完整包名为:com.invengo.dubboconsumer.controller //简单里说就是添加@Reference注释所在的类的包名 @EnableDubbo(scanBasePackages = "com.invengo.dubboconsumer.controller") @SpringBootApplication public class DubboConsumerApplication { public static void main(String[] args) { SpringApplication.run(DubboConsumerApplication.class, args); } }
-
启动
查看zookeeper
服务提供者和消费者启动成功后会在zookeeper中初见临时节点,正如图所示,每个个节点都会记录相关服务的信息。