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

简介: Dubbo 分布式服务治理实践课时5—Dubbo集成Nacos注册中心实战。电子书+视频为同学带来最佳学习效果,文字、课程链接、图谱地址统统为大家放送了哦!

哈喽各位同学们大家好呀,小编今天带着开发者学院中课程Dubbo集成Nacos注册中心实战”干货总结来了~这是Dubbo 分布式服务治理实践最后一篇哦,一起学习新课程吧!

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

课程名称:Dubbo集成Nacos注册中心实战 

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

图谱名称:Alibaba Java 技术图谱

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


Dubbo集成Nacos注册中心实战


这节课讲的是Dubbo集成Nacos注册中心实战Nacos当前在微服务领域非常有名,不仅仅支持Spring Cloud,而且支持Dubbo服务集群,当然也支持GO语言等客户端进行集成,是非常优秀的注册中心架。另外Nacos还可以做配置服务,对携程开源的阿波罗注册中心,大规模集服务集群配置向外迁移的时候可以使用Spring CloudNacos等服务。 

一、Dubbo集成Nacos注册中心 

(一)Nacos注册中心 

Nacos是阿里巴巴开源的新一代分布式服务注册和查找架构提供配置和管理微服务,构建以“服务”为中心的现代应用架构等等,功能非常强大,总结如下: 

1. Nacos微服务动态服务发现、配置管理和服务管理工具平台。 

2. Nacos 致力于帮助发现、配置和管理微服务。 

3. Nacos 帮助更敏捷和容易地构建、交付和管理微服务平台。Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。 

4. Nacos支持几乎所有主流的“服务”的发现、配置和管理 

5. Kubernetes Service 

6. gRPC & Dubbo RPC Service 

7. Spring Cloud RESTful Service 

8. https://nacos.io 

image.png 

 

(二)Dubbo集成Nacos注册中心 

Dubbo Nacos进行集成,很重要的一点是,Dubbo作为分布式服务治理框架,可以写服务接口,Dubbo本身与Nacos并没有交集,Nacos起到注册中心和配置中心的作用,但是有统一标准的通信协议。提交数据做集成时,Nacos专门为Dubbo开发Nacos客户端,集成时依赖Nacos客户端,然后配置一下,向注册中心提交数据。Nacos 作为 Dubbo 生态系统中重要的注册中心实现,其中 dubbo-registry-nacos 则是 Dubbo 融合 Nacos 注册中心的实现。 

 

(三)Dubbo分布式架构 

回顾Dubbo分布式架构架构最简单的架构就是调用端服务端注册中心,向外扩展功能,如注册中心,应用监控、大规模服务集群的负载均衡。这是Dubbo比较牛逼的地方。因为在Spring Cloud大规模流行之前,实际Dubbo已经实现解决了这些问题,Dubbo本身也是一个生态,多功能并没有在自己的范围内解决。阿里开源其他框架帮助协调解决大规模服务集群的治理工作 

image.png 

 

二、Dubbo集成Nacos注册中心实战 

(一)Dubbo集成Nacos实战步骤 

Dubbo集成Nacos实战的关键步骤,首页构造一个Dubbo服务,给Dubbo配置Nacos客户端依赖,再配置Nacos注册中心的地址,还需要提前启动Nacos注册中心的服务,然后Dubbo服务才可以在Nacos注册中心里面进行注册。推荐使用 Dubbo 2.6.5以上的版本,不建议再用之前的版本,涉及Nacos客户端依赖,一般使用1.2.0以上版本,最新是1.4.0,太旧的版本不推荐用,容易遇到兼容性等问题。步骤总结如下: 

 启动Nacos注册中心 

 Dubbo改造加入dubbo-registry-nacos 依赖 

 dubbo-registry-nacos 的 Maven 依赖pom.xml 文件中 

 推荐您使用 Dubbo 2.6.5+ 

Dubbo的pom.xml 文件 

image.png 

(二)Nacos监控Dubbo服务 

上线完成以后,Nacos自带web的界面可以打开看一下整个服务列表,还有配置管理等一系列复杂的功能启动服务注册里面有详情的详情、删除等操作功能,可以进行更详细的管理工作。 

image.png 

 

(三)实例演示: 

官方参考资料http://dubbo.apache.org/官方的例子比较复杂,需要很多依赖包,这里演示一个简单例子 

首先构建一个Dubbo服务Dubbo服务没有分包,直接放在根目录下面,有接口实现放在同一个目录下面,就是一个sayHello。传一个字符串,就返回一个字符串,基本上有一个实现类型。 

image.png 

 

这里面基于是SringBoot,做了一个 Dubbo的服务端,Dubbo3.0之后在进化,支持Spring Cloud微服务架构体系,可以提供REST API,也可以做原生,比较灵活。 

注意看一下配置文件,两个关键点,一个是Dubbo的起步依赖,选的是2.7.8,一个是Nacos选的是1.2.1 

image.png 

配置文件,首先要配置自己的名字,这里是“dubbo-provider-demo”,还有指定扫描的包,这里是叫“com.alibaba,下面是nacos的一个例“nacos://127.0.0.0:8848”。 

image.png 

 

这时需要提前启动nacos下载完成以后有一个解压包,可以直接启动。注意是单点模式启动,直接双击,有一个脚本,我们在windows上直接启动就ok看一下窗口界面一个地址,这个地址是启动完成以后会有一个管理界面,第一次登录需要输入用户密码 

image.png 

 

把这个地址粘贴到网页,转到Nacos管理界面,现在看服务列表,里面还没有服务,因为服务还没有上线。 

image.png 

现在可以启动服务端,客户端到服务端需要连注册中心找到服务端进行调用。涉及包依赖,主要是如下两个依赖: 

image.png 

造成REST API作为调用的控制器出口,这里可以传一个字符串,然后让后台通过服务代理来调,里面的接口实现一模一样如果在同一个工程里面,可以依赖同一个包,可以把Controller拆出来。这里基本没变,还是SringBoot 程序 

image.png 

 

下面是“Dubbo-client-democlient的意思是消费者,意思就是调用客户端的评论或支付信息。 

image.png 

 

这样一个过程,就是一次调用,也可以称为是一次命令“Order”,在商系统里面Order被翻译成订单。模拟 Java架构中服务端向注册中心注册一个端口,注意端口不能重复,过程中不能出现错误。完成后刷新一下,Nacos界面服务列表中已经显示出来我们的“com.alibaba服务,说明服务端的服务已经上线。 

image.png 

 

点打看一下详情,可以看到用到的方法、release服务相关的描述信息,使用非常方便。 

image.png 

 

点击服务列表界面的“示例代码”,会告诉你如果通过其他服务做请求,代码应该怎么写,还有微服务架构怎么集成,这是Nacos非常优秀的地方。 

image.png 

 

接下来上线客户端启动客户端来模拟服务调用,上个字符串严格来说是一个代理。这里叫做“proxy”,实际是服务端的接口,客户端通过proxy接口生成一个变量创建实例,严格的说是创建一个代理对象,用于调取后台的远程服务接口。 

image.png 

 

模拟启动客户端,传入字符串,调用接口,到Nacos服务界面刷新,可以看到服务列表里多出一条“consumers”服务,属于调用端。 

image.png 

端口是9001”,地址sayHello然后通过Dubbo传送,返回结果正常,换成Java,返回结果也是正常的。正常情况下,字符串是从服务端返回来的,客户端通过代理对象调用远程服务,获取信息。这是典型的RPC架构,用Nacos注册中心,非常容易就可以实现。 

image.png 

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