96SEO 2026-02-19 10:52 12
消息的消费者用于从队列中获取消息.消费者只需关注队列即可不需要关注交换机和路由键。

消费者可以通过basicConsume(订阅模式可以从队列中一直持续的自动的接收消息)或者basicGet(先订阅消息,然后获取单条消息再然后取消订阅。
也就是说basicGet一次只能获取一条消息如果还想再获取下一条还要再次调用basicGet)来从队列中获取消息。
生产者会将消息发送到交换机然后交换机通过路由策略(规则)将消息路由到匹配的队列中去。
ExchangeType决定了Exchange路由消息的行为在RabbitMQ中ExchangeType有direct、Fanout、Topic和Header
绑定起来,所以Binding不是一个概念而是一种操作。
RabbitMQ中通过绑定,以路由键作为桥梁将Exchange与Queue关联起来()Exchange—Routing
Key—Queue这样RabbitMQ就知道如何正确地将消息路由到指定的队列了通过queueBind()方法将Exchange、Routing
key进行绑定联系的这个关系是固定的。
初始化的时候我们就会建立该队列。
它是一个String值用于定义路由规则。
生产者在将消息发送给Exchange的时候一般会指定一个routing
key来指定这个消息的路由规则。
在队列绑定的时候需要指定路由键在生产者发布消息的时候需要指定路由键当消息的路由键和队列绑定的路由键匹配时消息就会发送到该队列。
用于存储消息的容器,可以看成一个有序的数组,生产者生产的消息会发送到交换机中,最终交换机将消息存储到某个或某些队列中。
队列可被消费者订阅,消费者从订阅的队列中获取消息。
消息队列,我们发送给RabbitMQ的消息最后都会到达各种queue,并且存储在其中(如果路由找不到相应的queue则数据会丢失),等待消费者来取.
每一个RabbitMQ服务器都能创建多个虚拟消息服务器,我们称之为虚拟主机.每一个vhost本质上是一个mini版的RabbitMQ服务器,拥有自己的交换机、队列、绑定等,拥有自己的权限机制.vhost相对于RabbitMQ就像虚拟机之于物理机一样.他们通过在各个实例间提供逻辑上的分离,允许不同的应用程序安全保密的运行数据,这很有用,它既能将同一个Rabbit的众多客户区分开来,又可以避免队列和交换器的命名冲突.RabbitMQ提供了开箱即用的默认的虚拟主机“/”,如果不需要多个vhost可以直接使用这个默认的vhost,通过使用缺省的guest用户名和guest密码来访问默认的vhost.
vhost之间是相互独立的,这避免了各种命名的冲突,就像App中的沙盒的概念一样,每个沙盒是相互独立的,且只能访问自己的沙盒,以保证非法访问别的沙盒带来的安全隐患.
rabbitmq部署有三种模式单机模式普通集群模式镜像集群模式
由于rabbitmq是基于erlang语言开发的所以必须先安装erlang。
http://erlang.org/download/otp_src_20.0.tar.gz
PATH$PATH:/usr/local/erlang/bin
https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.11.6/rabbitmq-server-3.11.6.tar.xz
rabbitmq-server-generic-unix-3.11.6.tar.xz
rabbitmq-server-generic-unix-3.6.10.tar
注该方式安装的RabbitMQ是没有配置文件的如需要配置文件需手动进行配置文件置于自己Rabbitmq安装路径下的
/usr/local/rabbitmq/sbin/rabbitmq-server
/usr/local/rabbitmq/sbin/rabbitmq-server
/usr/local/rabbitmq/sbin/rabbitmq-plugins
在本地主机中使用浏览器访问Linux实例的公网IP:15672。
但是你创建的queue只会放在一个rabbtimq实例上但是每个实例都同步queue的元数据(存放含queue数据的真正实例位置)。
消费的时候实际上如果连接到了另外一个实例那么那个实例会从queue所在实例上拉取数据过来。
类似ini的sysctl配置文件格式。
该文件通常命名为Rabbitmq.conf。
主配置文件。
应该用于大多数设置。
对于人类来说阅读和机器部署工具的生成更容易。
并非所有设置都可以这种格式表示。
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-amqp/artifactId
org.springframework.amqp.core.*;
org.springframework.context.annotation.Bean;
org.springframework.context.annotation.Configuration;/*rabbitMq基本配置*/
FanoutExchange(productExchange);}public
TopicExchange(topicExchangeName);}Beanpublic
BindingBuilder.bind(productQueue).to(productExchange);}
LoggerFactory.getLogger(ProductProducer.class);AutowiredRabbitTemplate
gson.toJson();logger.info(###消息发送者:
rabbitTemplate.convertAndSend(RabbitmqConfig.Product_EXCHANGE,
LoggerFactory.getLogger(TransproductConsumer.class);AutowiredRabbitTemplate
rabbitTemplate;AutowiredErrorProducer
errorProducer;AutowiredProductService
productService;RabbitHandlerRabbitListener(queues
{logger.info(##start##消费者TransProductConsumer
e);errorProducer.push(RabbitmqConfig.ERROR_PROFIT_CACULATE_QUEUE,
LoggerFactory.getLogger(TransDetailProducer.class);AutowiredRabbitTemplate
errorJson);rabbitTemplate.convertAndSend(RabbitmqConfig.ERROR_EXCHANGE,
gson.toJson(obj);logger.info(###异常消息发送者:
errorJson);rabbitTemplate.convertAndSend(RabbitmqConfig.ERROR_EXCHANGE,
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback