先介绍一下Dubbo
Dubbo是一款高性能,轻量级的开源Java RPC框架,提供了三大核心能力;面向接口的远程调用,智能容错和负载均衡,以及服务自动注册和发现。
Dubbo的原理图:
首先:Dubbo分两个一个是Provider(提供者)一个是Consumer(消费者)
首先Provider要去注册中心去注册,去登记自己的信息,然后Consumer去找注册中心,去寻找自己要的东西,注册中心进行一个匹配,把匹配的结果告诉Consumer,Consumer拿着Provider的信息,就可以直接找到Provider,进行服务的调用
可以理解成是一个房产中介(Registry)和一个买房的人(Consumer)还有一个卖房的人(Provider),还有一个监控中心(Monitor)监控中心就是进行监控Consumer和Provider之间的行为
先介绍Zookeeper
Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终将简单易用的接口和性能高效、功能稳定的系统提供给用户。
这里举个简单的例子:假设我们有20个搜索引擎的服务器(每个负责总索引中的一部分的搜索任务)和一个总服务器(负责向这20个搜索引擎的服务器发出搜索请求并合并结果集),一个备用的总服务器(负责当总服务器宕机时替换总服务器),一个web的cgi(向总服务器发出搜索请求)。搜索引擎的服务器中的15个服务器提供搜索服务,5个服务器正在生成索引。这20个搜索引擎的服务器经常要让正在提供搜索服务的服务器停止提供服务开始生成索引,或生成索引的服务器已经把索引生成完成可以提供搜索服务了。使用Zookeeper可以保证总服务器自动感知有多少提供搜索引擎的服务器并向这些服务器发出搜索请求,当总服务器宕机时自动启用备用的总服务器。
我们上诉中Dubbo的注册中心就是用Zookeeper去进行的一个搭建
首先安装Jdk,基于Ubuntu下:
sudo tar -zxvf jdk-7u80-linux-x64.tar.gz
mv jdk1.7.0_80 /home/jdk
sudo vim /etc/profile
在尾部加上
export JAVA_HOME=/home/jdk/jdk1.7.0_80
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:%{JAVA_HOME}/lib:%{JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
激活一下环境
source /etc/profile
检查输入javac和java-version有没有反应
javac
java-version
上面就把jdk安装好了
接下来安装我们的zookeeper
解压
tar -zxvf zookeeper-3.4.6.tar.gz
移动文件
sudo mv zookeeper-3.4.6 /home/zookeeper
sudo mv zookeeper-3.4.6 zookeeper
再zookeeper目录下创建data目录
cd zookeeper
mkdir data
将conf目录下的zoo_sample.cfg改名为zoo.cfg
cd conf
mv zoo_sample.cfg zoo.cfg
vim zoo.cfg
cd ..
cd bin
./zkServer.sh start
./zkServer.sh status
打印消息:
JMX enabled by default
Using config: /home/zookeeper/bin/../conf/zoo.cfg
Mode: standalone
以上zookeeper就安装好了
接下来是dubbo监控中心的配置:
首先要安装Tomcat,然后将dubbowar包放到Tomcat的webapp里跑起来就可以了