您的位置:首页 > 娱乐 > 八卦 > 广东网站设计的公司_自己制作游戏的app_怎么在百度上做网站_seo关键词教程

广东网站设计的公司_自己制作游戏的app_怎么在百度上做网站_seo关键词教程

2024/12/22 7:08:03 来源:https://blog.csdn.net/2301_79890818/article/details/144589912  浏览:    关键词:广东网站设计的公司_自己制作游戏的app_怎么在百度上做网站_seo关键词教程
广东网站设计的公司_自己制作游戏的app_怎么在百度上做网站_seo关键词教程

什么是MQ?
 

MQ(Message Queue,消息队列)是一种在计算机系统中实现消息传递的中间件技术,通常用于解耦和异步处理。它通过将消息(数据)从发送方(生产者)传递到接收方(消费者)来实现系统组件之间的通信。消息队列允许系统中的不同组件在不直接依赖彼此的情况下进行交互。

MQ的基本概念

  1. 消息:消息是数据的载体,通常是一个结构化的对象或字节流,包含了需要传输的信息。例如,订单信息、用户数据等。

  2. 队列:消息被存储在一个队列中,队列是一个先进先出(FIFO)的数据结构。消息会按照发送顺序进入队列,并等待消费者取出。

  3. 生产者:生产者是消息的发送者,它负责将消息发送到消息队列。生产者不需要知道消费者是谁,只需要将消息推送到队列。

  4. 消费者:消费者是消息的接收者,它从队列中获取消息并进行处理。消费者可以独立于生产者存在,通常是异步处理的。

  5. 消息中间件:消息队列通常由消息中间件提供,例如 Kafka、RabbitMQ、ActiveMQ、RocketMQ、Amazon SQS 等。

MQ的通信模型

  1. 点对点模型(Point-to-Point, P2P):在P2P模型中,每条消息只能被一个消费者消费。一旦消息被某个消费者处理后,就不再可用。这种模型适用于一对一的情况,比如发送任务给工作者节点。类似于单独给某人发送手机短信,只有指定的人才能收到。

  2. 发布/订阅模型(广播)(Publish/Subscribe, Pub/Sub):在Pub/Sub模型中,生产者发布消息到主题,任何订阅了该主题的消费者都会接收到消息。这种模型允许一对多的通信,即多个消费者可以监听同一个主题。类似于学校广播通知,所有同学都能接收到。

MQ的优势

  1. 解耦:生产者和消费者不直接联系,消息队列充当了两者之间的桥梁。这样可以降低系统耦合度,使得系统更加灵活。

  2. 异步处理:消息队列使得系统的不同部分能够异步执行。例如,生产者可以迅速发送消息,而消费者可以在适当的时候处理这些消息。这样可以提高系统的响应速度。

  3. 流量削峰:在高并发的情况下,生产者可以迅速将大量的消息发送到队列,而消费者可以根据自身的处理能力逐步消费这些消息,避免系统过载。

  4. 可靠性:通过消息持久化、确认机制等,消息队列能够保证消息的可靠传递。如果消费者处理失败,消息队列可以保证消息不会丢失,消费者可以重试处理。

  5. 可扩展性:通过增加生产者、消费者和消息队列的实例,系统可以轻松扩展,处理更多的消息量。

MQ的应用场景

  1. 异步任务处理:在需要延迟执行或高并发处理的场景中,可以通过消息队列异步执行任务。例如,发送电子邮件、处理订单支付等。

  2. 事件驱动架构:在微服务架构中,消息队列作为服务间通信的媒介,可以解耦各个微服务,并通过事件触发业务逻辑。

  3. 流量削峰:在高并发场景下,生产者将请求推送到消息队列中,消费者逐步处理,避免系统因为瞬时请求过多而崩溃。

  4. 日志收集:各个服务将日志信息推送到消息队列中,专门的日志处理系统可以从队列中消费这些日志,进行集中化处理和存储。

  5. 分布式系统通信:在分布式系统中,消息队列可以作为各个模块或服务之间的通信方式,实现跨服务、跨系统的数据传递。

RocketMQ 本地环境搭建

关于 RocketMQ 相关的基本概念,小伙伴们可翻阅官网:

https://rocketmq.apache.org/zh/docs/4.x/producer/01concept1

下载 RocketMQ 二进制包

https://rocketmq.apache.org/download/

Source下载:源码下载
Binary:可运行程序下载


设置环境变量
 



添加一个 ROCKETMQ_HOME 变量,值为刚刚我们二进制包解压的具体路径:

 

启动 RocketMQ


打开 cmd 命令行工具,进入到 RocketMQ 安装包的 /bin 文件夹下,执行如下命令,先将 namesrv 启动起来:
 

start .\mqnamesrv.cmd


命令执行完成后,会打开一个新的窗口,若提示 The Name Server boot sucess. , 则表示 namesrv 启动成功了。
 

启动 broker

接着,执行如下命令,准备启动 broker :

.\mqbroker -n 127.0.0.1:9876 autoCreateTopicEnable=true

命令执行完成后,若提示 The broker .. boot success. , 则表示运行成功了。同样的,窗口不要关闭。

RocketMQ 控制台

为了更好的控制RecketMQ,还需要一个控制台,地址:

https://github.com/apache/rocketmq-dashboard

下载完成后解压,并使用 IDEA 打开项目。

修改完成后,运行 App 启动类,将项目跑起来。启动成功后,浏览器访问 localhost:8080, 即可打开 RocketMQ 的控制台了,小伙伴们可以每个菜单都点点,了解一下:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com