注册中心——zookeeper

zookeeper的介绍

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

ZooKeeper包含一个简单的原语集, 提供Java和C的接口。

ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在zookeeper-3.4.3\src\recipes。其中分布锁和队列有Java和C两个版本,选举只有Java版本。

总结:zookeeper是服务的协调调度服务器!!!

zookeeper的安装使用

zookeeper的下载

网址: http://zookeeper.apache.org/releases.html.
*http://mirrors.hust.edu.cn/apache/zookeeper/ *

zookeeper的安装

安装JDK

将JDK1.8文件上传到Linux操作系统中/src/usr/local/java/文件下.

1.解压文件
tar -xvf jdk-8u51-linux-x64.tar.gz

2.配置环境变量编辑环境变量配置文件
vim /etc/profile

使JDK生效,之后检查jdk安装是否成功
source /etc/profile

上传安装文件

说明:上传zookeeper安装文件.之后解压.

解压目录:
tar -xvf zookeeper-3.4.8.tar.gz

在zk根目录下创建文件夹data/log
mkdir data log

复制配置文件并且修改名称
cp zoo_sample.cfg zoo.cfg

修改配置文件dataDir,dataLogDir为新建data/log路径

启动zookeeper

zk启动关闭命令如下.

1
2
3
sh zkServer.sh start     或者  ./zkServer.sh start
sh zkServer.sh stop
sh zkServer.sh status


zookeeper集群

准备文件夹

在zookeeper根目录中创建新的文件夹zkCluster.

在zkCluster下创建zk1/zk2/zk3文件夹.

在每个文件夹里创建data/log文件夹.
mkdir {zk1,zk2,zk3}/{data,log}

添加myid文件

分别在zk1/zk2/zk3中的data文件夹中创建新的文件myid.其中的内容依次为1/2/3,与zk节点号对应.

编辑myid文件,定义编号.

编辑配置文件

将zoo_sample.cfg 复制为zoo1.cfg之后修改配置文件.

修改zoo1.cfg

配置完成后将zoo1.cfg复制2份.之后需要修改对应的文件夹目录.和不同的端口即可.

zookeeper集群测试

通过下面的命令启动zk集群.
sh zkServer.sh start zoo1.cfg 启动
sh zkServer.sh stop zoo1.cfg 停止
sh zkServer.sh status zoo1.cfg 查看状态

检查主从关系,从机情况说明.

Zookeeper集群中leader负责监控集群状态,follower主要负责客户端链接获取服务列表信息.同时参与投票.

dubbo控制台

dubbo控制台是监控服务的.修改dubbo的配置文件信息.改为zkIP地址和端口

修改配置文件信息

1
2
3
dubbo.registry.address=zookeeper://192.168.175.126:2181(ip:端口)?backup=192.168.175.126:2182,192.168.175.126:2183
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest

控制台展现
用户名和密码都是root 登录之后进入控制台.

dubbo提供者配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
server:
port: 9000
spring:
datasource:
#引入druid数据源
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/jtdb?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
username: root
password: root
#Springboot整合dubbo
dubbo:
scan:
basePackages: com.compent #包扫描dubbo的service注解
application:
name: provider-user #提供者服务名称
registry: #链接zookeeper
address: zookeeper://192.168.175.126:2181?backup=192.168.175.126:2182,192.168.175.126:2183
protocol:
name: dubbo
port: 20880 #服务通信端口 消费者链接提供者端口
mybatis-plus:
type-aliases-package: com.jt.dubbo.pojo #配置别名包路径
mapper-locations: classpath:/mybatis/mappers/*.xml #添加mapper映射文件
configuration:
map-underscore-to-camel-case: true #开启驼峰映射规则

dubbo消费者配置文件

1
2
3
4
5
6
7
8
9
server:
port: 9001
dubbo:
scan:
basePackages: com.compent
application:
name: consumer-user #服务名称"唯一"
registry:
address: zookeeper://192.168.175.126:2181?backup=192.168.175.126:2182,192.168.175.126:2183

dubbo小demo(https://github.com/51461/dubbo-demo/

-------------本文结束❤️感谢您的阅读-------------
ボ wechat
扫描二维码,可获得菜鸡一枚
打赏测试
0%