首页 > 其他分享 >微服务框架Dubbo环境部署实战

微服务框架Dubbo环境部署实战

时间:2023-01-05 01:44:25浏览次数:28  
标签:实战 Dubbo 服务 框架 dubbo admin zookeeper 2181 10.0

目录



一.dubbo概述

1.什么是微服务

微服务(Microservices Architecture)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。

微服务是指开发一个单个小型的但有业务功能的服务,每个服务都有自己的处理和轻量通讯机制,可以部署在单个或多个服务器上。

微服务也指一种种松耦合的、有一定的有界上下文的面向服务架构。也就是说,如果每个服务都要同时修改,那么它们就不是微服务,因为它们紧耦合在一起;如果你需要掌握一个服务太多的上下文场景使用条件,那么它就是一个有上下文边界的服务。

2.dubbo介绍

Apache Dubbo是一款高性能,轻量级的开源服务框架。

Apache提供六大核心能力:
	- 面向接口代理的高性能RPC调用
	- 智能容错和负载均衡
	- 服务自动注册和发现
	- 高度可扩展性
	- 运行期间流量调度
	- 可视化的服务治理与运维
	
	
阿里云微服务:
	https://promotion.aliyun.com/ntms/act/edasdubbo.html
	
Dubbo官网:
	https://cn.dubbo.apache.org/zh/index.html
	
SDK手册:
	https://cn.dubbo.apache.org/zh/docs3-v2/

3.dubbo架构

角色 角色说明
Provider 暴露服务的服务提供方
Consumer 调用远程服务的服务消费方
Registry 服务注册与发现的注册中心
Monitor 统计服务的调用次数和调用时间的监控中心
Container 服务运行容器
如上图所示,调用关系说明如下:
	- 服务容器负责启动,加载,运行服务提供者;
	- 服务提供者在启动时,向注册中心注册自己提供的服务;
	- 服务消费者在启动时,想注册中心订阅自己所需的服务;
	- 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长链接推送变更数据给消费者;
	- 服务消费者,同提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用;
	- 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到注册中心;
	
	
Dubbo服务框架的工作流程如下:
	- 提供者在启动时,在注册中心注册服务;
	- 消费者在起订是,在注册中心订阅所需的服务;
	- 注册中心返回提供者地址列表给消费者,如果提供者发生变更,注册中心将推送变更数据给消费者;
	- 消费者基于软负载均衡算法,从提供者地址列表中选一个提供者进行调用;
	
	
对于注册中心,我们不仅仅可以选择zookeeper,当然nacos也是一个不错的选择哟。
	- https://zookeeper.apache.org/
	- https://nacos.io/zh-cn/


二.部署dubbo服务

1.部署JDK环境

- Ubuntu系统:
	- apt -y install openjdk-8-jdk


- CentOS系统:
	- yum -y install java-1.8.0-openjdk-devel nc

2.部署provider组件

	(1)解压provider软件包
tar xf dubbo-demo-provider-2.1.5-assembly.tar.gz -C /usr/local/


	(2)编辑"dubbo.properties"文件
vim /usr/local/dubbo-demo-provider-2.1.5/conf/dubbo.properties 
...
# 禁用默认的组播注册中心。
# dubbo.registry.address=multicast://224.5.6.7:1234
...
# 将默认的单个节点的配置注释掉
#dubbo.registry.address=zookeeper://127.0.0.1:2181
# 配置zookeeper集群地址
dubbo.registry.address=zookeeper://10.0.0.31:2181 | zookeeper://10.0.0.32:2181 | zookeeper://10.0.0.33:2181


	(3)如上图所示,启动provider
/usr/local/dubbo-demo-provider-2.1.5/bin/start.sh 




官方测试dubbo样例:
	https://github.com/apache/dubbo/tree/master/dubbo-demo

3.验证zookeeper的znode信息

如上图所示,会自动创建一个/dubbo的znode哟,最后一层的子节点是一个临时znode哟。

4.部署consumer环境

	(1)解压consumer的软件包
tar xf dubbo-demo-consumer-2.1.5-assembly.tar.gz -C /usr/local/


	(2)编辑"dubbo.properties"文件
# 禁用默认的组播注册中心。
# dubbo.registry.address=multicast://224.5.6.7:1234
...
...
# 将默认的单个节点的配置注释掉
#dubbo.registry.address=zookeeper://127.0.0.1:2181
# 配置zookeeper集群地址
dubbo.registry.address=zookeeper://10.0.0.31:2181 | zookeeper://10.0.0.32:2181 | zookeeper://10.0.0.33:2181


	(3)启动consumer服务,启动成功后可以看到如上图所示的配置哟
/usr/local/dubbo-demo-consumer-2.1.5/bin/start.sh


温馨提示:
	如下图所示,当我们的消费者启动成功后,这意味着生产者也会得到响应哟,会有日志生成!可以明显看到日志来自哪个节点。

5.启动多个消费者并查看生产者日志

如上图所示,我在dubbo33节点上启动了新启动了consumer服务。在此之前,我已经在dubbo31节点启动过消费者啦。


如下图所示,当有多个消费启动时,可以观察生产者日志,有多个消费者请求哟。



三.部署dubbo web管理页面

1.下载dubbo-admin的软件包

如上图所示,需要下载"dubbo-admin"的软件包哟。

官网地址:
	https://github.com/apache/dubbo-admin

2.安装maven环境

	(1)安装maven环境
apt -y install maven

	
	
	(2)配置镜像加速
vim /etc/maven/settings.xml
...
146   <mirrors>
147     <!-- 添加阿里云镜像加速 -->
148     <mirror>
149        <id>nexus-aliyun</id>
150        <mirrorOf>*</mirrorOf>
151        <name>Nex aliyun</name>
152        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
153     </mirror>
...
166   </mirrors>

3.编译安装dubbo-admin

	(1)解压压缩包(或者直接去官网git clone拉取代码也可以哟~)
unzip dubbo-admin-develop.zip 


	(2)切换到源码目录
cd dubbo-admin-develop/


	(3)修改zookeeper的实际IP地址
vim dubbo-admin-server/src/main/resources/application.properties 
...
# 修改zk集群地址
admin.registry.address=zookeeper://10.0.0.31:2181,10.0.0.32:2181,10.0.0.33:2181
admin.config-center=zookeeper://10.0.0.31:2181,10.0.0.32:2181,10.0.0.33:2181
admin.metadata-report.address=zookeeper://10.0.0.31:2181,10.0.0.32:2181,10.0.0.33:2181


	(4)优化maven配置
echo 'export MAVEN_OPTS="-Xmx2g -Xms2g"' >> /etc/profile.d/maven.sh
source  /etc/profile.d/maven.sh


	(5)部署nodejs环境
apt update
apt -y install npm
npm config get registry
npm config set registry http://registry.npm.taobao.org
npm config get registry


	(6)执行JAVA编译并跳过单元测试,如上图所示,出现了成功字样,用时7分钟左右哈。
mvn clean install package -Dmaven.test.skip=true

4.启动dubbo-admin服务

java -jar dubbo-admin-distribution/target/dubbo-admin-0.5.0-SNAPSHOT.jar --server.port=8888


温馨提示:
	如上图所示,默认的初始用户名和密码均为"root/root"。

5.访问dubbo-admin的WebUI

如上图所示,咱们的服务部署成功啦。

标签:实战,Dubbo,服务,框架,dubbo,admin,zookeeper,2181,10.0
From: https://www.cnblogs.com/yinzhengjie/p/17026440.html

相关文章

  • 极客时间《性能测试实战》——性能测试基础
    性能测试的概念1.性能测试概念的传统解释:压力测试压力测试是评估系统处于或超过预期负载时系统的运行情况。压力测试的关注点在于系统在峰值负载或超出最大载荷情况下......
  • jango框架:forms组件渲染标签、forms组件展示信息、forms组件校验补充、forms组件参数
    目录forms组件渲染标签forms组件展示信息forms组件校验补充钩子函数forms组件参数补充forms组件源码剖析modelform组件基本使用classMeta下常用参数save()方法forms组件......
  • django框架:django中间件
    django中间件官方说法:中间件是一个用来处理django的请求和响应的框架级别的钩子。说的直白一点中间件是帮助我们在视图函数执行之前和执行之后都可以做一些额外的操作,他本......
  • 5分钟快速掌握 Python 定时任务框架
    APScheduler简介在实际开发中我们经常会碰上一些重复性或周期性的任务,比如像每天定时爬取某个网站的数据、一定周期定时运行代码训练模型等,类似这类的任务通常需要我们手......
  • 【深入浅出Sentinel原理及实战】「基础实战专题」零基础探索分析Sentinel控制台开发指
    Sentinel控制台Sentinel提供了一个轻量级的开源控制台SentinelDashboard,它提供了机器发现与健康情况管理、监控(单机和集群)、规则管理与推送等多种功能。Sentinel控制台提......
  • 靶场实战1-prime1
    本文知识交流学习心得,如果被拿去做违法乱纪的事情,请自行负责,与作者无关 一.信息收集Prime_1目标,获取靶机root权限开启之后,得到用户名victor,但是不知道密码(是需要我......
  • Swift基础之如何使用iOS 9的Core Spotlight框架
    本文由​​CocoaChina​​译者KingOfOnePiece(博客)翻译作者:GABRIELTHEODOROPOULOS?校对:hyhSuper原文:​​HowToUseCoreSpotlightFrameworkiniOS9​​iOS每一次版本的......
  • ArcGIS Pro从0到1入门实战教程
     翎树文化书都有1000多分钟视频和样例数据。基于ArcGISPro2.8.前 言2015年1月美国ESRI公司全新设计,推出ArcGISPro1.0版本,原本是解决ArcGIS三维短板问题,经过6年多的......
  • 第十阶段:互联网项目实战
    认清现实,放弃幻想。(特此感谢动力节点老杜分享出来的学习路线)10.第十阶段:互联网项目实战10.1项目:动力商城10.1.1技术架构SpringBoot+SpringCloud+......
  • JS逆向实战10——某集团RSA长加密
    由于本网站较为特殊目标网站加密与其他稍有不同目标网站:68747470733a2f2f65632e6d696e6d6574616c732e636f6d2e636e2f6f70656e2f686f6d652f70757263686173652d696e666f2f......