前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >.NET 云原生架构师训练营(模块二 基础巩固 RabbitMQ 业务场景详解)--学习笔记

.NET 云原生架构师训练营(模块二 基础巩固 RabbitMQ 业务场景详解)--学习笔记

原创
作者头像
郑子铭
修改2021-01-12 10:18:27
2970
修改2021-01-12 10:18:27
举报

2.6.5 RabbitMQ -- 业务场景详解

  • 异步处理
  • 应用解耦
  • 流量削锋
  • 日志处理

异步处理

  • 串行方式
  • 并行方式
  • 异步方式

串行方式

代码语言:javascript
复制
_userRepo.Add(user);
_emailService.Send(user);
_smsService.Send(user);

并行方式

代码语言:javascript
复制
_userRepo.Add(user);

var emailTask = _emailService.Send(user);
var smsTask = _smsService.Send(user);
await Task.WhenAll(emailTask, smsTask)

异步方式

代码语言:javascript
复制
var user = await _userRepo.Add(user);

_eventBus.publish(new UserRegisteredEvent(){ userId = user.Id })

return user;

应用解耦

订单系统 调用 库存系统

改为

订单系统 写入 消息队列

库存系统 订阅 消息队列

实现解耦

流量削锋

用户的请求,服务器接收后,首先写入消息队列。假如消息队列的长度超过最大数量,则直接抛弃用户请求或跳转到错误页面

秒杀业务根据消息队列中的请求信息,再做后续处理

日志处理

kafka:接收用户日志的消息队列

Logstash:日志解析,统一成 JSON 输出给 Elasticsearch

Elasticsearch:实时日志分析服务的核心技术,一个 schemaless,实时 的数据存储服务,通过 index 组织数据,兼具强大的搜索和统计功能

Kibana:基于 Elasticsearch 的数据可视化组件,超强的数据可视化能力是众多公司选择 ELK stack 的重要原因

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2.6.5 RabbitMQ -- 业务场景详解
    • 异步处理
      • 串行方式
      • 并行方式
      • 异步方式
    • 应用解耦
      • 流量削锋
        • 日志处理
        相关产品与服务
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
        http://www.vxiaotou.com