公司的数据交换平台产品,采用的系统星型结构,底层基于成熟的消息中间件进行数据传输,由于星型结构,中心节点比较容易形成性能的瓶颈,为例解决这个问题,采用了MQ Cluster的方式,部署结构如下所示:
在 Cluster 中首先设计一台 MQ 服务器作为整个 Cluster 的网关,作为对外的连接点,它本地并不定义任何输入(Inbound)队列(如上例中的 Q1),只定义输出(Outbound)队列(如上例中的 Q2)。另外设置若干消息处理服务器,其中定义本地的输入队列,同时有消息处理程序在运行。在外部交易进入 Cluster 时首先发送到网关机上,由网关动态地发送到 Cluster 里定义了输入队列的 MQ 服务器上去。
MQ 网关可以根据设置,按照轮循或权重的方式对进入的消息进行分发,还可以通过出口程序(User Exit)实现更加复杂的分发机制。
在每个消息处理服务器都部署有完全相同的应用处理程序,它们读取输入队列里的消息,经过处理后把结果写入输出队列。输出队列只定义在 MQ 网关机器上,任何消息处理服务器写出的消息都回最终传送到网关上。前台程序连接网关,读取返回结果。
由于网关采用了照轮循或权重的策略,被集群的多个节点可以并发地处理被分配的消息,因此能显著地获得性能提升。
为了获得更高可用性,这个方案中有两点需要注意:
1. 可以看到 MQ 网关是个单点隐患,为了更高可用性,要使用 HACMP 等方案实现备份。
2. 如果消息处理服务器上的应用程序意外停止运行,数据会在队列中堆积起来,为了避免这种情况,需要自动脚本在应用程序停止时自动把 MQ 停止,这样后来的消息会发给其他服务器处理。
分享到:
相关推荐
k8s部署rabbitmq-cluster集群配置文件和docker镜像文件,配合文章学习用,有需要可以下载,无需修改直接部署即可
WebSphere MQ Cluster是其集群功能,旨在提高可用性、性能和可扩展性。在集群环境中,多个WebSphere MQ队列管理器(QMs)协同工作,共享资源,从而提供高可用性和负载均衡。 集群的核心概念: 1. **队列管理器集群*...
WebSphere MQ 多实例部署方案是一种高级别的高可用性(HA)配置,旨在增强消息中间件的稳定性,确保服务在单个实例失败时仍能继续运行。这一特性自MQV7.0.1版本开始引入,是WebSphere MQ产品的一个核心组件。多实例...
在标题和描述中提到的几个关键概念包括“多线程模式”、“推拉模式”和“订阅模式”,这些都是NetMQ的核心特性,下面将详细阐述这些知识点。 1. **多线程模式**:在多线程编程中,多个线程可以并行执行不同的任务,...
**JMS IBM MQ 订阅模式详解** Java Message Service(JMS)是一种API,它为在分布式环境中进行异步通信提供了标准接口。IBM MQ是IBM提供的一个消息中间件产品,它支持多种消息传递模型,包括点对点和发布/订阅模型...
标题“JMS调用IBM MQ监听模式”涉及的是Java消息服务(Java Message Service,简称JMS)与IBM WebSphereMQ(通常简称为IBM MQ)之间的交互,特别是在消息监听模式下的应用。这种模式允许应用程序被动地接收来自MQ的...
MQ安装包以及部署指南----------------------------------------------------------------------------------------------------------------------------------------------------------------
推拉模式是NetMQ中的两种基本通信模式之一,它常用于实现数据处理流水线。在这种模式下,一个或多个“推”端(Producer)将消息发送到队列,而一个或多个“拉”端(Consumer)则负责从队列中取出并处理这些消息。 1...
5. **MQ编程模式**:探索各种MQ编程模式,如同步和异步消息处理,以及如何设计高效、健壮的MQ应用。 6. **故障排查与性能优化**:学习如何诊断MQ相关的问题,以及如何调整MQ配置以提高性能和可扩展性。 7. **安全...
MQ+for+Linux+安装配置手册.pdf mq安装手册1.doc WAS+6.1安装手册installation+guide.pdf WebShpere MQ 配置与测试.txt WebSphere MQ 常用命令.txt
ActivityMQ是其中一个实现消息队列的开源产品,支持多种通信模式,其中包括发布/订阅(Publish/Subscribe)模式和点对点(Point-to-Point,P2P)模式。本文将深入探讨如何在C#环境中利用ActivityMQ实现这两种模式。 ...
《MQ编程模式(中文)》这本电子书深入探讨了消息队列(Message Queue, MQ)的编程模式,是IT行业内对于分布式系统通信领域的重要参考资料。MQ作为一种中间件,广泛应用于解耦应用组件、实现异步处理以及提高系统可...
消息队列zeromq的C#移植版本netmq,请求响应模式的例子,netmq版本是3.3.3.1 ,.net版本是net45 <package id="NetMQ" version="3.3.3.1" targetFramework="net45" />
"IBM MQ编程模式中文版"是一份面向Java开发者的指南,旨在帮助他们理解和掌握如何利用MQSeries classes for Java进行有效的消息队列编程。 在IBM MQ的Java编程中,有几个核心概念和关键知识点: 1. **Message ...
【标题】MQ安装部署教程:基于RabbitMQ的实践指南 在本文中,我们将深入探讨如何安装和部署MQ系统,特别关注RabbitMQ这一流行的开源消息代理。RabbitMQ是基于AMQP(Advanced Message Queuing Protocol)协议实现的...
**MQ编程模式(中文)** 在信息技术领域,消息队列(Message Queue,简称MQ)是一种软件组件,用于在分布式系统中实现可靠的消息传递。MQSeries是IBM推出的一种成熟且广泛使用的消息中间件产品,它允许应用程序之间...
WebSphere MQ编程模式(中文) 简介 在本红皮书的第一部分,我们将探讨程序员将使用的典型编程流模式,以及应用程序程序员决定编程路径时所要面临的选择。在第二部分详细介绍之前,我们提供了根据编程模型选择语言...
A IBM MQ client is ... The servers to which the client connects might be part of a cluster. IBM MQ Family Platforms provides a list of which platforms are supported as IBM MQ Clients and/or Servers.