声明:本文为笔者随心所写,随意而为。文中介绍仅作参考。出了啥问题本人不负责!
先说说为啥写这东东吧,本人现已从业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
- tickTime=2000
- initLimit=5
- syncLimit=2
- dataDir=/root/zook/data
- dataLogDir=/root/zook/logs
- clientPort=2180
- server.3=192.168.10.94:2888:3888
- server.1=192.168.10.95:2888:3888
- 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时所使用的端口
- scp -r root@192.168.10.94:/root/zook/ /root/zook