Java集群优化——dubbo+zookeeper构建
互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的。现在核心业务抽取出来,作为独立的服务,使前端应用能更快速和稳定的响应。
下面我将讲解dubbo框架的基础配置。最后会放上demo下载链接。
本文旨在dubbo demo,会忽略一些用法,
对一些具体的api配置可以参考dubbo官方:http://dubbo.io/ 的用户指南,整体的搭建过程不算复杂。
Provider: 暴露服务的服务提供方。
Consumer: 调用远程服务的服务消费方。
Registry: 服务注册与发现的注册中心。
dubbo 简单的讲就是把不同服务的接口对外提供给注册中心,注册中心在提供给调用者。
所以一个可运行的demo就需要一个注册中心,一个生产者,一个消费者。
生产者和消费者这里分别使用java服务实现。注册中心可以是多种多样,这是选用官方推荐的zookeeper.最好使用zk。
1.zookeeper的安装和配置
下载后解压到自己想要的位置,这个东西是免安装的。这时我们安装好了。下面是配置一下
1.把conf目录下的zoo_sample.cfg改名成zoo.cfg,这里我是先备份了zoo_sample.cfg再改的名。
把zoo.cfg里面的内容改成:
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=D:\\zookeeper-3.4.7\\data
dataLogDir=D:\\zookeeper-3.4.7\\log
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
大家可以直接copy,一些带有“#”号的配置项也留着,以后方便扩展。
拷贝成功后保存即可。
我们再配置一下这个环境变量就可以运行zookeeper了。(本文基于Windows已经配置过JAVA_HOME并且配置正确)
新增环境变量:ZOOKEEPER_HOME
变量值:D:\zookeeper-3.4.7 (变量值要根据你下的zookeeper包的放置位置)
再在系统变量path最后添加: ;%ZOOKEEPER_HOME%/bin; %ZOOKEEPER_HOME%/conf 并保存就可以了
这个时候就可以验证我们到底有没有安装成功了
点击bin目录下的zkServer.cmd 这时候出现下面的提示就说明配置成功了。
注意 :这个窗口不要关闭!让注册中心服务一直运行。
2.生产者和消费者项目的运行
下面大家可以去下载我的demo并导入eclipse,下载地址在文章最后
导入两个工程后 先修改c_provider项目的applicationContext.xml文件,这个文件有三个红叉的话并不影响运行,
可以去下载dubbo.xsd文件(这个文件在我的demo包中有提供,demo包下载地址在随后有提供),放到你自己放置的位置,然后Window->Preferences->XML->XML Catalog 然后add
Location 是你的dubbo.xsd文件地址
保存后 Project->clean 就行了
这个时候我们再来修改applicationContext.xml,打开该文件
<dubbo:registry address="zookeeper://192.168.62.56:2181" />
只要把这个修改成192.168.62.56你自己的ip就行了
自己的ip可以这样查看 windows 然后输入cmd
就是那个ipV4地址
后面的那个端口号就是 那个coo.cfg里面的clientPort=2181这一项配置
然后运行一下 Provider.java文件就行了
注意:运行后不要关闭!
打印这个出来就行说明正确了.
这个时候可以看一下zookeeper的客户端的日志。已经可以监控到这些服务了。
这个时候把 consumer的applicationContext.xml文件里面的ip做同样修改
运行:Consumer.java 可以看到
至此,全部配置成功,dubbo的demo已经完成。
行文匆忙,不足之处希望大家在文章下讨论、指正