当前位置: 首页 > wzjs >正文

网站建设免费代理龙岗网站制作

网站建设免费代理,龙岗网站制作,做贸易注册网站用自己名字,新乡网络公司推荐1.Simple(简单模式) P是生产者,C是消费者,Queue是消息队列。 生产者将消息放到Queue中,消费者来消费 特点:只有一个生产者和一个消费者,一个信息只能被消费一次。 适应场景:消息只…

1.Simple(简单模式)

P是生产者,C是消费者,Queue是消息队列。

生产者将消息放到Queue中,消费者来消费

特点:只有一个生产者和一个消费者,一个信息只能被消费一次。

适应场景:消息只能被单个消费者处理。

2 Work Queue(工作队列)

 P仍然代表生产者,C1和C2都是消费者

这种模式只有一个生产者,消费者可以有多个。当产生多条消息的时候,Work Queue会将消息分配给不同的 消费者,每个消费者收到的消息都不同。

特点:消息不会重复,会分配给不同的消费者。

适用场景:集群环境中做异步处理。

 2.Publish/Subscribe(发布/订阅)

这个比上面两种模式多了一个x,x就是交换机,也就是Exchange。

交换机起到路由作用。生产者生产的信息发送到交换机,交换机通过一定规则路由到一个或者多个消息队列中。

RabbitMQ交换机有四种类型: fanout,direct, topic, headers
1. Fanout:广播,将消息交给所有绑定到交换机的队列(Publish/Subscribe模式)
2. Direct:定向,把消息交给符合指定routing key的队列(Routing模式)
3. Topic:通配符,把消息交给符合routing pattern(路由模式)的队列(Topics模式)
4. headers类型的交换器不依赖于路由键的匹配规则来路由消息, 而是根据发送的消息内容中的
headers属性进行匹配. headers类型的交换器性能会很差,而且也不实用,基本上不会看到它的存在. 

RoutingKey: 路由键.生产者将消息发给交换器时, 指定的一个字符串, 用来告诉交换机应该如何处理这个消息. 
Binding Key:绑定. RabbitMQ中通过Binding(绑定)将交换器与队列关联起来, 在绑定的时候一般会指定一个Binding Key, 这样RabbitMQ就知道如何正确地将消息路由到队列了.

 

 

这两个图就很好解释了 RoutingKey,BindingKey的作用.
当消息的Routing key与队列绑定的Bindingkey相匹配时,消息才会被路由到这个队列.

上面这种模式,生产者生产一个消息,发给交换机,交换机复制多分,发给消息队列,每个消息队列消息相同。

适应场景:消息需要被多个消费者同时接收,如实时通知,广播。

4.Routing(路由模式)

Routing 模式是发布订阅模式的变种,加了key,作用就是过滤,就是根据Routing Key来进行筛选,将筛选后的消息发给对应的消息队列。

适合场景: 需要根据特定规则分发消息的场景.

看下图

 

5.Topics(通配符模式) 

路由模式的升级版, 在routingKey的基础上,增加了通配符的功能, 使之更加灵活.

Topics和Routing的基本原理相同,即:生产者将消息发给交换机,交换机根据RoutingKey将消息转发给与RoutingKey匹配的队列. 类似于正则表达式的方式来定义Routingkey的模式.

不同之处是:routingKey的匹配方式不同,Routing模式是相等匹配,topics模式是通配符匹配.
适合场景: 需要灵活匹配和过滤消息的场景

6.RPC(RPC通信) 

在RPC通信的过程中, 没有生产者和消费者, 比较像RPC远程调用, 大概就是通过两个队列实现了一个可回调的过程.

1. 客户端发送消息到一个指定的队列, 并在消息属性中设置replyTo字段, 这个字段指定了一个回调队列, 用于接收服务端的响应.
2. 服务端接收到请求后, 处理请求并发送响应消息到replyTo指定的回调队列
3. 客户端在回调队列上等待响应消息. 一旦收到响应,客户端会检查消息的correlationId属性,以
确保它是所期望的响应. 

7.Publisher Confirms(发布确认)

Publisher Confirms模式是RabbitMQ提供的一种确保消息可靠发送到RabbitMQ服务器的机制。在这种模式下,生产者可以等待RabbitMQ服务器的确认,以确保消息已经被服务器接收并处理.

1. 生产者将Channel设置为confirm模式(通过调用channel.confirmSelect()完成)后, 发布的每一条消
息都会获得一个唯一的ID, 生产者可以将这些序列号与消息关联起来,以便跟踪消息的状态.
2. 当消息被RabbitMQ服务器接收并处理后,服务器会异步地向生产者发送一个确认(ACK)给生产者(包含消息的唯一ID),表明消息已经送达. 

通过Publisher Confirms模式,生产者可以确保消息被RabbitMQ服务器成功接收, 从而避免消息丢失的问题.

适用场景: 对数据安全性要求较高的场景. 比如金融交易, 订单处理.

过程就和下图差不多

上面这7中模式并非哪种就是最优的,要根据业务场景进行选择,举个例子如果要求安全性高,就可以使用Publisher Confirms(发布确认)。

http://www.dtcms.com/wzjs/420678.html

相关文章:

  • 苏州松陵镇哪里做网站郑州seo代理商
  • 天津中小企业网站制作长春网站推广公司
  • 住房和城乡建设部网站建筑电工淘宝客seo推广教程
  • 外贸英文网站建设价格专业技能培训机构
  • 一个网站如何赚钱西安建站推广
  • nginx wordpress 重写济南seo优化外包
  • 网站建设是基础服务吗各种手艺培训班
  • 农产品信息网站的建设营销型网站建设企业
  • 做彩页素材的网站淘宝指数查询官网
  • java web网站建设百度推广费用可以退吗
  • word 发布到wordpress西安seo托管
  • 做第三方网站注意什么b站怎么推广
  • 宁夏固原住房和建设局网站北京整站线上推广优化
  • 石家庄求做网站在seo优化中
  • 注册了一个域名怎么做网站各大网站提交入口
  • 手机网站自助建站源码电脑网页制作
  • 怎么做阿里国际网站的数据分析品牌广告图片
  • 易趣网的网站架构推广软文范文
  • 用asp做的网站百度网页怎么制作
  • 手机网站 滑动翻页宁波seo自然优化技术
  • 社交网站设计百度信息流怎么投放
  • 网站建设经验做法和取得的成效百度关键词seo排名优化
  • 京东商城网站建设目标今日新闻 最新消息 大事
  • 手机如何做微电影网站长沙网站制作
  • 西安营销型网站建设公司聚名网
  • 网站做短信接口具体方法网站排名软件
  • 旅游网站源代码模板深圳抖音推广公司
  • 网站开发测试过程企业网站推广可以选择哪些方法
  • 北京网站优化推广分析长沙百度搜索网站排名
  • 南京seo网站优化西安网站建设制作公司