这几天下载了apache的activeMQ, 做了下试验:
1 ActiveMQ是独立用server方式运行的,也就是执行解压缩后bin目录下的activemq.bat。
2 试验代码用的消息生产者和消费者是在命令行中用不同线程完成生产和消费的动作的,尤其是,消费者是用异步的方式。
生产者和消费者作为独立进程(线程)通过标准的互联网协议(tcp://localhost:61616)同server(activeMQ)通信,所以,生产者和消费者是可以部署到任意机器上的。
现在考虑一下消费者的部署。之所以采用JMS的异步模式,就是为了在系统资源紧张的时候,把原本同步完成的耗时工作通过JMS在资源不紧张的时候异步完成。所以,最好是,当服务器得到一个消息,检测一下当前资源状态,如果很忙,就等待。如果不忙,就唤醒消费者完成消费的动作。消费者最好能部署到activeMQ中,由它来调度,这是最好的一种方式,比单独部署消费者为一个定时启动的进程要好的多。
但是我在activeMQ的文档中没有找到相关的信息。大家有什么看法?
补:
1 刚才想了想,其实把消费者部署到activeMQ中恐怕不是一种好的做法。为什么呢,我想起来有人说过,activeMQ实际上是一种负载均衡,load balancing,把逻辑计算部分和balancer放在一起显然不好。但是,对于我的例子,我还是希望放在一起,因为我可以省掉调度消费者的麻烦(例如,用cron去设定何时启动消费者进程等等)。总之,我想找标准的,被支持的方法。
2 我的生产者在tomcat中,不用JEE,所以不能将消费者用message driven Bean的方式部署在JEE容器里。
分享到:
相关推荐
Java消息服务(Java Message Service,简称JMS)是Java平台上的一个API,用于在分布式环境中交换消息。它定义了生产、存储、消费消息的接口和协议,使得不同的消息系统之间能够互操作。JMS包含两种类型的消息模型:...
1. **JMS(Java Message Service)**:JMS是一个标准,定义了API,使得应用程序可以创建、发送、接收和读取消息。它为不同应用提供了一种可靠的消息传递机制,无论这些应用是否在同一时间运行。 2. **Spring JMS...
ActiveMQ是遵循JMS(Java Message Service)规范的消息服务提供者,提供了企业级的消息通信能力。它不仅可以与Java应用程序协同工作,还支持其他多种编程语言。ActiveMQ的消息传递机制以其高可靠性、灵活性和扩展性...
ActiveMQ遵循Java Message Service (JMS) 1.1 和 Java 2 Platform, Enterprise Edition (J2EE) 1.4 规范,为开发者提供了高效稳定的消息传输服务。 #### 二、ActiveMQ的核心特点 1. **多语言和跨平台支持**:除了...
标题中的“国产化中间件产品对接,jms的接口参考”指的是在信息技术领域,特别是中国国内,使用本土化的中间件产品进行系统间的通信,而这里的通信机制是基于Java消息服务(Java Message Service,简称JMS)。...
Java消息服务(Java Message Service,简称JMS)是Java平台中用于企业级应用间异步通信的一种标准API。它允许应用程序创建、发送、接收和读取消息,为分布式环境中不同组件之间的解耦提供了强大支持。在给定的"jms....
**JMS(Java Message Service)** 是Java平台中用于创建、发送、接收和读取消息的标准API。它提供了一种可靠且异步的方式来传递消息,是企业级应用间通信的重要工具。在Java环境中,JMS允许应用程序通过消息中间件...
在与ActiveMQ集成时,Spring框架的`spring-jms`模块提供了对JMS(Java Message Service)的抽象,使得我们可以方便地管理和使用消息队列。 **ActiveMQ** ActiveMQ是Apache软件基金会的一个开源项目,它是JMS的实现...
在ActiveMQ中,生产者和消费者都是通过JMS API(Java Message Service Application Programming Interface)来与消息代理进行交互的。 生产者核心代码逻辑部分,主要介绍了如何使用JMS API来构建消息生产者,并通过...
Weblogic服务器是一款由Oracle公司开发的企业级应用服务器,它提供了丰富的功能和服务,其中包括Java消息服务(JMS,Java Message Service)。JMS是一种标准接口,允许应用程序创建、发送、接收和读取消息。在这个...
而JMS(Java Message Service)是Java平台上的一个标准,它定义了消息中间件如何在分布式环境中交换信息。 **J2EE5中的主要改进和特性** 1. **Annotations(注解)**: J2EE5引入了注解,允许开发者在代码中直接指定...
JMS,全称Java Message Service,是Java平台中用于消息传递的一个应用程序接口(API),它为应用程序提供了一个标准的方式来创建、发送、接收和读取消息。 在“flex用到JMS代码下载”这个主题中,我们讨论的是如何...
ActiveMQ是一种开源的消息代理,它实现了JMS(Java Message Service)规范,并支持多种编程语言。它具备高可用性和负载均衡特性,可以将消息持久化到数据库。ActiveMQ支持消息的持久化方式有KahaDB、JDBC、LevelDB等...
- **Message数据结构**:定义了消息的数据结构,包括针对Producer的消息和针对Consumer的消息。 ### Broker使用指南 - **Broker配置参数**:通过配置参数来调整Broker的行为,以适应不同的部署环境。 - **Broker...
常见的角色包括消息生产者(Producer)、消息消费者(Consumer)和消息队列(Message Queue)。 JMS(Java Messaging Service)是Java平台上的一套面向消息中间件的规范。JMS规范定义了创建、发送、接收消息的标准...
Java消息服务(Java Message Service, JMS)作为Java平台上的标准消息访问接口,为开发者提供了统一的消息访问方式,极大地简化了开发过程。本文档旨在详细介绍JMS的核心概念和技术细节,帮助开发者更好地理解和应用...
在IT行业中,Java消息服务(Java Message Service,简称JMS)是一种标准接口,用于应用程序之间的异步通信。它提供了一种可靠的消息传递机制,使得分布式系统中的组件能够解耦,提高系统的可扩展性和容错性。...
在理解ActiveMQ的使用之前,我们需要先了解JMS(Java Message Service)规范。 JMS 是一种标准接口,它定义了应用程序如何通过消息传递系统交换数据。以下是JMS的基本构件: 1. **连接工厂(Connection Factory)*...
它的示例可能涵盖Producer、Consumer的创建,事务消息、顺序消息、定时消息的使用,以及集群部署和管理。 这个"message-queue-parent"项目可以帮助开发者深入理解这些消息队列的工作原理,学习如何在实际项目中有效...