spring boot 集成 zookeeper 搭建微服务架构

时间:2022-12-29 18:53:18

PRC原理

  RPC 远程过程调用(Remote Procedure Call)

  一般用来实现部署在不同机器上的系统之间的方法调用,使得程序能够像访问本地系统资源一样,通过网络传输去访问远程系统资源,RPC框架实现的原理都是类似的,如下图:

spring boot 集成 zookeeper 搭建微服务架构

  Client Code:客户端调用方代码实现,负责发起RPC调用,为调用方用户提供使用API。

  Serialization/Deserialization:负责对RPC调用通过网络传输的内容进行序列化与反序列化,不同的RPC框架有不同的实现机制,主要分为文本与二进制两大类。(文本序列化机制主要有XML与JSON两种格式,二进制类别的序列化机制常见的有Java原生的序列化机制,以及Hessian、protobuf、Thrift、Avro、Kryo、MessagePack等),不同的序列化方式在可读性,码流大小,支持的数据类型以及性能等方面都存在较大差异,需要根据实际情况进行筛选。

  Stub Proxy:可以看做是一种代理对象,屏蔽RPC调用过程中复杂的网络处理逻辑,使得RPC调用透明化,能够保持与本地调用一样的代码风格。

  Transport:作为RPC框架底层的通信传输模块,一般通过Socket在客户端与服务端之间传递请求与应答消息。

  Server Code:服务端服务业务逻辑具体的实现。

服务注册中心介绍

我和你都有表达的能力,但是我们怎么沟通呢?见面聊?电话谈?还是微信语音呢?

spring boot 集成 zookeeper 搭建微服务架构

显然,注册中心来解决这个问题:

spring boot 集成 zookeeper 搭建微服务架构

ZooKeeper介绍

  zookeeper是dubbo中的注册中心,dubbo是一个分布式服务框架,自带RPC,dubbo使用maven引入。

  要运行dubbo,首先需要一个注册中心,可供选择的注册中心有Zookeeper、Multicast、Redis、Simple。

下载从官网去下载

解压后进入conf目录,里面有一个zoo.cfg (如果没有就自己创建)  配置说明如下:

  tickTime=2000  #单位毫秒 zk中最小时间单位长度

  dataDir=/user/local/zookeeper/data  #zk服务器存储快照文件目录

  dataLogDir=/user/local/zookeeper/logs  #zk服务器存储事务日志文件目录

  clientPort=2181  #服务端对外的服务端口

  initLimit=5  #tickTime的倍数  Leader等待Follower启动并完成数据同步的时间

  syncLimit=2  #tickTime的倍数  Leader与Follower之间心跳最大延时时间

进入bin目录下 运行 sh zkServer.sh start  (Windows直接双击)

spring boot 集成 zookeeper

稍微介绍一下设计

spring boot 集成 zookeeper 搭建微服务架构

一共有3个模块:

web:服务消费者,包含入口层与业务逻辑层。  (war包)

service.user:服务提供者,用户服务层  (war包)

base.core:共用层  包含对象实体  interface  (jar包)

多的我就不说了,都在代码里

源码分享

spring boot 集成 zookeeper 搭建微服务架构

spring boot 集成 zookeeper 搭建微服务架构的更多相关文章

  1. 手把手教你使用spring cloud+dotnet core搭建微服务架构:服务治理(-)

    背景 公司去年开始使用dotnet core开发项目.公司的总体架构采用的是微服务,那时候由于对微服务的理解并不是太深,加上各种组件的不成熟,只是把项目的各个功能通过业务层面拆分,然后通过nginx代 ...

  2. spring cloud+dotnet core搭建微服务架构:配置中心(四)

    前言 我们项目中有很多需要配置的地方,最常见的就是各种服务URL地址,这些地址针对不同的运行环境还不一样,不管和打包还是部署都麻烦,需要非常的小心.一般配置都是存储到配置文件里面,不管多小的配置变动, ...

  3. spring cloud+.net core搭建微服务架构:服务注册(一)

    背景 公司去年开始使用dotnet core开发项目.公司的总体架构采用的是微服务,那时候由于对微服务的理解并不是太深,加上各种组件的不成熟,只是把项目的各个功能通过业务层面拆分,然后通过nginx代 ...

  4. spring cloud+.net core搭建微服务架构:配置中心(四)

    前言 我们项目中有很多需要配置的地方,最常见的就是各种服务URL地址,这些地址针对不同的运行环境还不一样,不管和打包还是部署都麻烦,需要非常的小心.一般配置都是存储到配置文件里面,不管多小的配置变动, ...

  5. Spring Cloud Alibaba+Nacos搭建微服务架构

    1. Spring Cloud Alibaba 简介    Spring Cloud Alibaba是阿里巴巴为分布式应用提供的一站式解决方案,能够更方便快捷地搭建分布式平台,nacos拥有着替换eu ...

  6. spring cloud+dotnet core搭建微服务架构:Api网关(三)

    前言 国庆假期,一直没有时间更新. 根据群里面的同学的提问,强烈推荐大家先熟悉下spring cloud.文章下面有纯洁大神的spring cloud系列. 上一章最后说了,因为服务是不对外暴露的,所 ...

  7. spring cloud+dotnet core搭建微服务架构:配置中心续(五)

    前言 上一章最后讲了,更新配置以后需要重启客户端才能生效,这在实际的场景中是不可取的.由于目前Steeltoe配置的重载只能由客户端发起,没有实现处理程序侦听服务器更改事件,所以还没办法实现彻底实现这 ...

  8. spring cloud+.net core搭建微服务架构:配置中心续(五)

    前言 上一章最后讲了,更新配置以后需要重启客户端才能生效,这在实际的场景中是不可取的.由于目前Steeltoe配置的重载只能由客户端发起,没有实现处理程序侦听服务器更改事件,所以还没办法实现彻底实现这 ...

  9. spring cloud+.net core搭建微服务架构:Api网关(三)

    前言 国庆假期,一直没有时间更新. 根据群里面的同学的提问,强烈推荐大家先熟悉下spring cloud.文章下面有纯洁大神的spring cloud系列. 上一章最后说了,因为服务是不对外暴露的,所 ...

随机推荐

  1. 利用CSOM向列表添加文件夹

     博客地址:http://blog.csdn.net/FoxDave 本文只为记录一下这个小细节,不会过多赘述,开发可以看懂. 如果想向一个列表或库中添加文件夹,平时我们自然想到的是list.ro ...

  2. 6.1-6.5关于html

    网页一般是两种元素组合起来的,一种是内联元素, 也就是行内显示,加上width和height没效果.一种是区块元素,可以加上对应的width和height, 通常使用在网页的布局,最常用的就是< ...

  3. redis消息队列

    http://blog.csdn.net/21aspnet/article/details/7455032

  4. LeetCode OJ 292&period;Nim Gam148&period; Sort List

    Sort a linked list in O(n log n) time using constant space complexity. 排序问题是我们遇到的一个老问题,从大一开始我们就学习了各种 ...

  5. Oracle-Linux安装配置python3&period;6环境

    最近公司更换了linux系统的版本,从Ubuntu改为了oracle linux,相关的Python环境也要重新配置,记录一下基本配置的过程. 相关环境 系统:oracle linux7.3 系统自带 ...

  6. springMVC2

    一.视图解析流程 springMVC中视图解析器 1.视图最终的页面渲染.view视图来做,render 2.跳转到目标视图,请求转发. 3.遍历视图解析器,逻辑视图转换为物理视图. 1)视图 视图的 ...

  7. pyqt5 窗口无边框和透明

    https://blog.csdn.net/FanMLei/article/details/79433229 按钮圆形方法属性border-radius:30px; QScrollArea 无法滚动用 ...

  8. centos7&period;3安装redis

    yum install epel-release yum install redis 如果支持从其他机器能访问,需要修改配置文件 /etc/redis.conf,注释掉 bin 127.0.0.1 如 ...

  9. 深入理解JavaScript系列(39):设计模式之适配器模式

    介绍 适配器模式(Adapter)是将一个类(对象)的接口(方法或属性)转化成客户希望的另外一个接口(方法或属性),适配器模式使得原本由于接口不兼容而不能一起工作的那些类(对象)可以一些工作.速成包装 ...

  10. AngularJS之页面跳转Route

    1.除了引用AngularJs.js外,还要引用路由JS, "~/Scripts/angularjs/angular-route.js" 2.通过$routeProvider定义路 ...