刚工作第一天就让搞dubbokepper,根本不知道是什么东西,让弄的时候一脸懵逼,所以分享一下我做的dubbokepper的经验,希望能帮到那些同样苦逼的孩子们!
开篇
对于dubbokeeper来说我们要先了解一下什么是dubbo和zookeeper因此我们先按顺序开始
首先要声明一个事情:dubbokepper不是dubbo和zookeeper整合而是一个单独的管理他们的工具吧,应该可以这么理解,举个例子相当于java和javaScript,而且dubbo是阿里巴巴出 的,zookeeper 是雅虎出的!弄明白这个我们继续往下看.
Dubbo是什么
是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。
其核心部分包含:
远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。
集群容错: 提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。
自动发现: 基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。
Dubbo能做什么
透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。
软负载均衡及容错机制,可在内网替代F5等硬件负载均衡器,降低成本,减少单点。
服务自动注册与发现,不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑添加或删除服务提供者。
Dubbo怎么用
详情请看官网 http://dubbo.io/Home-zh.htm
什么是Zookeeper
zookeeper是Hadoop的子项目,主要功能基于paxos算法对分布式系统的请求进行调度,详细介绍
http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/
Zookeeper能做什么
它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。
Zookeeper怎么用
http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/ 这里有他的安装及用法
Dubbokeeper是什么
dubbokeeper是一个开源版本基于spring mvc开发的社区版dubboadmin,
同时修复了官方admin存在的一些问题,以及添加了一下必要的功能 例如服务统计,
依赖关系等图表展示功能,当前dubbokeeper还属于开发阶段。
最终dubbokeeper会集成服务管理以及服务监控一体的DUBBO服务管理系统
Dubbokeeper包含的功能
1.应用管理
包含当前系统所有子应用信息列表,以及各个引用服务引用消费列表信息,
同时可以对某个应用的服务进行上下线操作,权重调整等,同时可以查看应用部署实体信息列表。
目的是实现服务的可管理
2.动态配置
这是利用dubbo基于注册中心来管理服务实现对服务的参数在服务运行状态进行调整,比如对服务的超时时间调整,
对服务的mock以及可以添加自定义参数的调整等,目的是服务的可配置。
3.统计信息
除了对服务的可管理,可配置。同时通过图表的方式对服务相关信息进行统计,
例如对整体系统的应用暴露,消费服务统计信息,应用依赖关系图信息等
4.Dubbo服务监控
通过扩展dubbo提供的MonitorService接口来实现对服务的监控,由于官方版本的监控功能比较局限,
所以将通过收集各方意见重新开发一套监控系统,从而可以实时对服务可控。
5.zookeeper信息查看
通过配置zookeeper地址,可以查看多个zookeeper中的节点信息
1.0.1版本变动内容
dubbokeeper在1.0.1版本对监控数据存储模块抽离出来,做为单独的应用部署,而不是和1.0.0版本和前端展示集成在一个应用里面
在1.0.0版本中暂时提供了mysql以及1.0.0中已有的lucene存储
这样做的目的是使得dubbokeeper的监控数据收集端能够集群部署(使用lucene,将不支持集群部署,如果使用lucene存储,需要jdk1.7+)
所以1.0.1以后的版本,对dubbokeeper的部署将包含两部分,一部分是监控数据存储端以及另一部分是监控数据展示的部署
dubbokepper的部署过程
1.下载源码 git clone https://github.com/dubboclub/dubbokeeper.git (注:刚开始还有点懵逼,其实就是dubbokepper的源码,只不过让你改点参数而已)
2.编译打包
首先我们从github上clone下来一份到eclipse的工作空间中,然后可以执行不同的install-xxx.bat(sh){这里的bat是指在windows下运行的sh是在linux下运行的},这个可以根据你想要的不同存储执行对应的脚本。如下图
执行完之后在target目录下面会发现xxx-dubbokeeper-ui,xxx-dubbokeeper-server以及xxx-dubbokeeper-server.tar.gz
其中xxx-dubbokeeper-ui下会有一个war包,将该war包部署到tomcat或者jetty里面(或者其他servlet容器),那么就部署好了监控展示应用了
3.记得在部署war包之前没有zookeeper的先下载安装后启动了zookeeper和tomcat服务器之后才能在页面显示出来
4.关于监控数据暂时端调整配置
对上面的war包解压出来后对其中WEB-INF/classes/dubbo.properties文件中的配置项进行调整。
#monitor的应用名,可根据自己情况自定义
dubbo.application.name=monitor-ui
#应用的拥有者
dubbo.application.owner=bieber
#连接的dubbo注册中心地址,保持部署监控数据存储的zk地址一样
dubbo.registry.address=zookeeper://localhost:2181
#use netty4
dubbo.reference.client=netty4
#peeper config
#监控的zookeeper连接列表,多个通过‘,’(英文逗号)隔开。
peeper.zookeepers=localhost:2181
#监控的zookeeper连接会话超时时间
peeper.zookeeper.session.timeout=60000
#被监控端同步监控数据周期时间,可不配置,默认是一分钟同步一次
monitor.collect.interval=60000
#logger
#dubbokeeper的日志目录
monitor.log.home=/usr/dev/op_disk/monitor-log
5.调用192.168.1.133的ip地址 (这是我们公司的你的按你自己的需求来,默认是220)
首先打开dubbokeeper-ui目录下的dubbo.properties将配置文件里面的配置改为如下
#dubbo的应用名称
dubbo.application.name=common-monitor
#dubbo的应用者
dubbo.application.owner=bieber
#dubbo的注册中心地址,保存和被监控应用一个注册中心(这里的端口号注意要是目标机器存在的端口号)
dubbo.registry.address=zookeeper://192.168.1.133:2181
#use netty4
dubbo.reference.client=netty4
#peeper config
#监控的zookeeper连接列表,多个通过‘,’(英文逗号)隔开。
peeper.zookeepers=192.168.1.220:2181
#被监控端同步监控数据周期时间,可不配置,默认是一分钟同步一次
peeper.zookeeper.session.timeout=60000
#logger
monitor.log.home=/monitor-log
monitor.collect.interval=1000
重新部署更新后的war包到tomcat服务器下,打开服务器然后就能正常连接进入dubbokeeper了
到这里就完了,dubbokepper就搭建好能正常跑了
不过我们还要连接数据库接着就今天又顺便通过client连接192.168.1.224会话安装部署了tomcat和mysql数据库,
还有把mysql数据库转换成orcle数据库还没做,不过应该不难了,如有疑难点会有后续更新...