Dubbo注册中心和管理平台(Dubbo第一炮)

本文是关于Dubbo的复习笔记,主要介绍Dubbo的用途、Zookeeper的原理及其在Dubbo中的作用。通过步骤详细讲解如何搭建Zookeeper和dubbo-admin管理平台,包括Zookeeper的配置、启动,以及dubbo-admin的源码下载、打包和部署,最后提供访问和管理dubbo-admin的说明。
摘要由CSDN通过智能技术生成

说明:大概是3年前在一个Saas平台中接触到dubbo,此博文是复习笔记,分享给需要的读者。学习dubbo要有一定的java和maven基础,因为此演示系统全程都离不开maven。此演示侧重Registry(Zookeeper)笔者称其为”Dubbo第一炮”。 (很久没玩dubbo了,博文用于复习与交流)

此演示主要内容
在这里插入图片描述

  1. Dubbo简述

(i) 什么是dubbo,它是用来干嘛的?
官方定义:
Apache Dubbo™ (incubating) is a high-performance, java based open source RPC framework。

民间定义:高性能的分布式框架或微服务框架。
说明:关于dubbo的发音,笔者喜欢叫它”打波”,有的人叫它“丢波”,呵呵……

(ii) Dubbo工作原理图

在这里插入图片描述

  1. zookeeper简介和原理

    (i)简介:
    zookeeper是一个开源的分布式协调服务,由雅虎创建,是 Google Chubby 的开源实现。
    分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、配置维护,名字服务、分布式同步、分布式锁和分布式队列、队列管理、组服务等功能。

    (ii) zookeeper原理
    zookeeper是以Fast Paxos算法为基础的,Paxos 算法存在活锁的问题,即当有多个proposer交错提交时,
    有可能互相排斥导致没有一个proposer能提交成功,而Fast Paxos作了一些优化,通过选举产生一个leader (领导者),
    只有leader才能提交proposer,具体算法可见Fast Paxos。因此,要想弄懂ZooKeeper首先得对Fast Paxos有所了解。

    ZooKeeper的基本运转流程:
    1、选举Leader。
    2、同步数据。
    3、选举Leader过程中算法有很多,但要达到的选举标准是一致的。
    4、Leader要具有最高的执行ID,类似root权限。
    5、集群中大多数的机器得到响应并接受选出的Leader

3.zookeeper实战(dubbo环境搭建)
Dubbo原理图中看到注册中心一职,其实就是由zookeeper来担当的。当然还有其它的工具也能担当,比如: Multicast, Simple等。

3.1 zookeeper下载安装
首先需要安装JdK,从Oracle的Java网站下载,安装很简单,就不再详述。
其中zookeeper的下载地址是:
http://www.apache.org/dyn/closer.cgi/zookeeper/ (这里的压缩包不用安装,直接解压即可)
https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/(笔者下载的是这个
zookeeper-3.4.12.tar.gz版本)

3.2 创建zookeeper启动时加载的配置文件
在 “zookeeper安装目录”\conf目录下,拷贝zoo_sample.cfg并重命令为zoo.cfg,因为 Zookeeper 在启动时会加载此名称的文件作为默认配置文件。
此配置文件属性项说明:

    (1)tickTime: Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,单位毫秒
	(2) initLimit: Zookeeper  集群时leader与follower服务器之间初始化连接时,维持心跳的时间长度,
		超过这个时间服务器之间的连接则失败,单位毫秒(多台zookeeper服务器集群时选举一台作为
		leader其它的作为follower)
	(3) syncLimit: Leader 与 Follower 之间发送消息,请求和应答时间长度。
	(4)dataDir:存储快照的目录。不要将/tmp用于存储数据目录. 默认情况下,
	               Zookeeper 将写数据的日志文件也保存在这个目录里。
	(5) dataLogDir:日志文件存放目录
	(6)clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,
		Zookeeper 会监听这个端口,接受客户端的访问请求

3.3 启动Zookeeper
(i)在zookeeper安装目录\bin目录下的双周zkServer.cmd,成功启动后会看到以下输出信息:
[myid:] - INFO [main:NIOServerCnxnFactory@89] - binding to port 0.0.0.0/0.0.0.0:2181

(ii)开一个新的cmd窗口,输入jps,看到以下信息,说明zookeeper访问成功
	C:\Users\Administrator.FV>jps
	6500 QuorumPeerMain
	6260
	2656 Jps

(iii)Ctrl + c 或直接关闭弹出来的cmd窗口来关闭zookeeper

注意:这是一种独占式的程序运行方式(与后台进程不一样,独占式运行的程序不能关闭,关闭了窗口程序也就关闭了,那么zookeeper提供的服务也没了)

4.dubbo-admin管理平台安装

(i) 简介:

	Where is dubbo-admin?
		   dubbo-admin has been moved from core repository to 
		 https://github.com/apache/incubator-dubbo-ops since 2.6.1
		dubbo与jdk版本匹配,Currently, dubbo keeps 3 versions evolve in parallel:

		2.7.x (master): requires Java 1.8, major feature branch.

		2.6.x: requires Java 1.6, minor feature & bugfix branch, GA, production ready.

		2.5.x: requires Java 1.6, maintenance branch, only accept security vulnerability 
		       and  critical bugfix, expected to be EOL soon.

(ii) dubbo-admin的作用
对服务提供者、服务消费者、访问量、负载均衡等功能的管理和维护

(iii) 下载和打包dubbo-admin源码成dubbo-admin.war
环境说明:设置好jdk,maven环境后,在cmd中输入命令:mvn -v命令得到的信息
包括jdk,maven,platform encoding,OS如下:

			Apache Maven 3.0.5
			Maven home: D:\maven\apache-maven-3.0.5
			Java version: 1.8.0_31, vendor: Oracle Corporation
			Java home: D:\Program Files\Java\jdk1.8.0_31\jre
			Default locale: zh_CN, platform encoding: GBK
			OS name: "windows 7", version: "6.1", arch: "x86", family: "dos"

dubbo的资源下载地址:
https://github.com/alibaba/dubbo(下面的操作需要读者有一定的maven基础,并且保持网络畅通)

选择Branch:2.5.x–>Clone or download–>Download Zip,成功下载后为incubator-dubbo-2.5.x.zip ,并解压
在这里插入图片描述
发现里面有dubbo-admin源码,发现里面有pom.xml文件(那么它是一个maven工程)

如果使用的是linux git clone url来下载,那url这样获取:选择Branch:2.5.x–>Clone or download–>点击"像格式刷一样的图标"就复制上url了, 例如:https://github.com/apache/incubator-dubbo.git
在这里插入图片描述
用maven工具将dubbo-admin打成war包(dubbo-admin.war)用于部署到tomcat服务器上,运行这个war项目。(这步是关键,很多人败在此处,只要你懂maven一切都easy)

如果你不想打自己打dubbo-admin.war,可以下载笔者在百度网盘提供的分享:
dubbo-admin.war链接:
https://pan.baidu.com/s/1MlmNQSoX7U5bpKkBpBD2ow 提取码:6c79 (@author:拈花为何不一笑)

  方式一 ,手工操作:
			1。安装和设置jdk和maven的环境变量(注意jdk版本要与dubbo相匹配)
			2.maven 打成war包,修改dubbo-admin目录中的pom.xml文件-->找到packaging内容-->修改成这样"<packaging>war</packaging>"
			3。打开cmd,利用cd命令进入incubator-dubbo-2.5.x.zip解压后的目录的dubbo-admin目录中,
			比如笔者的为:E:\java\JavaEE框架\duboo框架\dubbo源码_版本2.5.x\incubator-dubbo-2.5.x\dubbo-admin,则输入命令:
			cd E:\2.java\1.java学习体系(路线)\5.JavaEE框架\7 duboo框架\dubbo源码_版本2.5.x\incubator-dubbo-2.5.x\dubbo-admin
			e:
			E:\2.java\1.java学习体系(路线)\5.JavaEE框架\7 duboo框架\dubbo源码_版本2.5.x\incubator-dubbo-2.5.x\dubbo-admin>mvn package -Dmaven.test.skip=true
			遇到问题:				
			[ERROR] 错误: 读取F:\java\maven\repository\org\springframework\spring-context\3.2.16.RELEASE\spring-context-3.2.16.RELEASE.jar
			时出错; invalid LOC header (bad signature),基本上都是这样的10多个,说明下载的jar包有问题,按照路径删除,重新运行mvn package -Dmaven.test.skip=true
			会自动进行下载,并打包
			
			遇到上面错误后,先执行命令:mvn clean,再执行mvn package -Dmaven.test.skip=true即可。
			上面命令执行成功后,到dubbo-admin\target\下找到dubbo-admin.war包

在这里插入图片描述

	方式二,利用Eclipse/idea工具先导入maven工程dubbo-admin,在Eclipse/idea中间接调用maven来
	给dubbo-admin打成war包,原理跟方式一相同,这个会遇到环境不兼容的问题,要自己去解决。
	报错build path 时不兼容,换成相应的jdk版本,再右键项目--> maven-->update project...
	即可解决。
	
	方式三,前两种方式都是在window系统中进行的,而第三种,我们来linux下玩一玩, 原理其实还是跟方式一是相同的。
		1、安装jdk (如何在linux 中安装软件在此不细述,可参考笔者的其它博文)
		2、安装maven
		3、安装tomcat(可省略,tomcat部署在windows上)
		4、安装zookeeper
		5、打包dubbo-admin(利用maven工具)
		
		git clone https://github.com/apache/incubator-dubbo.git	#从github中下载dubbo
		tar -zxvf incubator-dubbo-2.5.x.zip	#解压

		cd /usr/local/incubator-dubbo-2.5.x/dubbo-admin/	#进入到dubbo-admin目录中
		mvn  package  -Dmaven.test.skip=true	#打包dubbo-admin成dubbo.war包,同理可以使用vim工具来修改pom.xml中打包方式设置成war即可

5.项目部署和管理

(i) 首先,启动Zookeeper(参照上面的3.3)
在这里插入图片描述

(ii) 然后,部署dubbo-admin.war和启动tomcat服务器
a) 部署dubbo-admin.war到tomcat安装目录下的webapps中,
b) 接着,启动tomcat服务器,例如笔者的为D:\apache\apache-tomcat-5.5.23\webapps\ ,
c) 再然后进入D:\apache\apache-tomcat-5.5.23\bin目录中双击startup.bat 那么tomcat服务器就启
动了,启动时我们来看看输出信息,找到了dubbo-admin-2.5.10.war的信息,成功被部署了。
在这里插入图片描述

说明:在windwos环境下当环境变量CATALINA_HOME指定哪个tomcat服务器安装目录(当安装了多个版本号的tomcat服务器时),startup.bat就运行那个tomcat服务器, 笔者实践验证过。

(iii) 最后,访问和管理
访问dubbo-admin应用,浏览器中输入http://localhost:8080/dubbo-admin-2.5.10/
弹出一个框要求输入用户/密码(位于部署在tomcat webapps目录中的
dubbo-admin-2.5.10/WEB-INF/dubbo.properties文件中,里面的密码跟用户名相同,有两个密码root和guest),输入用户名和密码时来看看tomcat服务器输出的信息
在这里插入图片描述

浏览器中弹出对话框信息,正确输入用户名和密码后,进入dubbo-admin管理系统

在这里插入图片描述

那么一个简单的dubbo-zookeeper-admin环境体验体验就OK了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值