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

网站策划报告怎么写百度seo优化教程免费

网站策划报告怎么写,百度seo优化教程免费,旅游网站建设与翻译,长沙企业网站建设收费一、概述 RabbitMQ是一种开源的消息代理软件,基于AMQP(高级消息队列协议)实现。它充当消息中间件的角色,允许应用程序通过消息队列进行异步通信。RabbitMQ的主要功能是接收、存储和转发消息,从而解耦应用程序组件&…

一、概述

        RabbitMQ是一种开源的消息代理软件,基于AMQP(高级消息队列协议)实现。它充当消息中间件的角色,允许应用程序通过消息队列进行异步通信。RabbitMQ的主要功能是接收、存储和转发消息,从而解耦应用程序组件,提高系统的可扩展性和可靠性。

①核心组件

  1. 生产者(Producer):负责创建消息并将其发送到RabbitMQ服务器。生产者可以是任何应用程序,它们将消息封装成特定的格式,然后通过网络发送到消息代理。

  2. 交换器(Exchange):交换器是消息传递的枢纽,它接收生产者发送的消息,并根据一定的规则将消息路由到一个或多个队列中。RabbitMQ提供了多种类型的交换器,如直接交换器(direct)、扇形交换器(fanout)、主题交换器(topic)等,每种交换器的路由规则不同。

    • 直接交换器:根据消息的路由键(routing key)直接将消息发送到与该路由键绑定的队列。

    • 扇形交换器:将消息广播到所有绑定的队列,不考虑路由键。

    • 主题交换器:根据路由键的模式匹配规则将消息发送到匹配的队列。

  3. 队列(Queue):队列是存储消息的容器,它是一个先进先出(FIFO)的数据结构。队列中的消息会被消费者(Consumer)依次消费。队列可以持久化,即使RabbitMQ服务器重启,队列中的消息也不会丢失。

  4. 消费者(Consumer):消费者从队列中获取消息并进行处理。消费者可以是应用程序的另一个组件,也可以是独立的进程。消费者通过订阅队列来接收消息,一旦队列中有消息到达,消费者就会按照一定的策略(如轮询、负载均衡等)进行消费。

②工作原理

  1. 消息发送过程

    • 生产者创建消息,并指定交换器和路由键。

    • 生产者将消息发送到RabbitMQ服务器。

    • 交换器根据路由键将消息路由到一个或多个队列。

    • 如果队列不存在,交换器会根据配置决定是否丢弃消息或返回错误。

  2. 消息接收过程

    • 消费者向RabbitMQ服务器发送订阅请求,指定要消费的队列。

    • 当队列中有消息到达时,RabbitMQ服务器将消息推送给消费者。

    • 消费者接收到消息后进行处理,处理完成后向服务器发送确认消息(ack),告知服务器该消息已被成功消费。如果消费者在处理消息过程中失败或崩溃,RabbitMQ服务器会将消息重新放入队列,等待其他消费者消费。

③优势

  1. 高可靠性:RabbitMQ支持消息持久化,即使服务器出现故障,消息也不会丢失。同时,它还支持镜像队列,可以在多个节点之间复制队列,提高系统的可用性。

  2. 高可用性:RabbitMQ可以部署在多个节点上,形成集群。集群中的节点可以相互备份,当某个节点出现故障时,其他节点可以接管其工作,保证系统的正常运行。

  3. 灵活的路由策略:通过不同类型的交换器和路由键,可以实现复杂的消息路由逻辑,满足各种业务场景的需求。

  4. 易于扩展:RabbitMQ支持水平扩展,可以通过增加节点来提高系统的处理能力。同时,它还支持多种编程语言的客户端库,方便开发者进行集成。

④应用场景

  1. 异步任务处理:当应用程序需要执行耗时的任务时,可以将任务封装成消息发送到RabbitMQ,然后由消费者在后台进行处理,从而提高系统的响应速度。

  2. 服务间通信:在微服务架构中,不同的服务可以通过RabbitMQ进行通信,实现服务的解耦和异步交互。

  3. 事件驱动架构:RabbitMQ可以作为事件总线,将事件消息传递给不同的消费者,实现事件驱动的业务逻辑。

  4. 日志收集:将日志消息发送到RabbitMQ,然后由专门的日志处理程序进行消费和分析,实现日志的集中管理和分析。

二、入门

        MQ技术选型参考图如下:

1、docker 安装 MQ

docker run \-e RABBITMQ_DEFAULT_USER=itheima \     # MQ 默认登录用户-e RABBITMQ_DEFAULT_PASS=123321 \      # MQ 默认登录用户的密码-v mq-plugins:/plugins \               # 默认挂载--name mq \                            # 容器名--hostname mq \                        # 主机名-p 15672:15672 \                       # MQ 访问图像化页面端口-p 5672:5672 \                         # MQ 通信端口-d \                        rabbitmq:3.8-management

2、Spring AMQP

SpringAmqp的官方地址 :SpringAMQP官方网址

        

3、代码实现

pom 依赖

        <!--AMQP依赖,包含RabbitMQ--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency>

配置RabbitMQ服务端信息

在每个微服务中引入MQ服务端信息,这样微服务才能连接到RabbitMQ

spring:rabbitmq:host: localhost # 主机名port: 5672          # 端口virtual-host: /hmall # 虚拟主机username: hmall  # 用户名password: 123   # 密码

发送消息

SpringAMQP提供了RabbitTemplate工具类,方便我们发送消息。样例发送消息代码如下

@SpringBootTest
public class SpringAmqpTest {@Autowiredprivate RabbitTemplate rabbitTemplate;@Testvoid testSendMessage2Queue() {//        队列名称String queueName = "simple.queue";
//        消息String message = "Hello,Spring amqp !";
//        发送消息rabbitTemplate.convertAndSend(queueName, message);}
}

接收消息

SpringAMQP提供声明式的消息监听,我们只需要通过注解在方法上声明要监听的队列名称,将来SpringAMQP就会把消息传递给当前方法:

@Slf4j
@Component
public class mqListener {@RabbitListener(queues = "simple.queue")public void listenSimpleQueue(String msg){     // 注意这里接受的参数类型,取决于队列中发送者发送的消息类型,因为我们发送者发送字符串,所以这里接受的参数类型也是字符串log.info("消费者收到了Simple.queue的消息:【{}】",msg);}
}

---------------------------------------------- 持续更新中----------------------------------------------------------

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

相关文章:

  • 快速刷网站排名长尾词seo排名优化
  • 市桥网站建设培训网上广告怎么推广
  • 沧州哪家做网站好点击排名软件哪个好
  • 哪些网站是做包装的昆明seo排名外包
  • 彩票网站做维护是什么安卓优化大师老版本
  • 西部数码网站备案查询衡水seo培训
  • 专业网站建站公司关键词优化外包服务
  • 广州建网站比较有名的公司百度问问
  • 建站市场seo顾问公司
  • 曰本孕妇做爰网站今日新闻最新10条
  • 如何制作课程网站模板最近新闻报道
  • 两学一做专题网站用途网络服务提供者知道或者应当知道
  • 品牌网站建设c重庆草根站长工具
  • 给设计网站做图网络营销产品的特点
  • 网站怎样做的有吸引力开发网站建设公司
  • 做国外购物网站聊城网站推广的公司
  • html项目案例实战合肥百度快照优化排名
  • 不用虚拟机可以做网站吗如何建立自己的网页
  • 我做网站了今天的最新新闻内容
  • 政府网站的模块结构微网站建站平台
  • 动易网站后台修改栏目的字网站源码
  • 免费信息网站建设南宁seo排名首页
  • 雄安个人代做网站排名软件关键词排名
  • 宝安网站建设哪家便宜免费发广告网站
  • 网站视频接口 怎么做外贸平台排名
  • 在线做名片做海报网站打开百度网页
  • 做网站开发用sublime好吗网络推广服务商
  • 查域名ip南昌seo公司
  • 做充气气模产品一般去哪些网站北京seo诊断
  • 外贸公司组织架构图福建seo外包