我是在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. CentOS 7下的KVM网卡配置为千兆网卡

    在KVM下可以生成两种型号的网卡,RTL8139和E1000,其实应该是底层生成不同芯片的网卡,而不是附带宿主机网卡是什么型号就是什么型号的,其中默认为100兆网卡,即RTL8319的螃蟹卡,另一种是 ...

  2. 精益软件研发的秘密 IT大咖说 - 大咖干货,不再错过

    精益软件研发的秘密 IT大咖说 - 大咖干货,不再错过   http://www.itdks.com/dakashuo/new/dakalive/detail/3662

  3. redis 写磁盘出错 Can’t save in background: fork: Cannot allocate memory (转)

    查看 Redis 日志 发现系统在频繁报错: [26641] 18 Dec 04:02:14 * 1 changes in 900 seconds. Saving… [26641] 18 Dec 04 ...

  4. bitnami-redmine邮件告警配置

    配置 bitnami-redmine的配置文件与单纯的redmine配置文件可能并不相同,在这里我们需要打开一下配置文件: /opt/bitnami/apps/redmine/htdocs/confi ...

  5. 打开IPHONE的sms.db短信文件 方法

    先将导出的sms.db文件改名为sms.sqlite再下载个火狐浏览器<IGNORE_JS_OP style="WIDOWS: 2; TEXT-TRANSFORM: none; BAC ...

  6. 通过layer-list自定义EditText背景

    假设activity的背景是白色,第一层也(就是最底层)是绿色:第二次是白色,但是距离底部有一段小偏移,目的是为了做出文本框两边的小勾:第三层也是白色,但是它距离底部和左右两边都有一定距离.通过三层配 ...

  7. JS读取json 文件

    json文件是一种轻量级的数据交互格式.一般在jquery中使用getJSON()方法读取. $.getJSON(url,[data],[callback]) url:加载的页面地址 data: 可选 ...

  8. 使用pm2管理node.js应用

    中文文档:https://pm2.io/doc/zh/runtime/quick-start/ pm2是从nodejs衍生出来的服务器进程管理工具,可以做到开机就启动nodejs.当然了,有些运维同学 ...

  9. 【google chrome 一键打开 谷歌跳转的页面+JS Replace】谷歌无法打开网页的时候,提取网页中url的部分

    经常在谷歌搜索,遇到网页无法打开,然后就停留在比如:http://www.google.com.hk/search?newwindow=1&safe=strict&site=& ...

  10. Domino(群组工作软件)

    ylbtech-Miscellaneos: Domino(群组工作软件) “Domino”是一种群组工作软件.使用了Domino的服务器就叫Domino服务器Domino的功能强大,界面丰富,主要用于 ...