• ActiveMQ (一) 介绍与安装


    ActiveMQ是消息中间件的一种

      ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。

    什么是消息中间件:

      消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。对于消息中间件,常见的角色大致也就有Producer(生产者)、Consumer(消费者)

    常见的消息中间件产品:
      1,ActiveMQ
    ​   ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现。我们在本次课程中介绍 ActiveMQ的使用。
      2,RabbitMQ
    ​   AMQP协议的领导实现,支持多种场景。淘宝的MySQL集群内部有使用它进行通讯,OpenStack开源云平台的通信组件,最先在金融行业得到运用。
      3,ZeroMQ
    ​   史上最快的消息队列系统
      4,Kafka
    ​   Apache下的一个子项目 。特点:高吞吐,在一台普通的服务器上既可以达到10W/s的吞吐速率;完全的分布式系统。适合处理海量数据。

     

    什么是JMS:

      JMS(Java Messaging Service)是Java平台上有关面向消息中间件的技术规范,它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发。

      JMS本身只定义了一系列的接口规范,是一种与厂商无关的 API,用来访问消息收发系统。它类似于 JDBC(java Database Connectivity):这里,JDBC 是可以用来访问许多不同关系数据库的 API,而 JMS 则提供同样与厂商无关的访问方法,以访问消息收发服务。许多厂商目前都支持 JMS,包括 IBM 的 MQSeries、BEA的 Weblogic JMS service和 Progress 的 SonicMQ,这只是几个例子。 JMS 使您能够通过消息收发服务(有时称为消息中介程序或路由器)从一个 JMS 客户机向另一个 JML 客户机发送消息。消息是 JMS 中的一种类型对象,由两部分组成:报头和消息主体。报头由路由信息以及有关该消息的元数据组成。消息主体则携带着应用程序的数据或有效负载。

      JMS 定义了五种不同的消息正文格式,以及调用的消息类型,允许你发送并接收以一些不同形式的数据,提供现有消息格式的一些级别的兼容性。
      - TextMessage--一个字符串对象
      - MapMessage--一套名称-值对
      - ObjectMessage--一个序列化的 Java 对象
      - BytesMessage--一个字节的数据流
      - StreamMessage -- Java 原始值的数据流

     

    JMS消息传递类型:

    对于消息的传递有两种类型:

    • 一种是点对点的,即一个生产者和一个消费者一一对应;

    • 另一种是发布/ 订阅模式,即一个生产者产生消息并进行发送后,可以由多个消费者进行接收。

    JMS和ActiveMQ的关系

      JMS是一个用于提供消息服务的技术规范,它制定了在整个消息服务提供过程中的所有数据结构和交互流程。
      而MQ则是消息队列服务,是面向消息中间件(MOM)的最终实现,是真正的服务提供者;MQ的实现可以基于JMS,也可以基于其他规范或标准。

    ActiveMQ下载与安装

    官方网站下载http://activemq.apache.org/

     

    Linux安装:

    将apache-activemq-5.12.0-bin.tar.gz 上传至服务器

    解压此文件

    tar  zxvf  apache-activemq-5.12.0-bin.tar.gz

    为apache-activemq-5.12.0目录赋权

    chmod 777 apache-activemq-5.12.0

    进入apache-activemq-5.12.0in目录,赋与执行权限

    chmod 755 activemq 
    --------------------------------------  知识点小贴士    --------------------------
    linux 命令chmod 755的意思
    chmod是Linux下设置文件权限的命令,后面的数字表示不同用户或用户组的权限。
    一般是三个数字:
    第一个数字表示文件所有者的权限
    第二个数字表示与文件所有者同属一个用户组的其他用户的权限
    第三个数字表示其它用户组的权限。
          权限分为三种:读(r=4),写(w=2),执行(x=1) 。 综合起来还有可读可执行(rx=5=4+1)、可读可写(rw=6=4+2)、可读可写可执行(rwx=7=4+2+1)。
          所以,chmod 755 设置用户的权限为: 
    1.文件所有者可读可写可执行                                    --7
    2.与文件所有者同属一个用户组的其他用户可读可执行 --5 
    3.其它用户组可读可执行

    启动

    ./activemq start

    出现以下提示表示成功,默认端口为8161

    我安装的地址为:192.168.25.128 ,访问 http://192.168.25.128:8161

     

    账户密码均为admin

    ActiveMQ和Dubbo有什么区别  我们什么时候用ActiveMQ呢

      Dubbo是rpc的集成,同步 可及时做出回应,注重服务暴露 ,最终一致性。提供分布式服务,N个服务消费者,N个服务提供者,即使某些节点挂了,不影响整个应用,当然其他功能还有很多。


      ActiveMQ是异步消息, 受众方众多时,为了服务间的解耦,注重可靠性传输 。可将一些无需即时返回且耗时的操作提取出来,使用ActiveMQ进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。比如某一个生产者和消费者相比,同一时间段生产量远远大于消费量,可使用消息中间件,多个消费者分发消费。

    ActiveMQ可单独使用,也可结合dubbo使用。

  • 相关阅读:
    Debian 7 amd64 + fbterm + ucimf
    golanggorilla/mux,强大的URL路由和调度器
    Debian 7 amd64问题
    在mysql启用远程连接
    golang从类型转换角度看interface
    golang监控goroutine异常退出
    golangRedis最佳的Go语言驱动
    usaco Scrambled Letters
    usaco Milk Routing
    滚动数组出错的原因都有那些?&poj3254
  • 原文地址:https://www.cnblogs.com/blazeZzz/p/9556501.html
Copyright © 2020-2023  润新知