一、首先确定IDE Version和Runtime Environment:
运行环境:JDK 8,Maven 3.0+
技术栈:SpringBoot 2.0+、Dubbo 2.6+、ZooKeeper 3.3+
其中SpringBoot ,Dubbo 只要在Maven中配置就可以自动下载jar了,ZooKeeper 需要独立加载软件并运行才可以。
二、分布式架构Dubbo :
分布式架构:
1.当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,前端应用能更快速的响应多变的市场需求。
2.此时,用于提高业务复用及整合的 分布式服务框架(RPC) 是关键。
Dubbo 是什么
- 一款分布式服务框架
- 高性能和透明化的RPC远程服务调用方案
- SOA服务治理方案
Dubbo 架构流程图
Provider:服务提供方(生产者)
Consumer:服务消费者 (消费者)
Registry:注册中心
Monitor:统计服务调用次数和调用时间的监控中心
调用流程
0.启动服务提供者。
1.服务提供者在启动时,向注册中心注册自己提供的服务。
2.服务消费者在启动时,向注册中心订阅自己所需的服务。
3.注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
4.服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
5.服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
注册中心
服务提供方:针对所提供的服务到注册中心发布。
服务消费方:到服务中心订阅所需的服务。
对于任何一方,不论服务提供方或者服务消费方都有可能同时兼具两种角色,即需要提供服务也需要消费服务。
如果按照生产者调用消费者的服务,那是不是如下图:
这个看的眼花缭乱的,万一分布式得更多呢?所以我们需要Registry(注册中心): 服务注册与发现的注册中心。dubbo推荐的是zookeeper。zookeeper是用于分布式中一致性处理的框架。简单的讲,zookeeper就是个中介(注册中心),卖楼的(生产者)把楼盘信息放在中介(注册中心),想买楼的(消费者)去中介(注册中心)获得楼盘资源清单。
三、分布式Zookeeper的安装和使用步骤:
ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务。
它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
3.1:需要到官网下载ZooKeeper 3.4+的软件
ZooKeeper下载地址:http://www.apache.org/dyn/closer.cgi/zookeeper
3.2:下载完毕之后就需要做一些简单的配置了,配置过程如下:
在conf 目录下,zoo_sample.cfg复制一份改名为zoo.cfg,修改其中的dataDir路径,其相关数据可设置到对应路径
可修改clientPort=2181为自己的端口,当前框架搭建中不变
进入zookeeper的bin中,启动zkServer.cmd启动该服务
启动了zookeeper分布式服务