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

网站怎么做分享链接地址恒网做的网站

网站怎么做分享链接地址,恒网做的网站,深圳做网站推广的公司哪家好,巩义专业网站建设价格文章目录 概述架构详解核心组件虚拟主机#xff08;Virtual Host#xff09;RabbitMQ 有几种广播类型 概述 RabbitMQ是⼀个高可用的消息中间件#xff0c;支持多种协议和集群扩展。并且支持消息持久化和镜像队列#xff0c;适用于对消息可靠性较高的场合 官网https://www.… 文章目录 概述架构详解核心组件虚拟主机Virtual HostRabbitMQ 有几种广播类型 概述 RabbitMQ是⼀个高可用的消息中间件支持多种协议和集群扩展。并且支持消息持久化和镜像队列适用于对消息可靠性较高的场合 官网https://www.rabbitmq.com/getstarted.html 架构详解 RabbitMQ 是一个流行的开源消息队列系统它实现了高级消息排队协议AMQP标准提供了可靠的消息传递机制。下面是 RabbitMQ 的架构概述 生产者Producer负责产生消息并发送到 RabbitMQ 服务器。消息可以包含任何类型的数据例如 JSON、XML 等。交换机Exchange接收来自生产者的消息并将消息路由到一个或多个队列中。交换机有不同的类型包括直连交换机direct exchange、主题交换机topic exchange、扇出交换机fanout exchange和头部交换机headers exchange每种类型的交换机都有不同的路由规则。队列Queue消息最终存储在队列中等待消费者处理。消费者可以订阅一个或多个队列从队列中接收消息。绑定Binding用于将交换机和队列连接起来定义了消息的路由规则。消费者Consumer订阅队列并从中接收消息进行处理。 RabbitMQ 的架构支持高度的灵活性和可扩展性可以根据需求配置多个交换机、队列和消费者以满足复杂的消息处理需求。通过合理设计交换机和绑定可以实现灵活的消息路由和过滤功能。 除了上述基本组件外RabbitMQ 还包括虚拟主机Virtual Host、连接Connection、通道Channel等概念用于提供更加复杂的消息处理和管理能力。 总的来说RabbitMQ 提供了一个强大且灵活的消息传递平台适用于各种异步通信和消息处理场景。 核心组件 它们分别是Product、Cunsumer、Broker、Connection、Channel、Queue、Exchange、Binding、VHost。 Broker接收和分发消息的应用RabbitMQ Server就是 Message Broker Virtual host出于多租户和安全因素设计的把 AMQP 的基本组件划分到一个虚拟的分组中类似于网络中的 namespace 概念。当多个不同的用户使用同一个 RabbitMQ server 提供的服务时可以划分出多个vhost每个用户在自己的 vhost 创建 exchangequeue 等 Connectionpublisherconsumer 和 broker 之间的 TCP 连接 Channel如果每一次访问 RabbitMQ 都建立一个 Connection在消息量大的时候建立 TCP Connection的开销将是巨大的效率也较低。Channel 是在 connection 内部建立的逻辑连接如果应用程序支持多线程通常每个thread创建单独的 channel 进行通讯AMQP method 包含了channel id 帮助客户端和message broker 识别 channel所以 channel 之间是完全隔离的。Channel 作为轻量级的 Connection 极大减少了操作系统建立 TCP connection 的开销 Exchangemessage 到达 broker 的第一站根据分发规则匹配查询表中的 routing key分发消息到queue 中去。常用的类型有direct (point-to-point), topic (publish-subscribe) and fanout (multicast) Queue消息最终被送到这里等待 consumer 取走 Bindingexchange 和 queue 之间的虚拟连接binding 中可以包含 routing key。Binding 信息被保存到 exchange 中的查询表中用于 message 的分发依据 ConnectionFactory连接管理器应用程序与 Rabbit 之间建立连接的管理器程序代码中使用。 Channel信道消息推送使用的通道。 Exchange交换器用于接受、分配消息。 Queue队列用于存储生产者的消息。 RoutingKey路由键用于把生成者的数据分配到交换器上。 BindingKey绑定键用于把交换器的消息绑定到队列上。 虚拟主机Virtual Host 虚拟主机Virtual Host是 RabbitMQ 中用于实现逻辑隔离的机制类似于操作系统中的虚拟化技术。每个虚拟主机都是一个独立的、隔离的消息代理拥有自己的交换机、队列、绑定和权限规则。虚拟主机可以让不同的应用程序或团队在同一个 RabbitMQ 服务器上共享相同的基础设施同时保持彼此之间的隔离。 有虚拟主机的区别 隔离性每个虚拟主机之间是完全隔离的它们拥有独立的命名空间因此一个虚拟主机中的队列、交换机等元素不会影响到其他虚拟主机。权限控制你可以为每个虚拟主机设置独立的权限规则从而实现对不同应用程序或团队的精细化权限控制。灵活性不同的应用程序可以在不同的虚拟主机中进行消息传递而不会相互干扰。 没有虚拟主机的区别 如果没有虚拟主机的概念那么所有的交换机、队列和连接都将在全局范围内进行管理这样会导致以下问题命名冲突不同应用程序中可能会出现交换机、队列名称冲突从而引起混乱。权限管理困难无法对不同的应用程序或团队进行灵活的权限控制。 综上所述虚拟主机提供了一种有效的逻辑隔离机制使得不同的应用程序或团队可以在同一台 RabbitMQ 服务器上共存而不相互干扰。如果没有虚拟主机的话管理和维护起来将会变得更加困难并且容易产生混乱。 在 RabbitMQ 中虚拟主机Virtual Host是用于实现逻辑隔离的机制类似于操作系统中的虚拟化技术。每个虚拟主机都是一个独立的、隔离的消息代理拥有自己的交换机、队列、绑定和权限规则。 在 RabbitMQ 中虚拟主机名称可以使用斜杠/来分隔成多层路径例如 “/myapp” 或者 “/team1/app1” 等。如果虚拟主机名称中包含了斜杠则表示该虚拟主机名称是一个带有层级结构的路径。 带斜杠和不带斜杠的区别 带斜杠的虚拟主机名称 如果虚拟主机名称带有斜杠那么这个虚拟主机名称就是一个路径它可以表示多级目录结构。例如“/myapp” 就可以表示一个名为 “myapp” 的虚拟主机而 “/team1/app1” 则可以表示 “team1” 目录下的 “app1” 虚拟主机。带斜杠的虚拟主机名称可以让你更好地组织和管理虚拟主机使得不同的团队或应用程序之间更加隔离。不带斜杠的虚拟主机名称 如果虚拟主机名称不带斜杠那么这个虚拟主机名称就是一个简单的字符串。例如“myapp” 就可以表示一个名为 “myapp” 的虚拟主机但是它不能区分不同团队或应用程序之间的隔离。如果你只需要一个简单的、不带层级结构的虚拟主机那么可以使用不带斜杠的虚拟主机名称。 综上所述带斜杠和不带斜杠的虚拟主机名称都是有效的但它们表示的含义不同。你可以根据实际情况选择合适的虚拟主机名称来组织你的应用程序或团队。 containerFactory连接管理器 在Spring AMQP中containerFactory是用于配置消息监听器容器的工厂。通过指定containerFactory属性你可以选择不同的容器工厂来创建和配置消息监听器容器。 使用containerFactory的目的如下自定义配置可以根据需求自定义配置不同的消息监听器容器。每个容器工厂可以具有不同的配置包括线程数、并发消费者数量、消息确认模式等以便根据不同的业务需求进行调整。多个队列监听可以为不同的队列使用不同的容器工厂以便对它们进行独立的配置如并发消费者数量、线程池大小等。这样可以根据队列的特性和负载进行优化以提高消息处理的性能和效率。容器级别的设置通过容器工厂可以对容器本身进行一些全局级别的设置例如错误处理器、消息转换器等。集成其他组件使用自定义的容器工厂可以更轻松地集成其他组件或框架。例如你可能需要与Spring Boot Actuator一起使用以便在管理端点上暴露一些指标和统计信息。 总之通过指定containerFactory属性并配置相应的容器工厂你可以更加灵活地管理消息监听器容器并根据需求进行个性化的配置和优化。 RabbitMQ 有几种广播类型 direct默认方式最基础最简单的模式发送方把消息发送给订阅方如果有多个订阅者默认采取轮询的方式进行消息发送。 headers与 direct 类似只是性能很差此类型几乎用不到。 fanout分发模式把消费分发给所有订阅者。 topic匹配订阅模式使用正则匹配到消息队列能匹配到的都能接收到。 1topic模式按照设置的路由信息routing key将消息路由到一个或者多个消费端而消息只能由一个消费者消费一次。一个消费者可以设置多个路由信息可以同时获取多个消费者发送的消息 2fanout模式与topic模式唯一的区别是同一消息会发送到订阅binding的多个消费者 3direct模式一对一模式实际中比较少用 4RPC模式结合topic和direct模式发送消息的同时指定要接受的消息。 i. 直连交换机Direct exchange带路由功能的交换机根据routing_key消息发送的时候需要指定直接绑定到队列⼀个交换机也可以通过过个routing_key绑定多个队列。 ii. 扇形交换机Fanout exchange⼴播消息。 iii. 主题交换机Topic exchange发送到主题交换机上的消息需要携带指定规则的routing_key主题交换机会根据这个规则将数据发送到对应的(多个)队列上。 iv. ⾸部交换机Headers exchange⾸部交换机是忽略routing_key的⼀种路由⽅式。路由器和交换机路由的规则是通过Headers信息来交换的这个有点像HTTP的Headers。将⼀个交换机声明成⾸部交换机绑定⼀个队列的时候定义⼀个Hash的数据结构消息发送的时候会携带⼀组hash数据结构的信息当Hash的内容匹配上的时候消息就会被写⼊队列 。 Direct 交换机会将消息中的Routing key与该Exchange所有Binding中的Routing key进行匹配如果相等就发送到该Binding对应的Queue中。 Fanout 交换机会将接收到的消息发送给所有与之绑定的队列。 Topic 将消息中的Routing key与该Exchange所有Binding中的Routing key进行匹配匹配成功发送到该Binding对应的Queue中。routingKey必须是由点隔开的一系列的标识符组成根据消息的特性以.隔开。 *匹配一个标识符#匹配0个或多个标识符 Headers 分发消息不依赖路由键使用发送消息basicProperties对象中的headers来匹配的将消息中的headers与该交换机中所有Binding中的参数进行匹配。 Exchange 属性说明 Virtual host:属于哪个Virtual host。如果有多个Virtual host的有此属性一般默认的Virtual host是/Virtual host可以做最小粒度的权限控制。 Name名字同一个Virtual host里面的Name不能重复。 Durability 是否持久化 Durable持久化Transient不持久化。 Auto delete当最后一个绑定队列或者exchange被unbind之后该exchange自动被删除。 Internal 是否是内部专用exchange是的话就意味着我们不能往该exchange里面发消息。 Arguments 参数是AMQP协议留给AMQP实现做扩展使用的。alternate_exchange配置的时候exchange根据路由路由不到对应的队列的时候这时候消息被路由到指定的alternate_exchange的value值配置的exchange上。 扇出fanout交换机是将接收到到消息广播给它知道的所有队列从而实现生产者发送一条消息可以供多个消费者消费。 案例一个生产者发送一条消息通过扇出交换机广播给两个消费者消费如下图
http://www.pierceye.com/news/328745/

相关文章:

  • dw建设网站视频宁波seo优化项目
  • 网站里添加百度地图浙江网站建设公司
  • php网站开发最新需求排名优化百度
  • 网站制作的电话智慧校园信息门户网站建设
  • 网站备案申请福田企业网站优化方案
  • 企业网站seo怎么做有空间站的国家
  • Linux网站建设总结网站建设目的确定
  • 怎么做网站的内部链接wordpress 写php页面跳转
  • 推广自己的网站网页设计代码html文件怎么查
  • 网站在线制作软件邯郸公众号小程序制作
  • 网站后台生成静态页面天津百度推广电话号码
  • 网站单个页面301跳转湖南省建设局网站
  • 潮州网站建设十堰seo招聘
  • 企业网站建设公司公司系统优化的方法
  • 网站开发与sparkwordpress default
  • 品牌网站建设帮你大蝌蚪北京做网站建设的公司排名
  • 中国建设第一平台网站网络网站建设10大指标
  • 书画院网站源码网站主题模板下载不了
  • 邢台制作网站网上申报流程
  • 做网站的困难做的网站有营销效果吗
  • 高端集团网站建设公司做网站开发的有外快嘛
  • 网站服务器防火墙设置惠州网络推广公司哪家好
  • 做网站根据内容生成pdfwordpress自媒体二号
  • 临沂网站开发不会写代码怎么做网站
  • 怎么做加密货币网站wordpress 多域名登陆
  • 做网站的过程做网站公司广州
  • 女人动漫做受网站wordpress如何作页面
  • 做网站导航栏素材图建筑设计网站制作
  • 淘宝的网站建设方案国家为何要求所有网站均须备案
  • 企业网站模板下载哪家公司强温州建设公司网站