带你读《Apache Dubbo微服务开发从入门到精通》—— 六、 业务场景示例

简介: 带你读《Apache Dubbo微服务开发从入门到精通》—— 六、 业务场景示例

六、 业务场景示例

 

跟随以上讲解的Dubbo流量治理体系,我们可以实现诸如以下流量管控能力:

 

动态调整服务调用的超时时间

动态调整服务失败后的重试次数

动态的开启或关闭访问日志

保证同区域内部署的服务被优先

线上灰度发布隔离环境

隔离多套测试环境

基于参数值的请求路由

基于权重的按比例路由

金丝雀发布

A/B 测试

服务降级

将流量导流到某台固定的机器,方便问题排查等

 

1. 官网流量管控任务简介

 

Dubbo官网提供了一个功能完善的流量管控任务,示例任务基于一个简单的线上商城微服务系统演示了以上提到的几乎所有Dubbo的流量管控能力。建议读者前往Dubbo官网文档查看细节,以下是任务的大概介绍。

 

线上商城的架构图如下:

 

image.png

 

系统由5个微服务应用组成:

 

Frontend商城主页,作为与用户交互的web界面,通过调用User、Detail、Order等提供用户登录、商品展示和订单管理等服务。

 

User用户服务,负责用户数据管理、身份校验等。

 

Order订单服务,提供订订单创建、订单查询等服务,依赖Detail服务校验商品库存等信息。

 

Detail商品详情服务,展示商品详情信息,调用Comment服务展示用户对商品的评论记录。

 

Comment评论服务,管理用户对商品的评论数据。

 

2. 部署商场系统

 

为方便起见,Dubbo选择将整个系统部署在Kubernetes集群,执行以下命令即可完成商城项目部署,项目源码示例在dubbo-samples/task

 

image.png

 

完整的部署架构图如下:

 

image.png

 

Order订单服务有两个版本v1和v2v2是订单服务优化后发布的新版本。

 

版本v1只是简单的创建订单,不展示订单详情

版本v2在订单创建成功后会展示订单的收货地址详情

 

Detail和Comment服务也分别有两个版本v1和v2,我们通过多个版本来演示流量导流后的效果。

 

版本v1默认为所有请求提供服务

版本v2模拟被部署在特定的区域的服务,因此v2实例会带有特定的标签

相关文章
|
Apache 数据库
杨校老师课堂之基于Apache的数据库连接池DBCP的工具类开发
杨校老师课堂之基于Apache的数据库连接池DBCP的工具类开发
118 0
|
Dubbo 应用服务中间件 Apache
Dubbo 应用切换 ZooKeeper 注册中心实例,流量无损迁移
如果 Dubbo 应用使用 ZooKeeper 作为注册中心,现在需要切换到新的 ZooKeeper 实例,如何做到流量无损?
193 4
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
当今社会,物联网技术的发展带来了许多繁琐的挑战,尤其是在数据库管理系统领域,比如实时整合海量数据、处理流中的事件以及处理数据的安全性。例如,应用于智能城市的基于物联网的交通传感器可以实时生成大量的交通数据。据估计,未来5年,物联网设备的数量将达数万亿。物联网产生大量的数据,包括流数据、时间序列数据、RFID数据、传感数据等。要有效地管理这些数据,就需要使用数据库。数据库在充分处理物联网数据方面扮演着非常重要的角色。因此,适当的数据库与适当的平台同等重要。由于物联网在世界上不同的环境中运行,选择合适的数据库变得非常重要。 原创文字,IoTDB 社区可进行使用与传播 一、什么是IoTDB 我
531 9
Apache IoTDB进行IoT相关开发实践
|
Cloud Native Dubbo 应用服务中间件
Apache Dubbo 下一代云原生微服务挑战赛启动报名!五大赛题 50 万奖金池
Apache Dubbo 下一代云原生微服务挑战赛启动报名!五大赛题 50 万奖金池
307 70
|
Dubbo 应用服务中间件 Apache
恭喜 Apache Dubbo 和 Nacos 荣获开放原子“2023年度生态开源项目”
恭喜 Apache Dubbo 和 Nacos 荣获开放原子“2023年度生态开源项目”
308 83
|
Java 持续交付 项目管理
Maven是一款基于Apache许可的项目管理和构建自动化工具,在Java开发中极为流行。
Maven是一款基于Apache许可的项目管理和构建自动化工具,在Java开发中极为流行。它采用项目对象模型(POM)来描述项目,简化构建流程。Maven提供依赖管理、标准构建生命周期、插件扩展等功能,支持多模块项目及版本控制。在Java Web开发中,Maven能够自动生成项目结构、管理依赖、自动化构建流程并运行多种插件任务,如代码质量检查和单元测试。遵循Maven的最佳实践,结合持续集成工具,可以显著提升开发效率和项目质量。
197 1
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
IoTDB是专为物联网(IoT)设计的开源时间序列数据库,提供数据收集、存储、管理和分析。它支持高效的数据写入、查询,适用于处理大规模物联网数据,包括流数据、时间序列等。IoTDB采用轻量级架构,可与Hadoop和Spark集成,支持多种存储策略,确保数据安全和高可用性。此外,它还具有InfluxDB协议适配器,允许无缝迁移和兼容InfluxDB的API和查询语法,简化物联网项目的数据管理。随着物联网设备数量的快速增长,选择适合的数据库如IoTDB对于数据管理和分析至关重要。
679 12
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
The article introduces IoTDB, an open-source time-series database designed for efficient management of IoT-generated data. It addresses challenges like real-time integration of massive datasets and security. IoTDB supports high-performance storage,
457 0
Apache IoTDB进行IoT相关开发实践
|
Apache 开发者 Java
Apache Wicket揭秘:如何巧妙利用模型与表单机制,实现Web应用高效开发?
【8月更文挑战第31天】本文深入探讨了Apache Wicket的模型与表单处理机制。Wicket作为一个组件化的Java Web框架,提供了多种模型实现,如CompoundPropertyModel等,充当组件与数据间的桥梁。文章通过示例介绍了模型创建及使用方法,并详细讲解了表单组件、提交处理及验证机制,帮助开发者更好地理解如何利用Wicket构建高效、易维护的Web应用程序。
265 0
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
IoTDB是面向物联网的时序数据库,专注于时间序列数据管理,提供高效的数据处理、集成Hadoop和Spark生态、支持多目录存储策略。它还具有InfluxDB协议适配器,允许无缝迁移原本使用InfluxDB的业务。文章讨论了IoTDB的体系结构,包括数据文件、系统文件和预写日志文件的存储策略,并介绍了如何配置数据存储目录。此外,还提及了InfluxDB版本和查询语法的支持情况。IoTDB在物联网数据管理和分析中扮演关键角色,尤其适合处理大规模实时数据。
343 5

推荐镜像

更多