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

    2.6.5 RabbitMQ -- 业务场景详解

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

    异步处理

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

    串行方式

    _userRepo.Add(user);
    _emailService.Send(user);
    _smsService.Send(user);
    

    并行方式

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

    异步方式

    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 的重要原因

    知识共享许可协议

    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

    欢迎转载、使用、重新发布,但务必保留文章署名 郑子铭 (包含链接: http://www.cnblogs.com/MingsonZheng/ ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。

    如有任何疑问,请与我联系 (MingsonZheng@outlook.com) 。

  • 相关阅读:
    线程&进程
    C#入门基础
    .Net GC垃圾收集机制(下)
    .Net GC垃圾收集机制(上)
    GAC的理解及其作用
    C# DES加密,KEY和IV不同设置的写法
    常见加密算法简析
    密码学
    数字签名是什么?(数字证书)
    加密算法和MD5等散列算法的区别
  • 原文地址:https://www.cnblogs.com/MingsonZheng/p/14264537.html
Copyright © 2011-2022 走看看