zoukankan      html  css  js  c++  java
  • ActiveMQ消息队列介绍

    ActiveMQ是一个开源兼容Java Message  Service  (JMS) 1.1面向消息的中件间. 来自Apache Software Foundation. ActiveMQ提供松耦合的应用程序架构.  先来看两个应用通过RPC通讯的紧耦合:

    acitvemq1

    通过面向消息的中件间, 架构演变为:

    acitvemq2

    acitvemq3

    我们看到应用程序1发送message到中件间, 应用程序2从中件间接收message.  ActiveMQ提供了灵活的应用程序架构. 

    ActiveMQ消息存储也是FIFO:

    mq

    什么时候使用ActiveMQ:

    1. 异构应用

        ActiveMQ虽然为是JAVA平台的, 但它有很多客户端.C/C++,  .NET,  Perl,  PHP,  Python,  Ruby, 同时ActiveMQ也是跨平台的.

    2.替代RPC的解决方案

       应用程序广泛地使用RPC风格调用实现同步. 很多C/S应用程序使用RPC包括ATMs, 大多数的web应用程序,信息卡系统,POS机等. 如果同步出现down机情况, 用户体验相当不好. 使用异步消息, 更多的消息接收者能更容易增加消息, 支持并发并且处理得更快. 这时,应用程序已经被解耦.

    3.使得应用之间松耦合.

    前面已经提到了, 紧耦合有很多问题,特别是分布式情况下. 松耦合架构, 使得应用程序很灵活,, 也可以引导出event-driven architecture (EDA)

    4.事件驱动构架的基石

    解耦,异步风格的架构通过调优允许Broker伸缩来更进一步来处理相当多的客户端, 更多是内存分配,等等 (称为垂直可伸缩性), 而不是仅依靠增加Broker节点的数目去处理很多更多客户端(称为水平可伸缩性) 的能力。

    5.提高应用伸缩性

    许多应用程序利用事件驱动构架为了获取更多的伸缩性, 例如电子商务, 政府, 制造业, 在线游戏. 这也是SOA的基石.

    安装

    可以官方网站下载安装二进制包,   在windows上解包,可以到apache-activemq-5.10.0inactivemq.bat运行ActiveMQ程序, 而在Linux上的apache-activemq-5.10.0-bin.tar.gz 
    wget方式下载,  tar zxvf activemq-x.x.x.tar.gz解包到一个目录就可以使用了.

    ActiveMQ可能需要以下端口1099(JMX),61616(默认的TransportConnector)

    windows查看监听端口:

    netstat -an|find "61616"

    Linux系统:

    netstat -an|grep 61616

    运行后可以打开web控制台:

    http://localhost:8161/admin

    在这儿,我们介绍一下.net下客户端, 从NuGet安装,

    Install-Package Apache.NMS.ActiveMQ

    Apache.NMS.ActiveMQ客户端还有一些高级特性:

    1. 消息组

    2.ActiveMQ steams

    3. Blog message

    4.Failover

    5.计划与延迟消息提交.

    6 异步发送

    由于篇幅有限,今天介绍到这儿, 希望对您软件开发有帮助. 您可能感兴趣的文章:

    集中队列的模式

    Database数据库切片模式

  • 相关阅读:
    将Python的Django框架与认证系统整合的方法
    将Python的Django框架与认证系统整合的方法
    Python的Asyncore异步Socket模块及实现端口转发的例子
    每天一个linux命令(3):du命令
    每天一个linux命令(2):file 命令
    Ubantu 使用extundelete恢复数据
    ubantu 单用户模式进入系统
    GDB 调试解析
    服务器搭建5 Samba实现文件共享
    服务器搭建4 安装其它库
  • 原文地址:https://www.cnblogs.com/adolfmc/p/4462409.html
Copyright © 2011-2022 走看看