一、dubbo架构

高性能的Java RPC框架,dubbo被阿里捐献给了apache。dubbo架构:

节点角色说明

  • Provider 暴露服务的服务提供方
  • Consumer 调用远程服务的服务消费方
  • Registry 服务注册与发现的注册中心
  • Monitor 统计服务的调用次数和调用时间的监控中心
  • Container 服务运行容器

调用关系说明

  • 服务容器负责启动,加载,运行服务提供者。
  • 服务提供者在启动时,向注册中心注册自己提供的服务。
  • 服务消费者在启动时,向注册中心订阅自己所需的服务。
  • 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
  • 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
  • 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

二、Zookeeper注册中心

dubbo官方文档可知,dubbo依赖注册中心,所以使用dubbo,需要提前搭建好注册中心。
dubbo官网-》文档-》用户文档-》参考手册-》注册中心参考手册-》推荐使用Zookeeper注册中心。

1、Zookeeper下载

Zookeeper官网下载:https://zookeeper.apache.org/,我下载的是zookeeper-3.5.9版本:

下载完,解压后,新建个文件夹data,用来存放后期临时数据(随便起名字和路径,只要与后面配置文件中dataDir指向的地址一致就行)

在conf文件夹中新建zoo.cfg文件(将zoo_sample.cfg内容复制到zoo.cfg里进行修改),调整dataDir即可:

2、zoo.cfg参数配置说明

(1)tickTime=2000:通信心跳数,Zookeeper服务器心跳时间,单位毫秒
Zookeeper使用的基本时间,服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime时间就会发送一个心跳,时间单位为毫秒。
它用于心跳机制,并且设置最小的session超时时间为两倍心跳时间。(session的最小超时时间是2tickTime)
(2)initLimit=10:Leader和Follower初始通信时限
集群中的follower跟随者服务器与leader领导者服务器之间初始连接时能容忍的最多心跳数(tickTime的数量),用它来限定集群中的Zookeeper服务器连接到Leader的时限。
投票选举新leader的初始化时间
Follower在启动过程中,会从Leader同步所有最新数据,然后确定自己能够对外服务的起始状态。
Leader允许Follower在initLimit时间内完成这个工作。
当已经超过 10个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 10
2000=20 秒
(3)syncLimit=5:Leader和Follower同步通信时限
集群中Leader与Follower之间的最大响应时间单位,假如响应超过syncLimit * tickTime,Leader认为Follwer死掉,从服务器列表中删除Follwer。总的时间长度就是 5*2000=10秒
在运行过程中,Leader负责与ZK集群中所有机器进行通信,例如通过一些心跳检测机制,来检测机器的存活状态。
如果L发出心跳包在syncLimit之后,还没有从F那收到响应,那么就认为这个F已经不在线了。
(4)dataDir:数据文件目录+数据持久化路径
保存内存数据库快照信息的位置,如果没有其他说明,更新的事务日志也保存到数据库。
(5)clientPort=2181:客户端连接端口
这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。

3、启动Zookeeper

进到bin目录下,cmd,执行zkServer.cmd启动Zookeeper会报如下错误:

经查找原因是,有点版本下载下来目录中没有lib文件夹,处理办法,去官网下载相应版本的bin的包,将apache-zookeeper-3.5.9-bin.tar.gz解压后文件夹中的lib包复制到apache-zookeeper-3.5.9.tar.gz解压后的文件夹中,重新cmd里启动,可成功启动,显示绑定了2181端口:


4、测试Zookeeper

zookeeper启动好了,接下来测试一下,还是bin下cmd,执行zkCli.cmd,打开zookeeper客户端:ls /查看一下根目录节点。至此,注册中心就搭建好了。

如果启动客户端报错:Will not attempt to authenticate using SASL (unknown error),可能是你上一步不小心把启动的zk关掉了又,也可能是其他原因。

三、监控中心

dubbo2.6版本以后都是springboot方式启动,可以直接运行main方法,或者使用 java -jar 很方便;
2.6版本之前都是war包-》web项目-》放到tomcat里。

1、dubbo-admin新版本安装

从github下载dubbo admin项目:https://github.com/apache/dubbo-admin,解压;
新版本的dubbo-admin已经修改了方式,使用了前后端分离的方式,结构中的dubbo-admin-server是我们的服务后端,dubbo-admin-ui是我们的前端:

2、安装node.js环境

前端又是使用的node.js,所以想要启动dubbo-admin首先需要安装node.js环境,进入nodejs官网https://nodejs.org/en/下载,一路next安装即可(没必要下载最新的,使用最多人使用的版本即可)

安装完,命令行测试一下:

我们的nodejs环境已经安装完成。

3、启动dubbo-admin-server服务端

1)修改配置
修改【dubbo-admin-develop\dubbo-admin-server\server\src\main\resource】下的application.properties 配置文件,注意配置zk的进程路径,必须配置你的zk运行的ip和端口。(改成自己服务器或虚拟机的地址,如果是在本地搭建的则不需要修改)

默认端口为8080,如果需要更改,加入配置 server.port=<端口号>,此处修改为8081

注:此处可以看出登录的用户名密码默认root/root

2)启动应用
配置完成后,第一种方式-》idea中启动【dubbo-admin-develop\dubbo-admin-server\src\main\java\org\apache\dubbo\admin\DubboAdminApplication.java】运行即可。

此处用第二种方式启动方式-》命令行操作:
进入dubbo-admin-server 目录,打开cmd窗口,在当前目录下执行以下两条命令:

mvn install -Dmaven.test.skip=true  //跳过测试环节

进入dubbo-admin-server\target 目录,执行jar包 :

java -jar dubbo-admin-server-0.2.0-SNAPSHOT.jar


服务端就此启动完成,在8081端口。

4、构建dubbo-admin-ui

1)配置国内taobao镜像: npm config set registry http://registry.npm.taobao.org/
查看镜像:npm get registry

2)进入dubbo-admin-ui文件夹下执行命令:

npm install  //安装依赖,进行mode_modules依赖构建
【构建成功后会生成node_modules文件夹】
npm run dev  //启动Vue项目

注:如果失败或者停留在某个地方很久可以试一下换镜像:
npm config set registry https://registry.npm.taobao.org
npm config set registry http://registry.cnpmjs.org/
npm config set registry https://registry.npmjs.org/
npm cache clean --force 换完源之后执行这个命令清除一下缓存

注:修改前端工程端口及配置信息:
如果修改了server的启动端口那么要相应修改ui模块里面的连接server的端口设置修改要让他们统一。打开文件【dubbo-admin-develop\dubbo-admin-ui\config\index.js】,找到【proxyTable】,将里面的target改成我们后端服务的ip加端口,然后保存。 但是我这个版本并没有这样操作修改也能访问!!!!不知道是内置了还是什么情况待研究!

5、访问dubbo-admin

http://localhost:8081/ root/root 登录管理控制台:

dubbo环境的简单搭建相关推荐

  1. 在centos环境中简单搭建邮件服务器

    前言 邮件收.发服务器是分开的,也就是我们需要搭建一个邮件发送服务器(Postfix)和一个邮件收取服务器(Dovecot). 本文会搭建收.发两个服务器,并用邮件客户端(Foxmail,outloo ...

  2. dubbo框架及dubbo环境搭建

    第一:介绍Dubbo背景 大规模服务化之前,应用可能只是通过RMI或Hessian等工具,简单的暴露和引用远程服务,通过配置服务的URL地址进行调用,通过F5等硬件进行负载均衡. (1)当服务越来越多 ...

  3. Dubbo环境搭建-管理控制台dubbo-admin实现服务监控

    场景 Dubbo环境搭建-ZooKeeper注册中心: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103555470 在上面搭 ...

  4. window下eclipse搭建C/C++开发环境(超简单无需插件版) .

    经过若干google之后(百度就不用说了),又经过了若干尝试,终于用最简单的步骤配起来了.(一些比较旧的文章写的太繁杂了,随着各个工具的升级,搭建环境很简单了). 前言:写博客不是为了炫耀什么.发泄什 ...

  5. python创建工程sublimw,python使用sublime搭建开发环境的简单示例

    这篇文章主要为大家详细介绍了python使用sublime搭建开发环境的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来 ...

  6. CentOS7.4中Postfix邮件服务器的搭建(一)-----环境配置及简单搭建

    CentOS7.4中Postfix邮件服务器的搭建(一)-----环境配置及简单搭建 实验内容: 1. 初始环境的优化 2. DNS服务器的搭建和postfix域名解析 3. Postfix服务器安装 ...

  7. SpringBoot整合Dubbo+Zookeeper进行分布式搭建系统

    QUESTIONl:SpringBoot整合Dubbo+Zookeeper进行分布式搭建系统? ANSWER: 一:创建项目模块 1.1.创建一个Empty Project 名称:Dubbo 1.2. ...

  8. Dubbo入门(2) - 简单实践

    作者:不洗碗工作室 - Marklux 出处:Dubbo入门(2) - 简单实践 版权归作者所有,转载请注明出处 在了解什么是分布式框架之后,我们需要上手实践一下,来了解整个系统是如何运作起来的. 本 ...

  9. MemCache在Windows环境下的搭建及启动

    MemCache在Windows环境下的搭建及启动 一.memcache服务器端的安装 1.下载memcached的安装包,memcached_en32or64.zip,下载链接:http://pan ...

  10. 简单搭建一个SSM项目(一)

    简单搭建一个用户管理的SSM项目框架,虽然也能用servlet+jdbc搭建更简单的,不过个人感觉工作中更多用的ssm框架项目,这里就简单用ssm来搭建需要的项目吧. 准备工具:eclipse.jdk ...

最新文章

  1. python元素定位的八种方法_selenium webdriver基于Python系列之八种元素定位方法
  2. 邮件服务器fixpost服务(1)
  3. 生活GOOGLE,GOOGLE生活
  4. JavaSE简单实现多线程聊天
  5. 恋舞服务器维修,2144《梦幻恋舞》关闭充值及关服公告
  6. java去掉图片边框颜色_sharp 去除图片边框
  7. 解决Ubuntu18.04 No wifi adapter found
  8. C++ 关联容器set | map | multiset | multimap
  9. Mysql学习总结(62)——MySQL连接com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link问题
  10. 【转】VB动态拖曳ListBox Item位置
  11. python合法的字符串_Python判断字符串是否为合法标示符操作
  12. Lua 函数参数 默认实参
  13. .Net中如何操作IIS(原理篇)
  14. labview控件旋转_基于LabVIEW的旋转倒立摆系统设计
  15. 电脑开启后,进入桌面黑屏,任务管理器可以用(排除是硬件问题)
  16. PHP excel 直接输出导出
  17. gethub连接的提示
  18. android 接口实现方法,Android应用开发之Android 请求网络接口实现方法
  19. Vscode中报错 CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
  20. 某大神网站发现2048一枚

热门文章

  1. 肺疫面前,段子手出动,但是玩笑也要分场合
  2. 前端 css 自动生成,关于前端:利用Zeplin从设计图自动生成CSS提高前端样式开发效率...
  3. SIM800C通讯模块调试
  4. Phaser 3入门
  5. 服务器bios怎么用u盘装系统,如何进入BIOS并用U盘重装系统
  6. 运维:你们 JAVA 服务怎么又又又又出问题了,内存降不下来。
  7. 数据在网络中如何传输的
  8. Xmanager中的Xbrowser怎么使用?
  9. Intent启动拨号盘,实现打电话功能
  10. 12306的(再次破解)从查票到购票