《大型网站系统与Java中间件实践》 读后感

第一次接触到的异步场景是:日志记录、重试机制和预警机制
其中使用到了消息队列的概念, 主要是利用redis的list结构在业务操作后LPush至相应的key中,另外配备一个windows service线程专门RPop出来,并按照处理策略的配置来进行处理;如:重试多少次,重试间隔多久或者发送邮件还是短信通知;

在未读本书前一直以为异步场景都是直接使用消息存储来完成就可以,读完才发觉其实这样的实现方式简单粗暴,但还是比较脆弱的;如:1) 生产者和消费者直接面向消息存储,所以他们都必须完全清楚路由规则、数据结构,存储的扩容将导致所有端的修改 2) 没法确认消息接收和投递的成功 3) 不管消息处理的成功与否,消息都将被pop掉 4) 消息的消费为拉模式,没有重发机制,可能会漏消息

这种方式简单粗暴,但是可靠性是较低的,在时间紧迫且是上述 可容忍消息丢失的场景下才合适;如果是应用间的异步和解耦,还是需要消息中间件这样子消息管理角色来确保消息的可靠性。

所以嘛,要多看案例、多看书、多研究下开源分布式的组件,不然会以为自己看过的那一粒沙子就是整个沙滩的模样。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,179评论 19 139
  • 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能...
    Sophie12138阅读 4,023评论 0 7
  • 关键词记录 请求数据包小,返回数据大 ,差别不大 请求数据包大,返回数据小,差别大 代理 ----》热备 服务自治...
    snail_knight阅读 5,065评论 0 3
  • 消息队列设计精要 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终...
    meng_philip123阅读 5,393评论 1 25
  • 先讲一个故事吧 朋友小H,和她的男朋友,暂且称为小T吧,从高二开始恋爱,在小H的眼中,小T是无可挑剔的,从长相到性...
    无畏的想象力阅读 4,673评论 0 0

友情链接更多精彩内容