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

简介: 微服务框架Dubbo环境部署的实战指南,涵盖了Dubbo的概述、服务部署、以及Dubbo web管理页面的部署,旨在指导读者如何搭建和使用Dubbo框架。

一.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/

Golang编程SDK接口:
       https://cn.dubbo.apache.org/zh/docs3-v2/golang-sdk/refer/use_dubbogo_cli/

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

注意,Linux如果直接使用yum安装的话后期编译时可能会提示版本过低,建议手动下载较高的版本安装哟!(会提示报错, 根据报错选择大于该版本安装即可)

    (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

如上图所示,咱们的服务部署成功啦。
目录
相关文章
|
5月前
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
942 3
|
3月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
3月前
|
监控 Cloud Native Java
Spring Boot 3.x 微服务架构实战指南
🌟蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕Spring Boot 3.x与微服务架构,探索云原生、性能优化与高可用系统设计。以代码为笔,在二进制星河中谱写极客诗篇。关注我,共赴技术星辰大海!(238字)
Spring Boot 3.x 微服务架构实战指南
|
7月前
|
缓存 负载均衡 监控
微服务架构下的电商API接口设计:策略、方法与实战案例
本文探讨了微服务架构下的电商API接口设计,旨在打造高效、灵活与可扩展的电商系统。通过服务拆分(如商品、订单、支付等模块)和标准化设计(RESTful或GraphQL风格),确保接口一致性与易用性。同时,采用缓存策略、负载均衡及限流技术优化性能,并借助Prometheus等工具实现监控与日志管理。微服务架构的优势在于支持敏捷开发、高并发处理和独立部署,满足电商业务快速迭代需求。未来,电商API设计将向智能化与安全化方向发展。
479 102
|
5月前
|
负载均衡 监控 Java
微服务稳定性三板斧:熔断、限流与负载均衡全面解析(附 Hystrix-Go 实战代码)
在微服务架构中,高可用与稳定性至关重要。本文详解熔断、限流与负载均衡三大关键技术,结合API网关与Hystrix-Go实战,帮助构建健壮、弹性的微服务系统。
596 1
微服务稳定性三板斧:熔断、限流与负载均衡全面解析(附 Hystrix-Go 实战代码)
|
4月前
|
jenkins Java 持续交付
使用 Jenkins 和 Spring Cloud 自动化微服务部署
随着单体应用逐渐被微服务架构取代,企业对快速发布、可扩展性和高可用性的需求日益增长。Jenkins 作为领先的持续集成与部署工具,结合 Spring Cloud 提供的云原生解决方案,能够有效简化微服务的开发、测试与部署流程。本文介绍了如何通过 Jenkins 实现微服务的自动化构建与部署,并结合 Spring Cloud 的配置管理、服务发现等功能,打造高效、稳定的微服务交付流程。
590 0
使用 Jenkins 和 Spring Cloud 自动化微服务部署
|
6月前
|
存储 监控 Shell
SkyWalking微服务监控部署与优化全攻略
综上所述,虽然SkyWalking的初始部署流程相对复杂,但通过一步步的准备和配置,可以充分发挥其作为可观测平台的强大功能,实现对微服务架构的高效监控和治理。尽管未亲临,心已向往。将一件事做到极致,便是天分的展现。
|
7月前
|
NoSQL Java 微服务
2025 年最新 Java 面试从基础到微服务实战指南全解析
《Java面试实战指南:高并发与微服务架构解析》 本文针对Java开发者提供2025版面试技术要点,涵盖高并发电商系统设计、微服务架构实现及性能优化方案。核心内容包括:1)基于Spring Cloud和云原生技术的系统架构设计;2)JWT认证、Seata分布式事务等核心模块代码实现;3)数据库查询优化与高并发处理方案,响应时间从500ms优化至80ms;4)微服务调用可靠性保障方案。文章通过实战案例展现Java最新技术栈(Java 17/Spring Boot 3.2)的应用.
619 9
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
710 6
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
348 1

热门文章

最新文章