Posts tagged: activemq

配置嵌入式的Activemq服务

activemq提供了嵌入式的服务,即在一个JVM内部使用jms服务。我们用它来做异步发送消息。 JMS自身没有提供异步发送消息的机制,只能同步发送消息。这带来一个问题,比如外部(远端)的JMS服务器因为各种原因无法工作,那么发送消息的应用可能也连带的无法工作,这时消息会丢失。 可以使用activemq的嵌入式的服务,先同步发送消息到本地(嵌入式activemq服务),然后再用一个接收线程接收本地消息,发送到远端的JMS服务,这样即使远端JMS服务失效,消息也不会丢失,当远端服务器恢复后还能继续收到消息。    发送文章为PDF   

星期三 八月 25th, 2010 in , , , | No Comments »

实现groovy通过队列消息转换视频

上文实现转换视频的最简单groovy程序实现了简单的转换视频功能,只能根据参数做一次转换。需要实现的需求是,跑在后台,根据要求转换视频。 可以自己实现这样的生产者消费者模式,实现一个队列机制,然后启动线程阻塞在空队列上,有生产者放到队列里一条消息,比如转换test.mov为test.mp4,然后线程得到通知消费这个消息,并从队列中删除消息。 这个思路是好的,但是不需要自己写这些代码,可以借助第三方API,使用JMS,这里用到的是JMS的开源免费实现ActiveMQ。具体安装参见tomcat下部署activemq。 好处是省去了自己写底层代码和相关的测试维护工作。而且,activemq自带web管理界面,我们可以先实现消费者(也就是转换视频功能),而通过web管理界面手工生成消息。 生成一条消息,消息正文很简单: test.mov;test.mp4 分号隔开,前者是需要转换的视频文件路径,后者是转换的文件路径。 在activemq的web console中填写并发送这条消息。 日志引用groovy实现监控目录的基本功能    发送文章为PDF   

星期三 十一月 25th, 2009 in , , , | No Comments »

groovy原型修改了个别地方

groovy原型修改了个别地方,比如队列名称,原来叫myqueue,改为inbound,入站的意思,这样比较符合需求。出站队列outbound,因为是和手机号对应的,因此增加了手机号,比如13701234567的出站队列就是outbound-13701234567。 代码见: http://easymorse.googlecode.com/svn/tags/sms-service_1.1/    发送文章为PDF   

星期一 十一月 23rd, 2009 in , , , | No Comments »

groovy原型增加收到jms消息后发送确认消息的示例

源代码见: http://easymorse.googlecode.com/svn/tags/groovy.proto.1.4/ 主要修改的是两部分代码: 通过hello.gsp增加发送xml文本消息的代码,具体写法可参见groovy生成xml; 主要部分,修改TestScript.groovy文件。 日志引用简化groovy原型的jms消费者部分groovy原型监听ServletContext的属性变化groovy原型调试上的处理    发送文章为PDF   

星期四 十一月 19th, 2009 in , , , | No Comments »

groovy开发原型增加jms发送消息示例

通过jms消息队列,可以可靠传输消息,另外,可以异步传输,简化编程模型。在为groovy原型增加sql示例原型基础上,增加了对jms的支持,并且写了个发送的简单示例。 示例运行效果: 消息服务器使用了activemq,需要提前部署一个activemq-web-console的war文件到tomcat中,这样不但可以提供activemq消息服务器,还带一个web界面的监控应用。类似这样: 日志引用groovy原型增加接收消息示例    发送文章为PDF   

星期四 十一月 12th, 2009 in , , , | No Comments »

tomcat下部署activemq

activemq可以单独部署和执行,比如类似ActiveMQ的最简单应用中提到的安装和执行方式。但是有时候需要作为一个web应用部署在servlet容器中,这样利于和其他web应用的配合。 官方文档上有一个针对这种需求的文档: http://activemq.apache.org/web-console.html 日志引用实现groovy通过队列消息转换视频groovy开发原型增加jms发送消息示例编写camel最简单的示例    发送文章为PDF   

星期二 七月 14th, 2009 in , , | 1 Comment »

ActiveMQ的自动发现以及简单认证

默认情况下,activemq的配置文件conf/activemq.xml中设置了通过广播自动发现: <networkConnectors> <!– by default just auto discover the other brokers –> <networkConnector name="default-nc" uri="multicast://default"/> 这样可以让JMS客户端不需要指定url就可以在广播可到达的网络范围内自动找到服务器: <bean id="jmsFactory" class="org.apache.activemq.ActiveMQConnectionFactory"> <!– <property name="brokerURL">–> <!– <value>failover:tcp://localhost:61616</value>–> <!– </property>–> 比如把brokerURL属性设置屏蔽掉,程序一样可以运行,参见通过spring开发ActiveMQ简单应用。    发送文章为PDF   

星期二 七月 7th, 2009 in , , | No Comments »

通过spring开发ActiveMQ简单应用

使用spring的支持类开发JMS程序可以简化代码,确保开发质量。以下是使用ActiveMQ作为JMS实现的示例。 首先需要确保如下类库,这里使用maven的pom: <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jms</artifactId> <version>2.5.6</version> </dependency> <dependency> <groupId>org.apache.xbean</groupId> <artifactId>xbean-spring</artifactId> <version>3.5</version> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-core</artifactId> <version>5.2.0</version> </dependency> 日志引用ActiveMQ的自动发现以及简单认证    发送文章为PDF   

星期一 七月 6th, 2009 in , , | No Comments »

ActiveMQ的最简单应用

有一段时间不使用JMS了。现在的项目又有可能需要应用JMS,来提高服务质量和提高系统资源的利用率。 提高服务质量,主要是保证不间断的服务。用JMS服务器接收任务,排成队列。应用服务可以暂停做维护,不影响接收的任务。应用服务运行后,再从队列中获取任务。 提高系统资源的利用率,主要是任务的派发不是24小时平均的,而是高峰时期任务量很多,比如1秒1000多个,有的时候很低,比如十几秒钟才来一个。应用服务通过JMS队列一个一个的取任务,做完一个再领一个,使系统资源的运用趋于平均。而JMS,比如JMS接收消息的效率是很高的,比如ActiveMQ,在赛扬(2.40GHz)机器上能够达到2000/s,消息大小为1-2k。好一些的服务器可以达到2万以上/秒。 日志引用tomcat下部署activemq    发送文章为PDF   

星期五 七月 3rd, 2009 in , , | No Comments »