开发者学堂课程干货总结——Dubbo 分布式服务治理实践(四)

本文涉及的产品
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
注册配置 MSE Nacos/ZooKeeper,182元/月
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
简介: Dubbo 分布式服务治理实践课时4——Dubbo分布式Order订单服务集群治理实战 。电子书+视频为同学带来最佳学习效果,文字、课程链接、图谱地址统统为大家放送了哦!

哈喽各位同学们大家好呀,小编今天带着开发者学院中课程Dubbo分布式Order订单服务集群治理实战”干货总结来了~一起学习新课程吧!

课程链接以及图谱地址小编已经为大家指路了,搭配学习效果更佳👇

课程名称:Dubbo分布式Order订单服务集群治理实战  

课程地址:https://developer.aliyun.com/learning/course/72/detail/1188

图谱名称:Alibaba Java 技术图谱

图谱地址:https://developer.aliyun.com/graph/java


Dubbo分布式Order订单服务集群治理实战


这节课模拟淘宝订单服务看如何使用Dubbo,之前提到Dubbo有许多不同协议,包括核心部分注册中心客户端服务端。注册中心要先上线,类似微服务架构,可以用zookeeper注册服务中心注册。 

 

一、Dubbo分布式集群架构 

实战开发首先安装JAVA开发环境,Dubbo需要加部分依赖,因为Dubbo没有快速创建的模板,需要自己构建服务端注册中心等,客户端添加依赖进行开发。 

Dubbo是典型的分布式集群架构先理清楚整个项目的结构关系,消费者是订单的调度端,服务端是订单的增、、改、查的服务,注册中心可以采用Zookeeper也可采用Nacos,具体项目可以继续扩展,如加入订单服务、支付服务、商品服务、账号服务等相关服务集群。目前先模拟一个服务,然后再到多个服务,单条线路跑通再做周边的服务开发。 

image.png 

 

二、Dubbo分布式Order Service集群架构 

Dubbo模拟订单服务,有服务的订单就是服务端,需要host容器,可直接用自定义开发的控制台程序,需要在服务端定服务实现或服务接口,客户端要实现调度端或有代理对象。注意,还需要Zookeeper注册中心,可用内嵌的Zookeeper服务,也可独立部署Zookeeper服务。 

服务端的配置文件和客户端的配置文件要配置服务端配置文件主要是服务的端口地址以及需要用哪些服务类型。客户端配置文件主要是要调用服务,注册中心的位置使用什么协议关键参数 

image.png 

 

三、Dubbo订单服务集群调用实战 

模拟整个开发工作,API端是服务接口客户端是客户端程序,客户端程序通用API代理,后面会调用后端真正的服务,真正的服务托管在Provider是远程服务提供方,规范服务类型托管、运行、接受请求。 

如下图所示,Provider复制了4份,参考其中一个代码,是 main函数。 

image.png  

启动后有自己的主进程去加载Bean启动接受请求,会模拟起ZookeeperZookeeper是嵌入式模拟注册中心配置文件对应的是provider,看核心参数 

image.png 

要配置一下Zookeeper注册中心地址,使用的协议是Dubbo原生协议。然后配置服务,服务接口暴露给客户端使用。 

之前复制了4provider,后面多启动几个服务,主要用于模拟集群,比如订单服务要起330300台,是一对多的过程。同理自己的配置文件,因为在同一台机器上,配置不一样,端口要变 同一台机器上模拟各个不同端口。如下图所示,端口是“20893”: 

image.png 

模拟几台机器一个群,当这几台实例上线以后,都会Zookeeper进行注册,输入成功以后客户端进行调用客户端调用订单服务订单通过ID查询订单打印下返回字符串。具体项目可以通过JDBC等链接数据库。 

调度端里面是Dubbo的订单接口,模拟死循环,不断循环向客户端发请求 

image.png 

客户端代理对象是proxyproxy起客户端代理作用,获取配置文件 Beanba的配置信息,调取方法:通过创建对象调取订单接口,根据ID模拟调用情况返回结果。循环调用实际上只起了一个客户端,只不过每隔一秒调用一次 

image.png 

 

四、Dubbo订单服务集群 

模拟集群,调用服务端一台机器的效果,调用客户端,虽经过注册中心,但客户端经过注册中心调用后端。如下图所示,每隔一秒调后端,显示20890”: 

image.png 

说明这台服务器只有一台,再怎么轮询负载均衡都台机器。这时启动第二台服务器,逐步上线更多服务,如下图所示,有“20890”、“20891”,两台机器都被调用了。 

image.png 

再上线第三台,客户端本身加载最新服务列表有时间,这里会有延迟,涉及服务上线和客户端发现最新的服务列表的过程这个机制跟微服务架构很像。 

这里面第二台服务器已经出来,正常生产环境下,客户端和服务端通过注册中心解耦,可进行服务集群的灵活扩容,平时只有100台,但在双11的时候可以加到1000。体现了Duddo相比传统简单架构,往更高级别灵活性弹性集群架构进行升级扩展Duddo还有性能监控功能、生产环境的上线下线等功能在当年背景下,阿里能够做出这种框架,并且在生产环境下大规模验11验证非常牛 

分析整个Duddo架构,整个设计思想解决问题,比当前的微服架构协议更灵活、部署方式更灵活架构更原生。现在Spring Cloud在全球范围内使用更广生态文档更完善,但实际Duddo体系更单一,功能更丰富,性能更高Duddo的并发性一定比Spring Cloud高,Duddo以灵活的在局域网和公网之间协议切换 

现在Duddo结合阿里其他框架逐步做分布式大规模集群治理生态的完善工作,虽然有些已经开始对接Spring Cloud微服务,但并不是重点。严格来Spring Cloud体系里面的协议,只是Duddo的一种,Duddo后面会做的越来越好Duddo3.0版本在做的云原生、服务治理、安全与性能监控等模式支持都非常优秀 

相关文章
|
1月前
|
人工智能 安全 Java
分布式 Multi Agent 安全高可用探索与实践
在人工智能加速发展的今天,AI Agent 正在成为推动“人工智能+”战略落地的核心引擎。无论是技术趋势还是政策导向,都预示着一场深刻的变革正在发生。如果你也在探索 Agent 的应用场景,欢迎关注 AgentScope 项目,或尝试使用阿里云 MSE + Higress + Nacos 构建属于你的 AI 原生应用。一起,走进智能体的新世界。
479 40
|
1月前
|
关系型数据库 Apache 微服务
《聊聊分布式》分布式系统基石:深入理解CAP理论及其工程实践
CAP理论指出分布式系统中一致性、可用性、分区容错性三者不可兼得,必须根据业务需求进行权衡。实际应用中,不同场景选择不同策略:金融系统重一致(CP),社交应用重可用(AP),内网系统可选CA。现代架构更趋向动态调整与混合策略,灵活应对复杂需求。
|
3月前
|
数据采集 消息中间件 监控
单机与分布式:社交媒体热点采集的实践经验
在舆情监控与数据分析中,单机脚本适合小规模采集如微博热榜,而小红书等大规模、高时效性需求则需分布式架构。通过Redis队列、代理IP与多节点协作,可提升采集效率与稳定性,适应数据规模与变化速度。架构选择应根据实际需求,兼顾扩展性与维护成本。
112 2
|
6月前
|
人工智能 安全 应用服务中间件
阿里巴巴 MCP 分布式落地实践:快速转换 HSF 到 MCP server
本文分享了阿里巴巴内部将大规模HSF服务快速转换为MCP Server的实践经验,通过Higress网关实现MCP协议卸载,无需修改代码即可接入MCP生态。文章分析了MCP生态面临的挑战,如协议快速迭代和SDK不稳定性,并详细介绍了操作步骤及组件功能。强调MCP虽非终极解决方案,但作为AI业务工程化的起点具有重要意义。最后总结指出,MCP只是AI原生应用发展的第一步,未来还有更多可能性值得探索。
1172 48
|
2月前
|
消息中间件 缓存 监控
中间件架构设计与实践:构建高性能分布式系统的核心基石
摘要 本文系统探讨了中间件技术及其在分布式系统中的核心价值。作者首先定义了中间件作为连接系统组件的"神经网络",强调其在数据传输、系统稳定性和扩展性中的关键作用。随后详细分类了中间件体系,包括通信中间件(如RabbitMQ/Kafka)、数据中间件(如Redis/MyCAT)等类型。文章重点剖析了消息中间件的实现机制,通过Spring Boot代码示例展示了消息生产者的完整实现,涵盖消息ID生成、持久化、批量发送及重试机制等关键技术点。最后,作者指出中间件架构设计对系统性能的决定性影响,
|
6月前
|
监控 Linux 应用服务中间件
Linux多节点多硬盘部署MinIO:分布式MinIO集群部署指南搭建高可用架构实践
通过以上步骤,已成功基于已有的 MinIO 服务,扩展为一个 MinIO 集群。该集群具有高可用性和容错性,适合生产环境使用。如果有任何问题,请检查日志或参考MinIO 官方文档。作者联系方式vx:2743642415。
2203 57
|
6月前
|
安全 JavaScript 前端开发
HarmonyOS NEXT~HarmonyOS 语言仓颉:下一代分布式开发语言的技术解析与应用实践
HarmonyOS语言仓颉是华为专为HarmonyOS生态系统设计的新型编程语言,旨在解决分布式环境下的开发挑战。它以“编码创造”为理念,具备分布式原生、高性能与高效率、安全可靠三大核心特性。仓颉语言通过内置分布式能力简化跨设备开发,提供统一的编程模型和开发体验。文章从语言基础、关键特性、开发实践及未来展望四个方面剖析其技术优势,助力开发者掌握这一新兴工具,构建全场景分布式应用。
689 35
|
7月前
|
存储 负载均衡 测试技术
ACK Gateway with Inference Extension:优化多机分布式大模型推理服务实践
本文介绍了如何利用阿里云容器服务ACK推出的ACK Gateway with Inference Extension组件,在Kubernetes环境中为多机分布式部署的LLM推理服务提供智能路由和负载均衡能力。文章以部署和优化QwQ-32B模型为例,详细展示了从环境准备到性能测试的完整实践过程。
|
8月前
|
并行计算 PyTorch 算法框架/工具
融合AMD与NVIDIA GPU集群的MLOps:异构计算环境中的分布式训练架构实践
本文探讨了如何通过技术手段混合使用AMD与NVIDIA GPU集群以支持PyTorch分布式训练。面对CUDA与ROCm框架互操作性不足的问题,文章提出利用UCC和UCX等统一通信框架实现高效数据传输,并在异构Kubernetes集群中部署任务。通过解决轻度与强度异构环境下的挑战,如计算能力不平衡、内存容量差异及通信性能优化,文章展示了如何无需重构代码即可充分利用异构硬件资源。尽管存在RDMA验证不足、通信性能次优等局限性,但该方案为最大化GPU资源利用率、降低供应商锁定提供了可行路径。源代码已公开,供读者参考实践。
718 3
融合AMD与NVIDIA GPU集群的MLOps:异构计算环境中的分布式训练架构实践
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2