站内搜索

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...


        

使用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...

    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...

    RabbitMQ,Redis,ZeroMQ,ActiveMQ,Jafka,Kafka消息队列

    消息队列RabbitMQ,Redis,ZeroMQ,ActiveMQ,Jafka,Kafka


    目前业界有很多MQ产品,我们作如下对比:

    RabbitMQ

    是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP, STOMP,也正是如此,使的它变的非常重量级,更适合于企业级的开发。同时实现了一个经纪人(Broker)构架,这意味着消息在发送给客户端时先在中心队列排队。对路由(Routing),负载均衡(Load balance)或者数据持久化都有很好的支持。

    Redis

    是一个Key-Value的NoSQL数据库,...

    java多线程常见面试题和答案

    下面是Java线程相关的热门面试题,你可以用它来好好准备面试。

    1) 什么是线程?

      线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。J

    2) 线程和进程有什么区别?

      线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任务。不同的进程使用不同的内存空间,而所有的线程共享一片相同的内存空间。别把它和栈内存搞混,每个线程都拥有单独的栈内存用来存储本地数据。

    ...