我是在linux下使用dubbo-2.3.3以上版本号的zookeeper注冊中心客户端。

Zookeeper是Apache Hadoop的子项目,强度相对较好,建议生产环境使用该注冊中心。

Dubbo未对Zookeeper服务器端做不论什么侵入改动。仅仅需安装原生的Zookeeper服务器就可以。全部注冊中心逻辑适配都在调用Zookeeper客户端时完毕。

Zooleeper安装

下载解压

wget http://www.apache.org/dist//zookeeper/zookeeper-3.3.3/zookeeper-3.3.3.tar.gz

tar zxvf zookeeper-3.3.3.tar.gz
cd zookeeper-3.3.3
cp conf/zoo_sample.cfg conf/zoo.cfg
配置:

vi conf/zoo.cfg

zoo.cfg的内容例如以下:(当中data文件夹需改成你真实输出文件夹)

# 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.
dataDir=/home/dubbo/zookeeper-3.3.3/data # the port at which the clients will connect
clientPort=2181

假设须要集群。zoo.cfg的内容例如以下:(当中data文件夹和server地址需改成你真实部署机器的信息)

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/dubbo/zookeeper-3.3.3/data
clientPort=2181
server.1=ip1
server.2=ip2

并在data文件夹下放置myid文件:(上面zoo.cfg中的dataDir)

mkdir data
vi myid

启动

./bin/zkServer.sh start

停止

./bin/zkServer.sh stop

管理控制台安装

管理控制台为内部裁剪版本号,开源部分主要包括:路由规则。动态配置,服务降级。訪问控制。权重调整。负载均衡,等管理功能。

安装

wget http://apache.etoak.com/tomcat/tomcat-6/v6.0.35/bin/apache-tomcat-6.0.35.tar.gz
tar zxvf apache-tomcat-6.0.35.tar.gz
cd apache-tomcat-6.0.35
rm -rf webapps/ROOT wget http://code.alibabatech.com/mvn/releases/com/alibaba/dubbo-admin/2.4.1/dubbo-admin-2.4.1.war unzip dubbo-admin-2.4.1.war -d webapps/ROOT

配置: (或将dubbo.properties放在当前用户文件夹下)

vi webapps/ROOT/WEB-INF/dubbo.properties
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest

启动

./bin/startup.sh


停止

./bin/shutdown.sh

訪问(注意我个人改动了默认的端口)(用户:root,密码:root)


http://127.0.0.1:8090/

注冊中心抽象

     Dubbo将注冊中心进行抽象,使得它能够外接不同的存储媒介给注冊中心提供服务,有ZooKeeper。Memcached,Redis等。Dubbo抽象后,用户能够进行扩展,我们通过分析ZooKeeper这个实现来了解注冊中心的低层。
     进过抽象之后,用户 仅仅须要实现相应的Registry和RegistryFactory就能够了,ZooKeeper就是实现了ZookeeperRegistry,和ZookeeperRegistryFactory。
     ZookeeperRegistryFactory的实现非常简单。就是返回一个ZookeeperRegistry实例,所以基本的东西是在ZookeeperRegistry中实现的,在ZookeeperRegistry用户须要实现注冊URL。注销URL,URL订阅,URL注销订阅和URL查询,在这里面设计到Zookeeper服务端的调用,都被封装到ZookeeperClient中,ZookeeperClient服务进行Server连接,断链。资源的CRUD。

ZooKeeper的价值

      因为引入了ZooKeeper作为存储媒介,也就把ZooKeeper的特性引进来。
      首先是负载均衡。单注冊中心的承载能力是有限的,在流量达到一定程度的时候就须要分流,负载均衡就是为了分流而存在的,一个ZooKeeper群配合相应的Web应用就能够非常easy达到负载均衡。
     资源同步。单单有负载均衡还不够。节点之间的数据和资源须要同步,ZooKeeper集群就天然具备有这种功能。
     命名服务,将树状结构用于维护全局的服务地址列表,服务提供者在启动的时候,向ZK上的指定节点/dubbo/${serviceName}/providers文件夹下写入自己的URL地址,这个操作就完毕了服务的公布。其它特性还有Mast选举。分布式锁等。

Dubbo框架应用之(三)--Zookeeper注冊中心、管理控制台的安装及解说的更多相关文章

  1. Dubbo原理简介、与Zookeeper整合利用

    官方文档:http://dubbo.io/books/dubbo-user-book/ Dubbo的简单介绍 Dubbo是一个分布式服务框架,架构如图: 节点角色说明: Provider: 暴露服务的 ...

  2. Watcher 实现机制之client注冊

    Zookeeper 提供的了分布式数据的公布/订阅功能,通过 Watch 机制来实现这样的分布式的通知功能. Zookeeper 同意client向server注冊一个Watch监听.当服务端的一些指 ...

  3. Dubbo框架中的应用(两)--服务治理

    Dubbo服务治理了看法 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlzaGVoZQ==/font/5a6L5L2T/fontsize/400/fi ...

  4. Dubbo源代码分析(三):Dubbo之服务端(Service)

    如上图所看到的的Dubbo的暴露服务的过程,不难看出它也和消费者端非常像,也须要一个像reference的对象来维护service关联的全部对象及其属性.这里的reference就是provider. ...

  5. struts2学习笔记(三)—— 在用户注冊程序中使用验证框架

    实现目标:       1.使用验证框架对用户注冊信息进行验证       2.验证username.password.邮箱不能为空       3.验证username.password长度     ...

  6. Dubbo框架应用之(三)--Zookeeper注册中心、管理控制台的安装及讲解

    我是在linux下使用dubbo-2.3.3以上版本的zookeeper注册中心客户端.Zookeeper是Apache Hadoop的子项目,强度相对较好,建议生产环境使用该注册中心.Dubbo未对 ...

  7. Dubbo框架应用之(四)--Dubbo基于Zookeeper实现分布式实例

    上三篇文章主要是解决了概念性的补充和学习,充分结合实战来深入理解 入门实例解析 第一:provider-提供服务和相应的接口 创建DemoService接口 package com.unj.dubbo ...

  8. SSH2框架实现注冊发短信验证码实例

    这两天開始写程序了,让用SSH2框架,曾经没有接触过Java项目更没有接触过SSH2框架,所以用注冊開始了我Java之旅.后来发现,后台代码挺easy理解的,跟.net的差点儿相同.就是层与层之间的调 ...

  9. dubbo注冊zookepper奇妙IP_续

    原文章地址:http://blog.csdn.net/lele2426/article/details/39530409#4483369 后来server须要连接外网.配置DNS后又開始出现奇妙的IP ...

随机推荐

  1. SourceTree 的初次使用的两个小问题

    菜鸟才开始使用SourceTree,出现了两个小问题,特此整理一下,希望对各位新手有帮助.刚开始以为装了SourceTree就不用装git了,其实不然,不装git就会出现下面第一个问题: 1.新手使用 ...

  2. Golang 处理 Json(二):解码

    golang 编码 json 还比较简单,而解析 json 则非常蛋疼.不像 PHP 一句 json_decode() 就能搞定.之前项目开发中,为了兼容不同客户端的需求,请求的 content-ty ...

  3. hdu 2546 饭卡(背包)

      设饭卡余额为total 此题经分析 可以得出:要求选出一些饭菜 时消费量尽量接近total-5元 然后再买一个饭菜 以达到透支... 可以证明 最后买的那个饭菜是饭菜中价值最大的. 证明 设a1 ...

  4. Delphi2010 RTTI + Attribute 简单实现ORM实例

    1.支持ORM,最基础的两个信息是表的信息和字段信息.这两个信息,如果用Attribute 来辅助,代码更简洁和可读性更好.可以把属性名当做真实字段名,也可以将特性里的属性当成真实姓名,再加上字段标题 ...

  5. function, new function, new Function

    函数是JavaScript中很重要的一个语言元素,并且提供了一个function关键字和内置对象Function,下面是其可能的用法和它们之间的关系.    使用方法一:  var foo01 = f ...

  6. 清除数据库表、外键、存储过程SQL

    1.删除所有外键 )    begin         exec(@c1)        fetchnextfrom c1 into@c1    endclose c1deallocate c1 2. ...

  7. log4j deadlock

    用了这么久的Log4j这次倒下了,而且官方也还没有给出解决方案. 描述:tomcat 经过一天多时间的访问,出现了hang ,使用 Jstack 查看堆栈后,发现现成 blocked ,主要是 Log ...

  8. c++ strcmp strcpy sprintf

  9. http和https的区别与联系

    超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂 ...

  10. vi 方向键 ABC

    解决方法:修改/etc/vim/vimrc.tiny ,增加set nocompatible,然后 保存,作用是关闭 vi 兼容模式