SOA面向微服务编程中的Linux 系统下的 zookeeper 集群的搭建

SOA面向微服务编程中的Linux 系统下的 zookeeper 集群的搭建

一,什么是SOA:
面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协议联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构件在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。

二,什么是zookeeper:
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。ZooKeeper包含一个简单的原语集,提供Java和C的接口。ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在$zookeeper_home\src\recipes。其中分布锁和队列有Java和C两个版本,选举只有Java版本。

三,zookeeper 集群的搭建步骤 :
下面以三个节点为例 , 搭建zookeeper 集群 , 并实现其 高可用性 :
集群创建步骤 :

 1 创建文件夹 : zkClusters
   mkdir zkClusters
 2 创建zk1,zk2,zk3 
   mkdir zk1
   mkdir zk2
   mkdir zk3
3 在每个文件中创建相同的文件 : 路径 : /usr/local/src/zookeeper/zkClusters , 在 zk1,zk2,zk3目录中创建 data,log 文件
   mkdir {zk1,zk2,zk3}/{data,log}
4 在每一个 data 中创建 myid 文件 
   vim zk1/data/myid
   vim zk2/data/myid
   vim zk3/data/myid 
5 在每个 myid 里面填写 对应的编号 : 1 , 2 , 3 , :wq 保存退出
   vim myid  1 :wq
   vim myid  2 :wq
   vim myid  3 :wq
6 在 zk 根目录下的conf 目录复制 zoo_sample.cfg 配置文件 ,分别命名为 :zoo1.cfg /zoo2.cfg /zoo3.cfg 
  cp zoo_sample.cfg zoo1.cfg 
  cp zoo_sample.cfg zoo2.cfg 
  cp zoo_sample.cfg zoo3.cfg 
7 修改zoo1.cfg , zoo2.cfg , zoo3.cfg配置文件
 修改 data , log 文件路径
  dataDir=/usr/local/src/zookeeper/zkClusters/zk2/data
  dataLogDir=/usr/local/src/zookeeper/zkClusters/zk2/log 
添加 端口号 和 IP地址 
  clientPort=2181/2182/2183
  server.1=192.168.126.166:2887:3887
  server.2=192.168.126.166:2888:3888
  server.3=192.168.126.166:2889:3889
8 集群测试 : 分别启动三个节点的服务 , 在 zk 根目录下的 bin 目录中开启服务
  sh zkServer.sh start   zoo1.cfg		:开启服务
  sh zkServer.sh stop    zoo1.cfg		:关闭服务
  sh zkServer.sh status  zoo1.cfg		:查看服务状态
9 检查服务是否开启成功 :
  ps -ef | grep  zookeeper
 显示三个进程号表示服务开启成功 : 6659 , 6687 , 6729
root      6659     1  1 00:32 pts/0    00:13:30 /usr/local/src/jdk1.8/bin/java -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp /usr/local/src/zookeeper/bin/../zookeeper-server/target/classes:/usr/local/src/zookeeper/bin/../build/classes:/usr/local/src/zookeeper/bin/../zookeeper-server/target/lib/*.jar:/usr/local/src/zookeeper/bin/../build/lib/*.jar:/usr/local/src/zookeeper/bin/../lib/slf4j-log4j12-1.7.25.jar:/usr/local/src/zookeeper/bin/../lib/slf4j-api-1.7.25.jar:/usr/local/src/zookeeper/bin/../lib/netty-3.10.6.Final.jar:/usr/local/src/zookeeper/bin/../lib/log4j-1.2.17.jar:/usr/local/src/zookeeper/bin/../lib/jline-0.9.94.jar:/usr/local/src/zookeeper/bin/../lib/audience-annotations-0.5.0.jar:/usr/local/src/zookeeper/bin/../zookeeper-3.4.14.jar:/usr/local/src/zookeeper/bin/../zookeeper-server/src/main/resources/lib/*.jar:/usr/local/src/zookeeper/bin/../conf:.:/usr/local/src/jdk1.8/lib/dt.jar:/usr/local/src/jdk1.8/lib/tools.jar -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain /usr/local/src/zookeeper/bin/../conf/zoo1.cfg
root      6687     1  1 00:32 pts/0    00:20:27 /usr/local/src/jdk1.8/bin/java -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp /usr/local/src/zookeeper/bin/../zookeeper-server/target/classes:/usr/local/src/zookeeper/bin/../build/classes:/usr/local/src/zookeeper/bin/../zookeeper-server/target/lib/*.jar:/usr/local/src/zookeeper/bin/../build/lib/*.jar:/usr/local/src/zookeeper/bin/../lib/slf4j-log4j12-1.7.25.jar:/usr/local/src/zookeeper/bin/../lib/slf4j-api-1.7.25.jar:/usr/local/src/zookeeper/bin/../lib/netty-3.10.6.Final.jar:/usr/local/src/zookeeper/bin/../lib/log4j-1.2.17.jar:/usr/local/src/zookeeper/bin/../lib/jline-0.9.94.jar:/usr/local/src/zookeeper/bin/../lib/audience-annotations-0.5.0.jar:/usr/local/src/zookeeper/bin/../zookeeper-3.4.14.jar:/usr/local/src/zookeeper/bin/../zookeeper-server/src/main/resources/lib/*.jar:/usr/local/src/zookeeper/bin/../conf:.:/usr/local/src/jdk1.8/lib/dt.jar:/usr/local/src/jdk1.8/lib/tools.jar -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain /usr/local/src/zookeeper/bin/../conf/zoo2.cfg
root      6729     1  1 00:32 pts/0    00:19:08 /usr/local/src/jdk1.8/bin/java -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp /usr/local/src/zookeeper/bin/../zookeeper-server/target/classes:/usr/local/src/zookeeper/bin/../build/classes:/usr/local/src/zookeeper/bin/../zookeeper-server/target/lib/*.jar:/usr/local/src/zookeeper/bin/../build/lib/*.jar:/usr/local/src/zookeeper/bin/../lib/slf4j-log4j12-1.7.25.jar:/usr/local/src/zookeeper/bin/../lib/slf4j-api-1.7.25.jar:/usr/local/src/zookeeper/bin/../lib/netty-3.10.6.Final.jar:/usr/local/src/zookeeper/bin/../lib/log4j-1.2.17.jar:/usr/local/src/zookeeper/bin/../lib/jline-0.9.94.jar:/usr/local/src/zookeeper/bin/../lib/audience-annotations-0.5.0.jar:/usr/local/src/zookeeper/bin/../zookeeper-3.4.14.jar:/usr/local/src/zookeeper/bin/../zookeeper-server/src/main/resources/lib/*.jar:/usr/local/src/zookeeper/bin/../conf:.:/usr/local/src/jdk1.8/lib/dt.jar:/usr/local/src/jdk1.8/lib/tools.jar -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain /usr/local/src/zookeeper/bin/../conf/zoo3.cfg
10 查看 集群中 服务间的主从关系 : 
java 在 zk 根目录下 bin 中输入 查看命令 :
[root@localhost bin]# sh zkServer.sh status zoo1.cfg
ZooKeeper JMX enabled by default
Using config: /usr/local/src/zookeeper/bin/../conf/zoo1.cfg
Mode: follower   **从机**
[root@localhost bin]# sh zkServer.sh status zoo2.cfg
ZooKeeper JMX enabled by default
Using config: /usr/local/src/zookeeper/bin/../conf/zoo2.cfg
Mode: follower   **从机**
[root@localhost bin]# sh zkServer.sh status zoo3.cfg
ZooKeeper JMX enabled by default
Using config: /usr/local/src/zookeeper/bin/../conf/zoo3.cfg
Mode: leader     **主机**
[root@localhost bin]# 

以上表示集群搭建成功
本人也是初学者 , 经验尚浅 , 所以结合自己的实践总结了以下 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值