文章目录
一、Dobbo简介
DUBBO是一个开源的分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是SOA服务化治理方案的核心框架。
使用流程:
第一步:要在系统中使用 dubbo 应该先搭建一个注册中心,一般推荐使用 zookeeper(redis 也可以)。
第二步:有了注册中心然后是发布服务,发布服务需要使用 spring 容器和 dubbo 标签来发布服务。并且发布
服务时需要指定注册中心的位置。
第三步:服务发布之后就是调用服务。一般调用服务也是使用 spring 容器和 dubbo 标签来引用服务,这样就
可以在客户端的容器中生成一个服务的代理对象,在 action 或者 Controller 中直接调用 service 的方法即可。
Zookeeper 注册中心的作用主要就是注册和发现服务的作用。类似于房产中介的作用,在系统中并不参与服务
的调用及数据的传输。
节点角色说明:
Provider: 暴露服务的服务提供方。
Consumer: 调用远程服务的服务消费方。
Registry: 服务注册与发现的注册中心。
Monitor: 统计服务的调用次调和调用时间的监控中心。
Container: 服务运行容器。
调用关系说明:
-
服务容器负责启动,加载,运行服务提供者。
-
服务提供者在启动时,向注册中心注册自己提供的服务。
-
服务消费者在启动时,向注册中心订阅自己所需的服务。
-
注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
-
服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
-
服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计
数据到监控中心
二、zookeeper集群的安装和部署
首先从zookeeper官网下载ZooKeeper压缩包,然后解压下载得到的ZooKeeper压缩包,发现有“bin,conf,lib”等目录。“bin目录”中存放有运行脚本;“conf目录”中存放有配置文件;“lib目录”中存放有运行所需要第三方库。
2.1 jdk的配置,vim的下载
2.1.1 vim文本编辑器下载
使用命令下载 vim 文本编辑器
yum install -y vim
2.1.2 jdk解压
下载 jdk ,使用Xftp文件传输软件,将压缩包导入服务器
解压jdk压缩包在当前目录
tar zxvf jdk-8u231-linux-x64.tar.gz
2.1.3 jdk环境变量配置
进入系统环境变量文件
vim /etc/profile
`注意:` 路径是jdk文件所在路径
export JAVA_HOME=/home/application/jdk1.8.0_231
下面两个不变
export CLASSPATH=.
export PATH=$PATH:$JAVA_HOME/bin
保存环境变量配置,然后输入java能运行,配置成功
source /etc/profile
2.2 zookeeper的配置步骤
2.2.1 导入zookeeper压缩包
(1)在home目录下创建application目录并进入
cd /home
mkdir application
(2)把压缩包放入application目录
2.2.2 解压zookeeper压缩包,更改文件名
(1)进入application目录,解压apache-zookeeper-3.6.3-bin.tar.gz
tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz -C /usr/local/
(2)解压的文件放在 /usr/local/ 下面,更改一下文件的名字
cd /usr/local/
mv apache-zookeeper-3.6.3-bin/ zookeeper3.6.3
2.2.3 修改zoo.cfg文件
(1)在/home/wusc/zookeeper-3.4.6 目录下,创建以下目录:
cd /usr/local/zookeeper3.6.3/
mkdir data
mkdir logs
(2)进入zoo.cfg文件,修改配置
vim conf/zoo.cfg
(3)修改dataDir路径,添加一个dataLogDir的路径
dataDir=/usr/local/zookeeper3.6.3/data
dataLogDir=/usr/local/zookeeper3.6.3/logs
(4)配置三台zookeeper机器(包括本机)
server.1=zookeeper01:2881:3881
server.2=zookeeper02:2881:3881
server.3=zookeeper03:2881:3881
server.1 表示是第几号服务器
zookeeper01 表示服务器的IP地址
2881 第一个端口用来集群成员的信息交换,
3881 是在 leader 挂掉时专门用来进行选举 leader 所用的端口
2.2.4 修改hosts文件
添加三台机器IP地址(包括本机IP地址)
# 进入hosts
vim /etc/hosts
#添加三台机器IP地址
192.168.192.21 zookeeper01
192.168.192.22 zookeeper02
192.168.192.23 zookeeper03
2.2.5 新建myid文件
在 dataDir=/home/wusc/zookeeper-3.4.6/data 下创建 myid 文件
#进入data目录
cd /usr/local/zookeeper3.6.3/data
#创建myid文件
touch myid
#向myid里面添加数据1
echo "1">myid
#一次性显示整个文件
cat myid
2.3 zookeeper集群的搭建
2.3.1 克隆两台zookeeper服务器,修改IP地址
(1)在刚刚搭建好的服务器上克隆出两台服务器
(2)修改新克隆两台的服务器的ip地址
#进入liunx的网卡配置
#ip为刚刚在hosts文件中配置的ip地址
vi /etc/sysconfig/network-scripts/ifcfg-ens33
(3)ping一下百度,能ping同说明配置成功
(4)修改myid文件
cd /usr/local/zookeeper3.6.3/
#进入myid文件
vim data/myid
将上面添加的 1 修改为 2,表示第二台机器,以此类推,第三台机器也是这样
2.3.2 scp远程复制
输入命令把三台机器连在一起
scp /etc/hosts root@192.168.192.22:/etc/hosts
scp /etc/hosts root@192.168.192.23:/etc/hosts
在一个窗口输入执行,会作用于打开的所有窗口
实现同步
测试: ping 一下三台机器,看是否连通
ping zookeeper01
ping zookeeper02
ping zookeeper03
3.3.3 关闭防火墙
zookeeper做单机版,可以正常启动;但是zookeeper做集群后启动不了,大部分原因是防火墙未关闭,所以需要关闭防火墙 。
(1)查看防火墙状态,当前防火墙为开启状态
systemctl status firewalld
(2)关闭防火火墙
systemctl stop firewalld
3.3.4启动zookeeper,进行选举
#进入zookeeper3.6.3目录
cd /usr/local/zookeeper3.6.3/
#启动zookeeper服务
bin/zkServer.sh start
#查看显示当前所有java进程
jps
#启动zookeeper状态
bin/zkServer.sh statu
zookeeper启动自动就会选举,使用bin/zkServer.sh statu
命令查看选举结果
zookeeper01为:为 follower
zookeeper02:为 follower
zookeeper03:为 leader