环境准备:

        1. zookeeper-3.4.14     (下载地址:http://archive.apache.org/dist/zookeeper/)

        2. dubbo-0.2.0  (下载地址:https://github.com/apache/dubbo-admin/tree/master-0.2.0)

        3. spring boot-2.5.5

        4. jdk-1.8.0

        5. maven-3.6.3

   1. Zookeeper的下载和安装

    1.1 Zookeeper:

     ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed

synchronization, and providing group services. (是一个为分布式计算提供维护配置信息、命名注册、分布式

同步和组服务的集中服务)

    1.2 下载和配置:

    • 下载上述文件
    • 解压,在conf文件夹下复制zoo_sample.cfg文件,并命名为:zoo.cfg

      

    • 返回到bin/目录下,双击zkServer.cmd开启服务,监听端口2181

      

    • 并打开客户端zkCli.cmd发现可以连接服务,表示Zookeeper安装成功!

      

    • 客户端输入:ls /(中间包含空格),可以查找注册的节点。dubbo是我新注册的节点,默认只有Zookeeper

      

    • 创建节点和获取节点的信息

      create –e /nodeName(节点名称) value(值)       比如:create –e /test01 123

      get /nodeName(节点名称)        获取节点的信息

    • 客户端输入:ls /,即可查找注册的节点

   2. Dubbo的下载和安装

    2.1 Dubbo:

      阿里开源的微服务框架,提供了RPC通信微服务治理两大关键能力

    2.2 下载和配置

    • 下载dubbo-0.2.0
    • 在dubbo-admin-master-0.2.0路径下,使用maven打包:mvn clean package -Dmaven.test.skip=true

      

    • 打包成功

      

    • 在D:\software\installed\dubbo-admin-master-0.2.0\dubbo-admin\target目录下生成dubbo-admin-0.0.1-SNAPSHOT.jar文件,该文件用来启动dubbo

      

   3. 测试环境

    • 首先打开zkServer.cmd,开启Zookeeper服务;
    • 在D:\software\installed\dubbo-admin-master-0.2.0\dubbo-admin\target目录,执行命令:java -jar dubbo-admin-0.0.1-SNAPSHOT.jar  开启Dubbo;
    • 本地访问:http://localhost:7001/,网页响应则表示Dubbo Admin管理控制台启动成功,该平台可以监测Java程序向其中注册的服务;
    • Dubbo Admin管理控制台登录用户名和密码都为root;

    到此,表示dubbo-admin管理平台搭建成功!!!

  4. Spring Boot Demo测试

    • 创建dubbo-zookeeper工程,并添加生产者(provider-service)和消费者(consumer-server)maven模块

      

       项目链接地址:链接: https://pan.baidu.com/s/1SsOaulKgATakWiaYeRQj1A 提取码: 9q8t

    • 生产者提供购票服务,通过向Zookeeper注册服务,消费者远程进行调用
    • 生产者项目结构,需要修改的几部分用红色箭头标出

      

      -  pom.xml添加依赖

 1 <dependency>
2 <groupId>org.apache.dubbo</groupId>
3 <artifactId>dubbo-spring-boot-starter</artifactId>
4 <version>2.7.3</version>
5 </dependency>
6
7 <!-- https://mvnrepository.com/artifact/com.github.sgroschupf/zkclient -->
8 <dependency>
9 <groupId>com.github.sgroschupf</groupId>
10 <artifactId>zkclient</artifactId>
11 <version>0.1</version>
12 </dependency>
13
14 <!-- 解决日志冲突-->
15 <!-- 引入zookeeper -->
16 <dependency>
17 <groupId>org.apache.curator</groupId>
18 <artifactId>curator-framework</artifactId>
19 <version>2.12.0</version>
20 </dependency>
21 <dependency>
22 <groupId>org.apache.curator</groupId>
23 <artifactId>curator-recipes</artifactId>
24 <version>2.12.0</version>
25 </dependency>
26 <dependency>
27 <groupId>org.apache.zookeeper</groupId>
28 <artifactId>zookeeper</artifactId>
29 <version>3.4.14</version>
30 <!--排除这个slf4j-log4j12-->
31 <exclusions>
32 <exclusion>
33 <groupId>org.slf4j</groupId>
34 <artifactId>slf4j-log4j12</artifactId>
35 </exclusion>
36 </exclusions>
37 </dependency>

      -  application.properties更改配置

1 server.port=8001
2
3 # 服务应用名字
4 dubbo.application.name=provider-service
5 # 注册中心地址
6 dubbo.registry.address=zookeeper://127.0.0.1:2181
7 # 哪些服务要被注册
8 dubbo.scan.base-packages=com.spring.service

      -  TicketService接口

1 package com.spring.service;
2
3 public interface TicketService {
4 public String getTicket();
5 }

      -  TicketServiceImpl类

 1 package com.spring.service;
2
3 import org.apache.dubbo.config.annotation.Service;
4 import org.springframework.stereotype.Component;
5
6 // Zookeeper: 服务注册与发现
7 @Service // 可以被扫描到,在项目一启动就自动注册到注册中心
8 @Component // 使用了Dubbo后尽量不要用Service注解
9 public class TicketServiceImpl implements TicketService {
10 @Override
11 public String getTicket() {
12 return "G001, 开往郑州";
13 }
14 }
    • 消费者项目结构,需要修改的几部分用红色箭头标出

      

      -  pom.xml添加依赖:同生产者

         -  ConsumerServerApplicationTests

 1 package com.spring;
2
3 import com.spring.service.UserService;
4 import org.junit.jupiter.api.Test;
5 import org.springframework.beans.factory.annotation.Autowired;
6 import org.springframework.boot.test.context.SpringBootTest;
7
9 @SpringBootTest
10 class ConsumerServerApplicationTests {
11
12 @Autowired
13 UserService userService;
14
15 @Test
16 void contextLoads() {
17 userService.buyTicket();
18 }
20 }

      -  application.properties更改配置

1 server.port=8002
2
3 # 消费者去注册中心拿服务 需要暴露自己的名字
4 dubbo.application.name=consumer-service
5 dubbo.registry.address=zookeeper://127.0.0.1:2181

      -  TicketService接口:消费者的接口是从生成者拷过来的,该方法仅是以一种简单的方式实现远程过程调用

      -  UserService类

 1 package com.spring.service;
2
3 import org.apache.dubbo.config.annotation.Reference;
4 import org.springframework.stereotype.Service;
5
6 /*
7 易错
8 这里用的是spring下的service,这样test类的Autowired才能使用
9 */
10 @Service
11 public class UserService {
12 // 想拿到provider-service提供的票,要去注册中心拿服务
13 @Reference // 引用(远程拿包) 相当于本地的Autowired
14 TicketService ticketService;
15
16 public void buyTicket(){
17 String ticket = ticketService.getTicket();
18 System.out.printf("在注册中心买到票: " + ticket);
19 }
20 }

 5. 运行

    • 首先开启Zookeeper注册服务,双击zkServer.cmd;
    • 运行ProviderServiceApplication

      

    • 执行命令:java -jar dubbo-admin-0.0.1-SNAPSHOT.jar  开启Dubbo,访问http://localhost:7001/发现已向Zookeeper中注册服务

      

    • 运行ConsumerServerApplicationTests,输出  “在注册中心买到票: G001, 开往郑州”  ,则测试通过!!!

     

    重在记录和分享,如果对你有帮助,请竖起你的大拇指,并点击,Thanks♪(・ω・)ノ!!!

  

Zookeeper+Dubbo环境搭建与Demo测试的更多相关文章

  1. zookeeper+Dubbo环境搭建及简单Demo

    1 安装zk https://www.cnblogs.com/feifeicui/p/11175502.html 2 安装 dubbo-admin https://www.cnblogs.com/fe ...

  2. kafka环境搭建及librdkafka测试

    kafka环境搭建及librdkafka测试 (2016-04-05 10:18:25)   一.kafka环境搭建(转自http://kafka.apache.org/documentation.h ...

  3. [ZooKeeper] 2 环境搭建

    上一篇中我们介绍了 ZooKeeper 的一些基本概念,这篇我们讲一下 ZooKeeper 的环境搭建. ZooKeeper 安装模式 单机模式:ZooKeeper 运行在一台服务器上,适合测试环境: ...

  4. Dubbo环境搭建-管理控制台dubbo-admin实现服务监控

    场景 Dubbo环境搭建-ZooKeeper注册中心: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103555470 在上面搭 ...

  5. dubbo框架及dubbo环境搭建

    https://blog.csdn.net/liuhaiabc/article/details/52781351 dubbo框架及dubbo环境搭建

  6. dubbo环境搭建与tomcat集成、DEMO示例、常见问题(最完整版本、带管理控制台、监控中心、zookeeper)

    以windows为例,linux基本相同,开发环境一般linux,个人环境一般windows(如果不开额外vm的话). 示例以dubbo官方自带demo为例子,进行整合和稍加修改测试. 0.dubbo ...

  7. dubbo+zookeeper简单环境搭建

    dubbo+zoopeeper例子 [TOC] 标签(空格分隔): 分布式 dubbo dubbo相关 dubbo是目前国内比较流行的一种分布式服务治理方案.还有一种就是esb了.一般采用的是基于Ap ...

  8. dubbo+zookeeper+dubboadmin环境搭建

    4.环境搭建 4.1.zookeeper注册中心的配置安装(在windows平台下,Linux类似,见官方文档)(Redis注册中心安装,简易注册中心安装,简易监控中心安装,见官方文档) 下载zook ...

  9. Hibernate之环境搭建及demo

    ORM概念 ORM即Object/Relation Mapping, 对象/关系数据库映射.ORM是一种规范,完成面向对象编程语言到关系数据库之间的映射.J2EE中的JPA就是一种ORM规范. ORM ...

  10. 【Java学习系列】第1课--Java环境搭建和demo运行

    本文地址 分享提纲: 1. java环境的搭建 2. java demo代码运行 3.参考文档 本人是PHP开发者,一直感觉Java才是程序的王道(应用广,科班出身),所以终于下决心跟一跟. 主要是给 ...

随机推荐

  1. linux下压缩,解压缩的方法

    linux zip命令 zip -r myfile.zip ./* 将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件. 2.unzip unzip - ...

  2. PHP输出XML文件函数

    PHP输出XML文件函数 function xml_out($content, $charset = 'utf-8') { @header("Expires: -1"); @hea ...

  3. COGS 2434 暗之链锁 题解

    [题意] 给出一个有n个点的无向图,其中有n-1条主要边且这些主要边构成一棵树,此外还有m条其他边,求斩断原图的一条主要边和一条其他边使得图不连通的方案数. 注意,即使只斩断主要边就可以使得原图不连通 ...

  4. 清除SQL数据库的日志

    ALTER DATABASE [Fuliu_Test] SET RECOVERY SIMPLEALTER DATABASE [Fuliu_Test] SET RECOVERY FULLDBCC SHR ...

  5. Linux任务前后台的切换

    Shell支持作用控制,有以下命令实现前后台切换: 1. command& 让进程在后台运行 2. jobs 查看后台运行的进程 3. fg %n 让后台运行的进程n到前台来 4. bg %n ...

  6. C#线程池基础

    池(Pool)是一个很常见的提高性能的方式.比如线程池连接池等,之所以有这些池是因 为线程和数据库连接的创建和关闭是一种比较昂贵的行为.对于这种昂贵的资源我们往往会考虑在一个池容器中放置一些资源,在用 ...

  7. testbench中将外部数据引入输出的方法(转载)

    在进行HDL的仿真测试时,除了用较为直观的波形仿真图像以外,通过编写测试文件testbench进行仿真并将仿真结果保存在对应的文件,显得尤为重要.文件的操作主要用到读和写两种操作. 1. 读操作 读操 ...

  8. 关于MySQL的1064错误

    MySQL的1064错误是SQL语句写的有问题时出现的,即SQL的语法错误.笔者常常使用MySQL-python这个库来对MySQL进行操作,代码中报这个错误的一般是cursor.execute(sq ...

  9. springmvc接受前端的参数封装成对象

    前端如果传过来的是json格式的字符串,后台参数需要加@RequestBody注解. 前端如果传过来的是json对象,后台不参数需要加@RequestBody注解. $.POST({ url: url ...

  10. mybatis泛型(一)

    mybatis的确很方便,可以随意配置sql语句,并根据参数生成指定的sql,也可以根据查询结果生成指定对象 但是有一点非常恐怖,就是每个数据库表都必须有一个配置,等于在一个系统里做了很多重复的工作, ...