CI/CD-微服务-Dubbo
为解决单体应用因规模扩大而导致的开发效率低、部署困难等问题,微服务架构应运而生。
微服务、Dubbo介绍:
- 分布式:把多台功能不同的主机通过网络连接形成的一个系统(互相协作)
- 微服务架构正是分布式系统的一种重要实践形式
- 微服务架构正是分布式系统的一种重要实践形式
- 集群:把多台功能相同的主机通过网络连接形成的一个系统(可替换使用)
| 微服务 |
一种将大型应用拆分成一组小型、独立服务的软件架构风格。 每个服务都专注于一个特定的业务功能,比如“用户管理”、“订单处理”或“商品推荐”。 |
|
| Dubbo |
一个高性能、轻量级的开源Java RPC(远程过程调用)框架, 由阿里巴巴开发并贡献给Apache基金会,是解决微服务间通信和治理问题的利器。 (适合高并发、低延迟的核心交易系统。) |
与微服务关系: 用微服务的理念把系统拆成了很多小块, Dubbo就是帮助这些小块高效、可靠地互相“打电话”沟通的工具, 并且能帮你管理好这些“电话本”(服务发现)和“通话策略”(负载均衡)。 |
| Spring Cloud |
依托Spring Boot生态,提供了一套完整的、开箱即用的微服务解决方案, 通信基于HTTP,通用性好,但性能上弱于Dubbo。 (适合需要快速搭建完整微服务体系的团队。) |
Dubbo核心流程

- 服务容器启动
- 由Dubbo 的
ServiceConfig对象加载和解析 XML/注解配置 - 完成配置后,Provider会启动并暴露服务(打开端口监听,准备好接收请求)
- 由Dubbo 的
- 服务注册与发现
- Provider向注册中心注册自己提供的服务;
- Consumer向注册中心订阅需要的服务;
- 注册中心将Provider地址列表返回给Consumer,Consumer缓存地址列表(注册中心不可用时也能通过本地缓存地址调用)。
- 负载均衡
- 由Dubbo 的
LoadBalance组件实现,默认提供了加权随机、轮询、最少活跃调用数等多种策略; - Consumer基于负载均衡机制,选出一台发起调用。
- 由Dubbo 的
- 远程调用
- 执行过程:客户端通过Netty等高性能网络框架发起请求,服务端接受处理请求,最终找到目标实现类(如
UserServiceImpl)的方法并调用,结果再原路返回; - 超时:Consumer发起调用时,如果指定时间内未收到响应,会触发超时。接着,Dubbo 会根据配置的重试次数,向另一台 Provider 重新发起请求;
- 监控中心:异步记录每次调用的成功/失败、耗时、并发数等统计信息。
- 执行过程:客户端通过Netty等高性能网络框架发起请求,服务端接受处理请求,最终找到目标实现类(如
本文来自博客园,作者:FengweiTech,转载请注明原文链接:https://www.cnblogs.com/fengwei-blogs/p/20769862

浙公网安备 33010602011771号