前言
DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架。
以上是阿里巴巴官网对于DUUBO的定义,就几天使用Dubbo的初步认识来看,dubbo的意义主要在于以下几点:
分布式
可由多个服务器发布服务,业务组件调取服务的请求分散发出,类似于服务器集群的概念。
服务
将系统的服务分组件剥离,面向服务编程。举个例子就是现在正在开发的平安金融一账通系统,这个系统的组件很复杂,因为银行业务场景的高度分离,主要可分为用户体系、电子账户、云核心、行方、BSP等。这些组件的服务都是独立分组开发的,只对外提供出入口文档,每个组件的开发人员只需要把开发重心放在自己的服务和业务逻辑上即可,避免了很多不必要的业务交互上的冗余。
负载均衡
Dubbo利用一下几个算法去计算分配请求,使集群内的各个服务提供者始终处于舒适的负载状态。(这点也是面试过程中关于dubbo经常会被问到的,我遇到的每一个面试官貌似都问了这个。。。)
1)Random-随机(Dubbo的默认负载均衡算法)
2)Round robin -轮询调度
3)leastActive-最小活跃度
4)Hash-哈希
环境
能用上这篇攻略的想必下面这些环境和框架都已经具备了,在此不多赘述。
1)JDK
2)Maven
关于Maven,可以看看我之前的一篇博文:
Nexus搭建Maven私服
3)Spring
下面几篇博文主要讲解一下zookeeper和dubbo-admin(dubbo管理注册到zookeeper服务的可视化工具)的配置使用以及注册服务示例。
Zookeeper 安装
1、首先在Zookeeper官网上下载安装包
http://mirrors.hust.edu.cn/apache/zookeeper/
选择自己需要的版本,这篇攻略使用的zookeeper版本为3.3.6
2、将下载好的压缩包解压到自定义的安装文件目录,找到…\zookeeper-3.3.6\conf,打开conf文件夹,会看到一个名为zoo_sample.cfg的文件,如下图所示。
首先将文件重命名为zoo.cfg
3、打开zoo.cfg,配置如下
配置项含义:
tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
initLimit:初始化的线程数。
dataDir/dataLogDir:顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将数据保存在dataDir路径下,日志文件保存在dataLogDir路径下。
clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。(默认为2181,如无端口冲突问题,建议不要修改,搭建过程中吃过这个暗亏)
4、运行zookeeper
打开..\zookeeper-3.3.6\bin目录,运行zkServer.cmd。
运行效果图:
该服务需要一直保持运行的状态,否则系统需要暴露的服务无法在zookeeper端注册。
至此,zookeeper的安装的运行就完成了,很简单吧。
关于dubbo-admin的安装详解,详见我的下一篇博文:
Spring+Dubbo+Zookeeper框架搭建–<二>Dubbo-admin安装
http://blog.csdn.net/lhxaiee123/article/details/75907022