下载安装Zookeeper

linux

  使用docker部署

windows:参考(https://blog.csdn.net/ring300/article/details/80446918),下载的zookeeper目录中需要包含lib(内置jar包,否则需要自己导入)

  1、将conf目录下的zoo_sample.cfg文件,复制粘贴一份,重命名为zoo.cfg

  2、创建data目录和log目录

  3、修改zoo.cfg 文件中的

dataDir=D:\Zookeeper\data
datalogDir=D:\Zookeeper\log

  4、启动 双击 zkServer.cmd

对zoo.cfg文件配置说明

  tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。

  initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接

时最长能忍受多少个心跳时间间隔数。当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是

10*2000=20 秒

  syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 5*2000=10 秒

  dataDir:顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。

  clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。

SpringBoot整合Dubbo(RPC)

整合dubbo添加依赖

方法文档:https://github.com/apache/dubbo-spring-boot-project

1、provider 发布服务

1.1 在provider中的pom添加dubbo依赖和zookeeper相关依赖

        <dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>2.7.3</version></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><!--zookeeper应该不需要在依赖了--><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>3.5.5</version><exclusions><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></exclusion><exclusion><groupId>log4j</groupId><artifactId>log4j</artifactId></exclusion></exclusions></dependency>

1.2 application.properties

#当前服务的名字可以任意
dubbo.application.name=provider
#zookeeper的默认端口2181
dubbo.registry.address=zookeeper://localhost:2181
#将service包下的服务发布出去
dubbo.scan.base-packages=com.zy.provider.service

1.3 Service(非常重要,需要有一份一样的service接口到consumer中,全限定类型(包名和类名都要一样))

package com.zy.provider.service;public interface TestService {public String test();
}

1.4 serviceimpl

@Component
@Service  //注解到实现类上【org.apache.dubbo.config.annotation.Service;】
public class TestServiceImpl implements TestService {  //必须有一个接口@Overridepublic String test() {return "ok";}
}

1.5 启动:表示注册成功(否则,测试consumer的时候会报错)

2、consumer 引用服务

2.1 引入依赖

        <dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>2.7.3</version></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><!--排除zookeeper内部的日志jia包,防止和自生项目引入日志jar包产生冲突--><!--zookeeper应该是不需要在依赖了--><dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>3.5.5</version><exclusions><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></exclusion><exclusion><groupId>log4j</groupId><artifactId>log4j</artifactId></exclusion></exclusions></dependency>

2.2 application.properties

dubbo.application.name=consumer
dubbo.registry.address=zookeeper://192.168.1.101:2181
server.port=8082

2.3 创建service接口(这个service和provider中的 service需要一样,全限定类名一样(包名+接口名字))

package com.zy.provider.service;  //注意包名public interface TestService {public String test();
}

2.4 创建自己项目中的service

package com.zy.consumer.service;
import com.zy.provider.service.TestService;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Service;@Service
public class ConsumerService {@Reference //注意包是dubbo下的org.apache.dubbo.config.annotation.Reference;TestService testService;public void test(){System.out.println(testService.test());}
}

2.5 测试,控制台打印ok

@RunWith(SpringRunner.class)
@SpringBootTest
public class ConsumerApplicationTests {@Autowiredprivate ConsumerService consumerService;@Testpublic void contextLoads() {consumerService.test();}
}

  

2.6 补充目录结构

  

  

转载于:https://www.cnblogs.com/yanxiaoge/p/11396326.html

Spring Boot----SpringBoot整合 Dubbo 和 Zookeeper相关推荐

  1. 【SpringBoot整合Dubbo和Zookeeper】

    本笔记内容为狂神说SpringBoot集成Dubbo和Zookeeper部分 目录 一.Dubbo dubbo基本概念 调用关系说明 二.Dubbo环境搭建 三.Window下安装zookeeper ...

  2. Springboot 整合dubbo、zookeeper

    文章目录 1. dubbo 环境安装 1.1 Windows下zookeeper安装使用 1.2 Windos下安装dubbo-admin管理控制台 2. springboot的配置 2.1 创建两个 ...

  3. 搭建大型分布式服务(十四)SpringBoot整合dubbo starter

    一.本文要点 接上文,我们已经把SpringBoot整合mybatis+Hikari+es+redis+kafka了,本文将介绍SpringBoot如何整合dubbo.系列文章完整目录 dubbo注解 ...

  4. SpringBoot整合Dubbo+Zookeeper进行分布式搭建系统

    QUESTIONl:SpringBoot整合Dubbo+Zookeeper进行分布式搭建系统? ANSWER: 一:创建项目模块 1.1.创建一个Empty Project 名称:Dubbo 1.2. ...

  5. springboot整合dubbo\zookeeper做注册中心

    springboot整合dubbo发布服务,zookeeper做注册中心.前期的安装zookeeper以及启动zookeeper集群就不说了. dubbo-admin-2.5.4.war:dubbo服 ...

  6. springboot整合dubbo时连接zookeeper——天坑

    本文主要针对使用springboot整合dubbo框架时使用zookeeper作为注册中心,在服务启动连接zookeeper产生的问题做一个详细的讲解. 主要针对两个异常 (1)java.lang.I ...

  7. 【SpringBoot】12.SpringBoot整合Dubbo+Zookeeper

    1. 准 备 1.1 Dubbo 简介 Apache Dubbo 是一款高性能.轻量级的开源 Java RPC 框架,它提供了三大核心能力:面向接口的远程方法调用.智能容错和 负载均衡.以及服务自动注 ...

  8. spring整合dubbo和springboot整合dubbo,实现服务暴露区别

    spring整合dubbo的时候实现服务暴露是这么做的,在xml里配置 那么springboot整合dubbo的时候,是通过dubbo的@Service 注解实现的 之前我们是通过@Autowired ...

  9. Springboot整合Dubbo简单示例

    Springboot 整合dubbo: 1 简介 Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的 ...

最新文章

  1. js经典试题之ES6
  2. 数据挖掘实战(一):Kaggle竞赛经典案例剖析
  3. 从vivo 大规模特征存储实践中学点经验
  4. matlab三角函数化简命令,matlab - Matlab - 类似产品的三角函数简化 - 堆栈内存溢出...
  5. C#系列四《C#运算符与表达式》
  6. NOIP2017 Day1 T3 逛公园
  7. IO 设备的分类与概念、IO控制器
  8. Vue+ bootStrap 实现员的增删改查 离职操作 全选单选
  9. Java 垃圾回收算法
  10. lua——牛牛牌型处理相关算法(下)——牌型比较
  11. mac web服务器 修改默认,mac如何修改默认播放器-mac修改默认播放器的方法 - 河东软件园...
  12. 仪器计量校准机构的CNAS和CMA有哪些区别?分别具有什么作用?
  13. 青云QingCloud推出CDN加速服务 动态选择最优节点
  14. EPLAN史上最全部件库,官网下载,部件宏,EDZ格式,大小合适导入容易
  15. 蚂蚁借“链”上位,BAT谁将成数字经济领跑者?
  16. ubuntu下执行sudo命令提示:xx is not in the sudoers file. This incident will be reported.
  17. Android性能优化方法论
  18. 解决 升级到Fedora 26后,VirtualBox、Remmina远程桌面等内部不能使用 Win, Ctrl+TAB等快捷键
  19. python --Numpy详解(科学计算)
  20. php json 原理,基于JSONP原理详解

热门文章

  1. 中移M5310A NBIoT模组通信测试命令
  2. Qt 设置窗体或控件渐变消失
  3. GB/T 17626 电磁兼容 试验和测量技术系列标准【归纳】
  4. Python-100例(5-6) 排序斐波那契数列
  5. js-----Date==字符串
  6. select into from和insert into select
  7. Python requests介绍之接口介绍
  8. 搭建hexo博客并部署到github上
  9. python 进程和线程
  10. Perl学习笔记(六)--文件(一)