美文网首页
消息中间件产生背景

消息中间件产生背景

作者: 善思者_tin | 来源:发表于2019-12-25 22:02 被阅读0次

一、传统的请求响应

请求响应同步:之前大家理解了线程同步(所有的线程不是一起进入到方法中执行,而是按照顺序一个一个进来),今天要讲解的是请求响应同步,在这可以理解为同一个步骤,不另起炉灶。意思是当客户端和服务端进行通信时,客户端发送了请求,必须等到服务端所有的操作都做完,才返回给用户。(举例),这个过程就是请求响应同步的过程。

基于以上过程,我们会发现,如果服务端某一个流程出了问题,客户端很久就不会收到响应,一直处于请求状态。这样在用户看来,感觉程序卡死了一样,会极大的影响用户的体验感。

请求响应异步:首先要和线程异步区分下,线程异步是多个线程可以同时去访问某一资源。然而,请求响应异步是相当于给程序开几条路,各个路线互不影响。这样好处就很明显了,当客户端发送一个请求,不需要等待即可发送下一个请求,至于响应情况客户端不用管,它只需要请求就对了。

二、请求响应可能产生的问题?

阻塞和超时:以上已说明

接口重复提交

数据的幂等性问题

二、如何做到请求响应异步?

消息队列(缓存机制):要做到请求响应异步,可以利用缓存机制,将某一操作请求数据实时的保存到消息队列中,然后立即相应到客户端。至于消息队列里面的处理可以慢慢来做。

备注   

    请求数据:登录成功后需要将用户登录信息(userId,userName,userPhone......)写入到数据库登录日志表,那么用户的相关信息就是请求数据。

    某一操作:不影响主业务流程的操作。比如用户登录包括登录成功状态和登录成功日志写入,那么登录成功后日志写入就是不影响主业务流程的操作,可以进行异步处理。

三、什么是消息中间件?

中间件:提到中间件,就想到中间人,他的作用是起到中介的作用。例如二手房中介链家,它的作用是联系房东与买房人的。

而软件系统中对应的中间件是帮助应用程序与其他应用程序、网络、硬件、操作系统交互或通信的软件。日常用的Redis、Nginx、Zookeeper、Memcached等等都是「中间件」。

消息中间件:个人理解为和消息有关的中间件。比如kafka ,activeMQ,Redis(也可以作为消息中间件)。

大家可以发留言讨论,redis作为消息中间件的应用场景。

相关文章

  • 消息中间件产生背景

    一、传统的请求响应 请求响应同步:之前大家理解了线程同步(所有的线程不是一起进入到方法中执行,而是按照顺序一个一个...

  • Rabbitmq概念及HelloWorld

    相关概念: Producer:消息产生者 Consumer: 消息消费者 Broker:消息中间件的服务节点,对于...

  • Kafka 入门

    消息中间件基本架构 消息中间件基本上可以分为三部分: Product 生产者,消息的产生方,生产者会将消息发送到消...

  • Kafka 架构设计

    Kafka 总体架构 kafka的总体架构还是遵循消息中间件的架构,即产生消息->存储消息->消费消息。 Kafk...

  • 15.python消息中间件-背景知识

    背景知识 分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦。消息中间件这块在我们前面的学习中...

  • Flink 嵌套json 解析成Table

    背景 JSON作为常用的数据格式,在消息中间件中用json做为消息格式也很常见。在flink table中消息可以...

  • RabbitMQ,消息中间件基础当中的AMQP协议

    知识要点: 什么是消息中间件 消息中间件的作用 消息中间件历史 JMS规范 AMQP协议 消息队列中间件(Mess...

  • 消息中间件元基础与原理解释,微服务系统你要懂得的JMS,AMQP

    消息中间件基础 知识要点: 什么是消息中间件 消息中间件的作用 消息中间件历史 JMS规范 AMQP协议 Rabb...

  • 发现kafka丢消息后的排查

    背景: 最近在用kafka做消息中间件,producer从hive中读取消息发送到kafka,后端storm...

  • 消息中间件介绍

    文章大纲 一、什么是消息中间件二、消息中间件组成三、消息队列的的传输模式四、消息中间件的优势五、消息中间件应用场景...

网友评论

      本文标题:消息中间件产生背景

      本文链接:https://www.haomeiwen.com/subject/glhhoctx.html