站内搜索

ActiveMQ使用记录

使用JMS的优点:

在系统集成中,我们可以使用RMI,Webservice等技术进行远程调用,但是他们都要求客户端程序处理完成后在返回给调用系统,这样就增加了调用系统的等待时间,对于一些不需要同步操作的系统会造成大的系统开销,如果使用jms,可以采用异步调用,把消息放到jms provider中即可,客户端不用等待回复.
   系统只负责把消息发送到服务端即可,不用管是否能被消费,这样减低了生产系统和消费系统的偶合.比如可以把发邮件的功能从系统中独立出来,专门做个系统发送邮件,邮件来源从jms服务器中取,这样就可以让多个系统共享发邮件的功能,不用重复开发.

JMS的一些基本概念:
1.PT...

Callable和Future 创建线程java

前面已经指出通过实现Runnable时,Thread类的作用就是将run()方法包装成线程执行体,那么是否可以直接把任意方法都包装成线程执行体呢?Java目前不行,但其模仿者C#中是可以的.
Callabel接口可以看成是Runnable接口的增强版,只不过其线程执行体call()方法比run方法更加强大罢了:
>>call()方法中可以有返回值
>>call()方法中可以声明抛出异常.

一.创建线程的第三种方式----使用Callable对象进行创建






package com.amos.concurre...


        

分布式Web服务器架构

最开始,由于某些想法,于是在互联网上搭建了一个网站,这个时候甚至有可能主机都是租借的,但由于这篇文章我们只关注架构的演变历程,因此就假设这个时候已经是托管了一台主机,并且有一定的带宽了,这个时候由于网站具备了一定的特色,吸引了部分人访问,逐渐你发现系统的压力越来越高,响应速度越来越慢,而这个时候比较明显的是数据库和应用互相影响,应用出问题了,数据库也很容易出现问题,而数据库出问题的时候,应用也容易出问题,于是进入了第一步演变阶段:将应用和数据库从物理上分离,变成了两台机器,这个时候技术上没有什么新的要求,但你发现确实起到效果了,系统又恢复到以前的响应速度了,并且支撑住了更高的流量,并且不会因为...

使用ActiveMQ Apollo实现即时消息推送

前言

现在大多网站会员系统或云端协作平台上都有即时消息通知功能,即消息推送,这对用户来说是非常贴心的功能。要实现消息推送服务,大致可以采用以下几种方式:
  1. 使用HTTP轮循方式
    • 说明:定时向HTTP服务端接口(Web Service API)获取最新消息,可结合ajax技术实现页面无刷新效果,这是主动拉取消息的机制,严格来说这不属于消息推送。
    • 优点:实现简单、可控性强、部署成本低
    • 缺点:实时性差
  2. 使用XMPP协议
    • 说明:XMPP(可扩展消息处理现场协议)是基...

    ActiveMQ使用线程池实现消息的生产与消费



    1。  首先先引入相关的lib包,重点需引用activemq-client-5.8.0.jar,activemq-core-5.7.0.jar,activemq-pool-5.8.0.jar,activemq-protobuf-1.1.jar等包,其他包
    自行配置。


    2。  一些公共工具类的代码:
    JMSProducer.Java
    package com.ffcs.icity.jms;  
      
    import java.util.Map;  
    import java.util.Set;  
    import java.util.conc...

    ActiveMQ教程

    Queue与Topic的比较
    1、JMS Queue执行load balancer语义:
    一条消息仅能被一个consumer收到。如果在message发送的时候没有可用的consumer,那么它将被保存一直到能处理该message的consumer可用。如果一个consumer收到一条message后却不响应它,那么这条消息将被转到另一个consumer那儿。一个Queue可以有很多consumer,并且在多个可用的consumer中负载均衡。
    2、Topic实现publish和subscribe语义:
    一条消息被publish时,它将发到所有感兴趣的订阅者,所以零...
    
            

    轻量级消息中间件ActiveMQ详解

    《笔者带你剖析轻量级消息中间件ActiveMQ》

    前言

    软件系统的发展,简单来说是从单机应用逐步演变为 分布式+集群 模式,当然这根互联网的兴起是密不可分的。笔者曾经面试过一些开发人员,当你们使用代码编写一个简单的Login模块时,大概需要花费多少周期?有些开发人员不假思索的脱口而出,5分钟、10分钟等。OK,我们先不管他们是否真的能够在这么短的时间内开发出一个简单的Login功能,我真正想问的是,这个看似简单的功能背后,如果存放在互联网场景下,如何能够保证系统同时承载100——100W人的 并发洗礼 而不会出现宕机?紧接着是死一般的&n...

    java实时监听文件动态

    package com.honest.listener;
    
    
    
    import org.apache.log4j.Logger;
    
    import com.honest.listener.FileUtil.PropertiesUtil;
    
    import net.contentobjects.jnotify.JNotify;
    import net.contentobjects.jnotify.JNotifyException;
    
    public class FielListener extends Thread {
      private static Logger logger = Logger.get...

    ActiveMQ消息中间件的用途和优点

    消息中间件

    我们简单的介绍一下消息中间件,对它有一个基本认识就好,消息中间件(MOM:Message Orient middleware)。
    消息中间件有很多的用途和优点: 
    1. 将数据从一个应用程序传送到另一个应用程序,或者从软件的一个模块传送到另外一个模块; 
    2. 负责建立网络通信的通道,进行数据的可靠传送。 
    3. 保证数据不重发,不丢失 
    4. 能够实现跨平台操作,能够为不同操作系统上的软件集成技工数据传送服务
    ActiveMQ特性列表

    多种语言和协议编写客户端。语言: Java, C, C++, C#, Ruby, ...

    activeMQ消息的事务

    JMS消息的事务
    1、创建事务createSession(paramA,paramB);
    paramA是设置事务的,paramB设置acknowledgment mode(应答模式)
    paramA设置为false时: paramB的值可为Session.AUTO_ACKNOWLEDGE, Session.CLIENT_ACKNOWLEDGE,DUPS_OK_ACKNOWLEDGE其中一个。

    2、事务的应答确认
     A) paramA 设置为false时:
    Session.AUTO_ACKNOWLEDGE为自动确认,当客户成功的从receive方法返回的时候,或者从MessageLis...