声明:本文为笔者随心所写,随意而为。文中介绍仅作参考。出了啥问题本人不负责!

先说说为啥写这东东吧,本人现已从业4年有余,工作以来也就是写写增删改查,调用/推出相应接口。感觉自身进入一个瓶颈了,所以就从网上找了下最近比较火的技术资料来看。   感觉相比大数据而言,学学分布式会相应简单一些。所以就开始学习dubbo了。

好了,不在废话了,开始进入正题吧。

首先呢。学dubbo嘛,就要先了解什么是分布式。

其实呢,分布式是一种很简单的概念。

说白了,就是拆程序。把一个整体的程序拆成大大小小的一块块,然后将他们分别部署到不同的机器上,然后通过一些网络协议将他们连接起来,为用户提供整套应用支持。

好了,说到这里也不多说了,一些基础理论啥的不是我的强项。说不来。

明白了分布式后,开始考虑如何把现有项目拆分,按什么模式拆分,中间用什么协议支撑。等等……

在这个时候,朋友推荐了dubbo,  看了一些资料后,很感兴趣,所以开始研究。

开始正题!

因个人项目原本就是Spring MVC+Mybaties架构的。

所以拆项目选择了dubbo+zookeeper+Spring MVC+Mybaties

首先,部署zookeeper。

第一步,准备三台linux机器(Windows也可以使用,本文不做介绍,本文使用的是VMware虚拟机)。

192.168.10.94

192.168.10.95

192.168.10.96

第二步,下载zookeeper包。(文章后会附有本人百度网盘地址。)

登录192.168.10.94

上传zookeeper包机器

解压(为方便输入,更改下文件夹名)

进入zook下conf文件夹

将zoo_sample.cfg改名为zoo.cfg

配置zoo.cfg

[html] view plain copy

  1. tickTime=2000
  2. initLimit=5
  3. syncLimit=2
  4. dataDir=/root/zook/data
  5. dataLogDir=/root/zook/logs
  6. clientPort=2180
  7. server.3=192.168.10.94:2888:3888
  8. server.1=192.168.10.95:2888:3888
  9. server.2=192.168.10.96:2888:3888

参数说明:

  • tickTime: zookeeper中使用的基本时间单位, 毫秒值.
  • dataDir: 数据目录. 可以是任意目录.
  • dataLogDir: log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和dataDir相同的设置.
  • clientPort: 监听client连接的端口号.
  • initLimit: zookeeper集群中的包含多台server, 其中一台为leader, 集群中其余的server为follower. initLimit参数配置初始化连接时, follower和leader之间的最长心跳时间. 此时该参数设置为5, 说明时间限制为5倍tickTime, 即5*2000=10000ms=10s.
  • syncLimit: 该参数配置leader和follower之间发送消息, 请求和应答的最大时间长度. 此时该参数设置为2, 说明时间限制为2倍tickTime, 即4000ms.
  • server.X=A:B:C 其中X是一个数字, 表示这是第几号server. A是该server所在的IP地址. B配置该server和集群中的leader交换消息所使用的端口. C配置选举leader时所使用的端口
创建data和logs目录
将配置好的zookeeper复制到另外两台机器
登录95和96机器
分别运行
[html] view plain copy

  1. scp -r root@192.168.10.94:/root/zook/ /root/zook
以下在三台机器上均需配置
data文件夹下创建myid文件
写入对应服务器id(即zoo.cfg文件中server.后的数字,192.168.10.94机器写3,192.168.10.95机器写1,192.168.10.96机器写2)
进入zook下bin目录
启动zookeeper
(注:运行zookeeper需要java环境,配置java可以参考此文章)
查看启动状态
      好了,到此zookeeper部署完成,下次把dubbo的相关再发上来

Leave a Reply

Your email address will not be published. Required fields are marked *