[转载] 基于Redis实现分布式消息队列

转载来自:https://www.cnblogs.com/scott19820130/p/4810379.html

1、为什么需要消息队列?
  当系统中出现“生产“和“消费“的速度或稳定性等因素不一致的时候,就需要消息队列,作为抽象层,弥合双方的差异。
2、使用消息队列有什么好处?
  2.1、提高系统响应速度
    使用了消息队列,生产者一方,把消息往队列里一扔,就可以立马返回,响应用户了。无需等待处理结果。

    处理结果可以让用户稍后自己来取,如医院取化验单。也可以让生产者订阅(如:留下手机号码或让生产者实现listener接口、加入监听队列),有结果了通知。获得约定将结果放在某处,无需通知。

  2.2、提高系统稳定性
    考虑电商系统下订单,发送数据给生产系统的情况。
    电商系统和生产系统之间的网络有可能掉线,生产系统可能会因维护等原因暂停服务。

    如果不使用消息队列,电商系统数据发布出去,顾客无法下单,影响业务开展。
    两个系统间不应该如此紧密耦合。应该通过消息队列解耦。同时让系统更健壮、稳定。
3、为什么需要分布式?
  3.1、多系统协作需要分布式
  消息队列中的数据需要在多个系统间共享数据才能发挥价值。
  所以必须提供分布式通信机制、协同机制。

3.2、单系统内部署环境需要分布式
  单系统内部,为了更好的性能、为了避免单点故障,多为集群环境。
  集群环境中,应用运行在多台服务器的多个JVM中;数据也保存在各种类型的数据库或非数据库的多个节点上。
  为了满足多节点协作需要,需要提供分布式的解决方案。
4、分布式环境下需要解决哪些问题
  4.1、并发问题
    需进行良好的并发控制。确保“线程安全“。

    不要出现一个订单被出货两次。不要出现顾客A下的单,发货发给了顾客B等情况。

  4.2、简单的、统一的操作机制
    需定义简单的,语义明确的,业务无关的,恰当稳妥的统一的访问方式。

  4.3、容错
    控制好单点故障,确保数据安全。

  4.4、可横向扩展
    可便捷扩容。

Ubuntu 14.04下Redis安装及简单测试 http://www.linuxidc.com/Linux/2014-05/101544.htm

Redis集群明细文档 http://www.linuxidc.com/Linux/2013-09/90118.htm

Ubuntu 12.10下安装Redis(图文详解)+ Jedis连接Redis http://www.linuxidc.com/Linux/2013-06/85816.htm

Redis系列-安装部署维护篇 http://www.linuxidc.com/Linux/2012-12/75627.htm

CentOS 6.3安装Redis http://www.linuxidc.com/Linux/2012-12/75314.htm

Redis安装部署学习笔记 http://www.linuxidc.com/Linux/2014-07/104306.htm

Redis配置文件redis.conf 详解 http://www.linuxidc.com/Linux/2013-11/92524.htm

 

posted @ 2020-06-23 14:54  飞龙在生  阅读(441)  评论(0编辑  收藏  举报