一 、使用Docker下载Zookeeper
docker pull zookeeper二 、启动刚刚我们下载好的Zookeeper
#--name:自定义容器名字 # -p 注意zookeeper有三个端口(这里我们只需要暴露出2181端口即可) # 2181:对cline端提供服务 # 3888:选举leader使用 # 2888:集群内机器通讯使用(Leader监听此端口) #--restart always 表示只要容器退出,则Docker将自动重启该容器 # -d 表示该容器在后台运行 docker run --name myzookeeper01 -p 2181:2181 --restart always -d zookeeper三、创建项目
首先在这里选择Empty Poject 然后在空工程里添加新的 Model ,首先我们选择Spring Initializr 然后创建provider-ticket(提供者) 同样是添加新的 Model ,选择Spring Initializr创建consumer-user(消费者) 三、导入相关依赖 这里需要注意的是,因为我用的是SpringBoot2.3.1版本,与SpringBoot1.x版本不一样,还是存在一些差异的
我们先修改provider-ticket的依赖
<dependencies> <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> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> <!--这里是新增需要的依赖 --> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>4.2.0</version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version>4.2.0</version> </dependency> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>2.7.7</version> </dependency> <dependency> <groupId>com.github.sgroschupf</groupId> <artifactId>zkclient</artifactId> <version>0.1</version> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.14</version> </dependency> </dependencies>修改provider-ticket模块的pom.xml
# 配置服务名称 spring: application: name: provider-ticket # 连接我们刚刚下好的启动了的zookeeper ip换成你的Linux的ip即可 dubbo: registry: address: zookeeper://192.168.0.113:2181 #记住timeout一定要加进去不然会报错 timeout: 10000 # 这里放入我们要准备注册的组件的包名 scan: base-packages: com.atguigu.providerticket.service编写Service 编写ServiceImpl 编写controller 添加在Applicaiton上面@EnableDubbo注解 修改consumer-user的依赖
<dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>4.2.0</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.curator/curator-recipes --> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version>4.2.0</version> </dependency> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>2.7.7</version> </dependency> <!-- https://mvnrepository.com/artifact/com.github.sgroschupf/zkclient --> <dependency> <groupId>com.github.sgroschupf</groupId> <artifactId>zkclient</artifactId> <version>0.1</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.zookeeper/zookeeper --> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.14</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> <!-- 去除对默认日志的依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <!-- 去除对默认日志的依赖 --> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> 在这里插入代码片修改consumer-user的application.properties文件
spring.application.name=consumer-user dubbo.registry.address=zookeeper://192.168.0.113:2181 dubbo.registry.timeout=10000 server.port=18081编写consumer-user的Service 编写consumer-user的controller 接下来将我们provider-ticket中的service拿过来放在ConsumerUserApplication所在包下 1)、先启动provider-ticket然后再启动consumer-user 2)、访问:localhost:18081/buy?name=张三 访问成功!OK