精华内容
下载资源
问答
  • 常用的mq

    2017-08-21 10:42:40
    是使用Erlang编写一个开源消息队列,本身支持很多协议:AMQP,XMPP, SMTP, STOMP,也正是如此,使它变非常重量级,更适合于企业级开发。同时实现了一个经纪人(Broker)构架,这意味着消息在发送给客户端...

    RabbitMQ

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

    Redis

    是一个Key-Value的NoSQL数据库,开发维护很活跃,虽然它是一个Key-Value数据库存储系统,但它本身支持MQ功能,所以完全可以当做一个轻量级的队列服务来使用。对于RabbitMQ和Redis的入队和出队操作,各执行100万次,每10万次记录一次执行时间。测试数据分为128Bytes、512Bytes、1K和10K四个不同大小的数据。实验表明:入队时,当数据比较小时redis的性能要高于RabbitMQ,而如果数据大小超过了10K,Redis则慢的无法忍受;出队时,无论数据大小,Redis都表现出非常好的性能,而RabbitMQ的出队性能则远低于Redis。

     

    入队

    出队

     

    128B

    512B

    1K

    10K

    128B

    512B

    1K

    10K

    Redis

    16088

    15961

    17094

    25

    15955

    20449

    18098

    9355

    RabbitMQ

    10627

    9916

    9370

    2366

    3219

    3174

    2982

    1588

    ZeroMQ

    号称最快的消息队列系统,尤其针对大吞吐量的需求场景。ZMQ能够实现RabbitMQ不擅长的高级/复杂的队列,但是开发人员需要自己组合多种技术框架,技术上的复杂度是对这MQ能够应用成功的挑战。ZeroMQ具有一个独特的非中间件的模式,你不需要安装和运行一个消息服务器或中间件,因为你的应用程序将扮演了这个服务角色。你只需要简单的引用ZeroMQ程序库,可以使用NuGet安装,然后你就可以愉快的在应用程序之间发送消息了。但是ZeroMQ仅提供非持久性的队列,也就是说如果down机,数据将会丢失。其中,Twitter的Storm中使用ZeroMQ作为数据流的传输。

    ActiveMQ

    是Apache下的一个子项目。 类似于ZeroMQ,它能够以代理人和点对点的技术实现队列。同时类似于RabbitMQ,它少量代码就可以高效地实现高级应用场景。RabbitMQ、ZeroMQ、ActiveMQ均支持常用的多种语言客户端 C++、Java、.Net,、Python、 PHP、 Ruby等。

    Jafka/Kafka

    Kafka是Apache下的一个子项目,是一个高性能跨语言分布式Publish/Subscribe消息队列系统,而Jafka是在Kafka之上孵化而来的,即Kafka的一个升级版。具有以下特性:快速持久化,可以在O(1)的系统开销下进行消息持久化;高吞吐,在一台普通的服务器上既可以达到10W/s的吞吐速率;完全的分布式系统,Broker、Producer、Consumer都原生自动支持分布式,自动实现复杂均衡;支持Hadoop数据并行加载,对于像hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka通过Hadoop的并行加载机制来统一了在线和离线的消息处理,这一点也是本课题所研究系统所看重的。Apache Kafka相对于ActiveMQ是一个非常轻量级的消息系统,除了性能非常好之外,还是一个工作良好的分布式系统。

    其他一些队列列表HornetQ、Apache Qpid、Sparrow、Starling、Kestrel、Beanstalkd、Amazon SQS就不再一一分析。

    RabbitMQ

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

    Redis

    是一个Key-Value的NoSQL数据库,开发维护很活跃,虽然它是一个Key-Value数据库存储系统,但它本身支持MQ功能,所以完全可以当做一个轻量级的队列服务来使用。对于RabbitMQ和Redis的入队和出队操作,各执行100万次,每10万次记录一次执行时间。测试数据分为128Bytes、512Bytes、1K和10K四个不同大小的数据。实验表明:入队时,当数据比较小时redis的性能要高于RabbitMQ,而如果数据大小超过了10K,Redis则慢的无法忍受;出队时,无论数据大小,Redis都表现出非常好的性能,而RabbitMQ的出队性能则远低于Redis。

     

    入队

    出队

     

    128B

    512B

    1K

    10K

    128B

    512B

    1K

    10K

    Redis

    16088

    15961

    17094

    25

    15955

    20449

    18098

    9355

    RabbitMQ

    10627

    9916

    9370

    2366

    3219

    3174

    2982

    1588

    ZeroMQ

    号称最快的消息队列系统,尤其针对大吞吐量的需求场景。ZMQ能够实现RabbitMQ不擅长的高级/复杂的队列,但是开发人员需要自己组合多种技术框架,技术上的复杂度是对这MQ能够应用成功的挑战。ZeroMQ具有一个独特的非中间件的模式,你不需要安装和运行一个消息服务器或中间件,因为你的应用程序将扮演了这个服务角色。你只需要简单的引用ZeroMQ程序库,可以使用NuGet安装,然后你就可以愉快的在应用程序之间发送消息了。但是ZeroMQ仅提供非持久性的队列,也就是说如果down机,数据将会丢失。其中,Twitter的Storm中使用ZeroMQ作为数据流的传输。

    ActiveMQ

    是Apache下的一个子项目。 类似于ZeroMQ,它能够以代理人和点对点的技术实现队列。同时类似于RabbitMQ,它少量代码就可以高效地实现高级应用场景。RabbitMQ、ZeroMQ、ActiveMQ均支持常用的多种语言客户端 C++、Java、.Net,、Python、 PHP、 Ruby等。

    Jafka/Kafka

    Kafka是Apache下的一个子项目,是一个高性能跨语言分布式Publish/Subscribe消息队列系统,而Jafka是在Kafka之上孵化而来的,即Kafka的一个升级版。具有以下特性:快速持久化,可以在O(1)的系统开销下进行消息持久化;高吞吐,在一台普通的服务器上既可以达到10W/s的吞吐速率;完全的分布式系统,Broker、Producer、Consumer都原生自动支持分布式,自动实现复杂均衡;支持Hadoop数据并行加载,对于像hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka通过Hadoop的并行加载机制来统一了在线和离线的消息处理,这一点也是本课题所研究系统所看重的。Apache Kafka相对于ActiveMQ是一个非常轻量级的消息系统,除了性能非常好之外,还是一个工作良好的分布式系统。

    其他一些队列列表HornetQ、Apache Qpid、Sparrow、Starling、Kestrel、Beanstalkd、Amazon SQS就不再一一分析。

    RocketMQ


      RocketMQ是一款分布式、队列模型的消息中间件,具有以下特点: 能够保证严格的消息顺序、提供丰富的消息拉取模式 、高效的订阅者水平扩展能力

    实时的消息订阅机制、亿级消息堆积能力





    展开全文
  • 最近在配置MQ,记下了一些常用的MQ命令,如下:创建队列管理器crtmqm –q QMgrName-q是指创建缺省的队列管理器删除队列管理器dltmqm QmgrName启动队列管理器strmqm QmgrName如果是启动默认的队列管理器,可以不带其名字...

    最近在配置MQ,记下了一些常用的MQ命令,如下:

    创建队列管理器

    crtmqm –q QMgrName

    -q是指创建缺省的队列管理器

    删除队列管理器

    dltmqm QmgrName

    启动队列管理器

    strmqm QmgrName

    如果是启动默认的队列管理器,可以不带其名字

    停止队列管理器

    endmqm QmgrName 受控停止

    endmqm –i QmgrName 立即停止

    endmqm –p QmgrName 强制停止

    显示队列管理器

    dspmq –m QmgrName

    运行MQ命令

    runmqsc QmgrName

    如果是默认队列管理器,可以不带其名字

    往队列中放消息

    amqsput QName QmgrName

    如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字

    从队列中取出消息

    amqsget QName QmgrName

    如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字

    启动通道

    runmqchl –c ChlName –m QmgrName

    启动侦听

    runmqlsr –t TYPE –p PORT –m QMgrName

    停止侦听

    endmqlsr -m QmgrName

    下面是在MQ环境中可以执行的MQ命令(即在runmqsc环境下可以敲的命令)

    定义持久信队列

    DEFINE QLOCAL(QNAME) DEFPSIST(YES) REPLACE

    设定队列管理器的持久信队列

    ALTER QMGR DEADQ(QNAME)

    定义本地队列

    DEFINE QL(QNAME) REPLACE

    定义别名队列

    DEFINE QALIAS(QALIASNAME) TARGQ(QNAME)

    远程队列定义

    DEFINE QREMOTE(QRNAME) +

    RNAME(AAA) RQMNAME(QMGRNAME) +

    XMITQ(QTNAME)

    定义模型队列

    DEFINE QMODEL(QNAME) DEFTYPE(TEMPDYN)

    定义本地传输队列

    DEFINE QLOCAL(QTNAME) USAGE(XMITQ) DEFPSIST(YES) +

    INITQ(SYSTEM.CHANNEL.INITQ)+

    PROCESS(PROCESSNAME) REPLACE

    创建进程定义

    DEFINE PROCESS(PRONAME) +

    DESCR(‘STRING’)+

    APPLTYPE(WINDOWSNT)+

    APPLICID(’ runmqchl -c SDR_TEST -m QM_ TEST’)

    其中APPLTYPE的值可以是:CICS、UNIX、WINDOWS、WINDOWSNT等

    创建发送方通道

    DEFINE CHANNEL(SDRNAME) CHLTYPE(SDR)+

    CONNAME(‘100.100.100.215(1418)’) XMITQ(QTNAME) REPLACE

    其中CHLTYPE可以是:SDR、SVR、RCVR、RQSTR、CLNTCONN、SVRCONN、CLUSSDR和CLUSRCVR。

    创建接收方通道

    DEFINE CHANNEL(SDR_ TEST) CHLTYPE(RCVR) REPLACE

    创建服务器连接通道

    DEFINE CHANNEL(SVRCONNNAME) CHLTYPE(SVRCONN) REPLACE

    显示队列的所有属性

    DISPLAY QUEUE(QNAME) [ALL]

    显示队列的所选属性

    DISPLAY QUEUE(QNAME) DESCR GET PUT

    DISPLAY QUEUE(QNAME)MAXDEPTH CURDEPTH

    显示队列管理器的所有属性

    DISPLAY QMGR [ALL]

    显示进程定义

    DISPLAY PROCESS(PRONAME)

    更改属性

    ALTER QMGR DESCR(‘NEW DESCRIPTION’)

    ALTER QLOCAL(QNAME) PUT(DISABLED)

    ALTER QALIAS(QNAME) TARGQ(TARGQNAME)

    删除队列

    DELETE QLOCAL(QNAME)

    DELETE QREMOTE(QRNAME)

    清除队列中的所有消息

    CLEAR QLOCAL(QNAME)

    以下是一些高级配置的命令:

    amqmcert                  配置SSL证书

    amqmdain                配置windows上的MQ服务

    crtmqcvx                    转换数据

    dmpmqaut                转储对象权限管理

    dmpmqlog                转储日志管理

    dspmq                         显示队列管理器

    dspmqaut                  显示打开对象的权限

    dmpmqcap               显示处理程序容量和处理程序数

    dspmqcsv                 显示命令服务器状态

    dspmqfls                   显示文件名

    dspmqtrc                   跟踪MQ输出(HP-UNIX LINUX Solaris)

    dspmqrtn                   显示事务的详细信息

    endmqcsv                 停止队列管理器上的命令服务器

    strmqcsv                    启动队列管理器上的命令服务器

    endmqtrc                   停止跟踪

    rcdmqimg                  向日志写对象的映像

    rcmqobj                      根据日志中的映像重新创建一个对象

    rsvmqtrn                     提交或逆序恢复事务

    posted on 2007-12-26 17:26 john 阅读(2487) 评论(0)  编辑  收藏 所属分类: Linux

    展开全文
  • 2、加权轮询法:给配置高、负载低机器配置更高权重,让其处理更多请求;而配置低、负载高机器,给其分配较低权重,降低其系统负载。 3、随机法:随机选取一个服务器连接地址。 4、加权随机法:按照...
  • 常用的MQ命令

    2019-09-24 15:54:59
    如果是启动默认队列管理器,可以不带其名字 停止队列管理器 endmqm QmgrName 受控停止 endmqm –i QmgrName 立即停止 endmqm –p QmgrName 强制停止 显示队列管理器 dspmq –m QmgrNa...

    删除队列管理器

    dltmqm QmgrName

     

    启动队列管理器

    strmqm QmgrName

    如果是启动默认的队列管理器,可以不带其名字

     

    停止队列管理器

    endmqm QmgrName 受控停止

     

    endmqm –i QmgrName 立即停止

     

    endmqm –p QmgrName 强制停止

     

    显示队列管理器

    dspmq –m QmgrName

     

    运行MQ命令

    runmqsc QmgrName

    如果是默认队列管理器,可以不带其名字

     

    往队列中放消息

    amqsput QName QmgrName

    如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字

     

    从队列中取出消息

    amqsget QName QmgrName

    如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字

     

    启动通道

    runmqchl –c ChlName –m QmgrName

     

    启动侦听

    runmqlsr –t TYPE –p PORT –m QMgrName

     

    停止侦听

    endmqlsr -m QmgrName

     

    下面是在MQ环境中可以执行的MQ命令(即在runmqsc环境下可以敲的命令)

     

    定义持久信队列

    DEFINE QLOCAL(QNAME) DEFPSIST(YES) REPLACE

     

    设定队列管理器的持久信队列

    ALTER QMGR DEADQ(QNAME)

     

    定义本地队列

    DEFINE QL(QNAME) REPLACE

     

    定义别名队列

    DEFINE QALIAS(QALIASNAME) TARGQ(QNAME)

     

    远程队列定义

    DEFINE QREMOTE(QRNAME) +

    RNAME(AAA) RQMNAME(QMGRNAME) +

    XMITQ(QTNAME)

     

    定义模型队列

    DEFINE QMODEL(QNAME) DEFTYPE(TEMPDYN)

     

    定义本地传输队列

    DEFINE QLOCAL(QTNAME) USAGE(XMITQ) DEFPSIST(YES) +

    INITQ(SYSTEM.CHANNEL.INITQ)+

    PROCESS(PROCESSNAME) REPLACE

     

    创建进程定义

    DEFINE PROCESS(PRONAME) +

    DESCR(‘STRING’)+

    APPLTYPE(WINDOWSNT)+

    APPLICID(’ runmqchl -c SDR_TEST -m QM_ TEST’)

    其中APPLTYPE的值可以是:CICS、UNIX、WINDOWS、WINDOWSNT等

     

    创建发送方通道

    DEFINE CHANNEL(SDRNAME) CHLTYPE(SDR)+

    CONNAME(‘100.100.100.215(1418)’) XMITQ(QTNAME) REPLACE

    其中CHLTYPE可以是:SDR、SVR、RCVR、RQSTR、CLNTCONN、SVRCONN、CLUSSDR和CLUSRCVR。

     

    创建接收方通道

    DEFINE CHANNEL(SDR_ TEST) CHLTYPE(RCVR) REPLACE

     

    创建服务器连接通道

    DEFINE CHANNEL(SVRCONNNAME) CHLTYPE(SVRCONN) REPLACE

     

    显示队列的所有属性

    DISPLAY QUEUE(QNAME) [ALL]

     

    显示队列的所选属性

    DISPLAY QUEUE(QNAME) DESCR GET PUT

    DISPLAY QUEUE(QNAME)MAXDEPTH CURDEPTH

     

    显示队列管理器的所有属性

    DISPLAY QMGR [ALL]

     

    显示进程定义

    DISPLAY PROCESS(PRONAME)

     

    更改属性

    ALTER QMGR DESCR(‘NEW DESCRIPTION’)

    ALTER QLOCAL(QNAME) PUT(DISABLED)

    ALTER QALIAS(QNAME) TARGQ(TARGQNAME)

     

    删除队列

    DELETE QLOCAL(QNAME)

    DELETE QREMOTE(QRNAME)

     

    清除队列中的所有消息

    CLEAR QLOCAL(QNAME)

    以下是一些高级配置的命令:

    amqmcert                  配置SSL证书

    amqmdain                配置windows上的MQ服务

    crtmqcvx                    转换数据

    dmpmqaut                转储对象权限管理

    dmpmqlog                转储日志管理

    dspmq                         显示队列管理器

    dspmqaut                  显示打开对象的权限

    dmpmqcap               显示处理程序容量和处理程序数

    dspmqcsv                 显示命令服务器状态

    dspmqfls                   显示文件名

    dspmqtrc                   跟踪MQ输出(HP-UNIX LINUX Solaris)

    dspmqrtn                   显示事务的详细信息

    endmqcsv                 停止队列管理器上的命令服务器

    strmqcsv                    启动队列管理器上的命令服务器

    endmqtrc                   停止跟踪

    rcdmqimg                  向日志写对象的映像

    rcmqobj                      根据日志中的映像重新创建一个对象

    rsvmqtrn                     提交或逆序恢复事务

     

     

    转载于:https://www.cnblogs.com/DaweiJ/p/8463435.html

    展开全文
  • ActiveMQ:支持万级吞吐量,较成熟完善;官方更新迭代较少,社区活跃度不是很高,有消息丢失情况。 RabbitMQ:延时低,微妙级延时,社区活跃度高,bug 修复及时,而且提供了很友善后台界面;用 Erlang 语言...
    • ActiveMQ:支持万级的吞吐量,较成熟完善;官方更新迭代较少,社区的活跃度不是很高,有消息丢失的情况。
    • RabbitMQ:延时低,微妙级延时,社区活跃度高,bug 修复及时,而且提供了很友善的后台界面;用 Erlang 语言开发,只熟悉 Java 的无法阅读源码和自行修复 bug。
    • RocketMQ:阿里维护的消息中间件,可以达到十万级的吞吐量,支持分布式事务。
    • Kafka:分布式的中间件,最大优点是其吞吐量高,一般运用于大数据系统的实时运算和日志采集的场景,功能简单,可靠性高,扩展性高;缺点是可能导致重复消费。

     

     


    【Java面试题与答案】整理推荐

     

    展开全文
  • AMQP(Advanced Message Queuing Protocol)高级消息队列协议,是应用层协议一个开放标准,为面向消息中间件而设计。 AMQP 主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全性。 ...
  • 最近需要用到MQ组件,对具体组件选型有一些调研,集合网上已有一些材料,将粗略归纳选型材料展示成列表形式,方便比对: 参考:https://www.cnblogs.com/imstudy/p/11064589.html
  • 作者:frank-liu简介在前面一篇文章里讨论过几种应用系统集成方式,发现实际上面向消息队列集成方案算是一个总体比较合理选择。这里,我们先针对具体一个消息队列Activemq基本通信方式进行探讨。activemq...
  • // 等同于下面形式(罕用) //rocketMQTemplate.convertAndSend("Topic-Normal:TagA","Hello MQ".getBytes()); } 异步发送 原理: 异步发送是指发送方收回一条音讯后,不等服务端返回响应,接着发送下一条音讯...
  • 一、RabbitMQ是使用Erlang编写一个开源消息队列,本身支持很多协议:AMQP,XMPP, SMTP, STOMP,也正是如此,使它变非常重量级,更适合于企业级开发。同时实现了一个经纪人(Broker)构架,这意味着消息在...
  • MQ常用命令

    千次阅读 2013-04-10 21:55:18
    常用的MQ命令 最近在配置MQ,记下了一些常用的MQ命令,如下: 创建队列管理器 crtmqm –q QMgrName -q是指创建缺省的队列管理器 删除队列管理器 dltmqm QmgrName 启动队列管理器 strmqm QmgrName ...
  • WebSphere MQ 一些常用的命令

    千次阅读 2017-08-04 17:44:47
    配置MQ,一些常用的MQ命令,如下:创建队列管理器 crtmqm –q QMgrName -q是指创建缺省的队列管理器 删除队列管理器 dltmqm QmgrName 启动队列管理器 strmqm QmgrName 如果是启动默认的队列管理器,可以不带其名字 停止...
  • MQ(Message Queue)是一个常用的消息中间件,在各种场景都能见到MQ的身影,其最主要的三个场景分别是异步、解耦、削峰。 异步:当一个交易的链路涉及多个系统的互相调用时,系统处理完毕,返回结果的时长会比较长,...
  • Websphere MQ常用命令

    2009-04-02 20:12:15
    这是我在运维工作中常用的MQ命令,也有一部分从网上查到的,希望对大家有所帮助!
  • 最近学习了一下MQ的相关知识,就目前最常用的4个MQ中间件做一个简单的总结,非常片面和不成熟,欢迎指正 1. ActiveMQ 优点:技术成熟;功能强大 缺点:小概率消息丢失;社区不活跃,版本维护周期长,有可能会发生...
  • 最近在配置MQ,记下了一些常用的MQ命令,如下: 创建队列管理器 删除队列管理器 启动队列管理器 停止队列管理器 显示队列管理器 运行MQ命令 往队列中放消息 从队列中取出消息 启动通道 启动侦听 停止侦听 下面...
  • Java常用MQ的比较

    2020-01-14 16:33:43
    Kafka RabbitMQ RocketMQ ...没有专门写rocketmq书,网上资料良莠不齐,官方文档很简洁,但是对技术细节没有过多描述 开发语言 Scala Erlang java java 支持协议 自己定义一套…(基于TCP...
  • IBM MQ常用的命令

    万次阅读 2018-08-16 11:51:28
    1、通道:指MQ访问一个物理API接口,因为MQ都实现了JMS协议,底层走是SOCKET, 而通道就是封装了协议和操作SOCKET一个接口,我们连MQ的时候,没有显示声明SOCKET连接等,就是因为有通道存在。 2、 Q:...
  • mq常用总结

    2019-02-13 09:59:16
    常用方法:  public MQQueueManager(String queueManagerName)―――建立一个管理器实例 创建队列管理器有两种方式: 1:绑定方式,这种方式要求MQ服务器与应用程序同属一台服务器,效率比较高。 2:客户机...
  • 常用MQ及其原理

    万次阅读 2018-07-20 17:56:42
    mq为了解决什么问题? 1、异步通信 有些业务不想也不需要立即处理消息。消息队列提供了异步处理机制,允许用户把一个消息放入队列,但并不立即处理它。想向队列中放入多少消息就放多少,然后在需要时候再去处理...
  • websphere mq常用命令

    2007-05-28 15:12:00
    最近在配置MQ,记下了一些常用的MQ命令,如下:创建队列管理器 crtmqm –q QMgrName -q是指创建缺省的队列管理器 删除队列管理器 dltmqm QmgrName 启动队列管理器 strmqm QmgrName 如果是启动默认的队列管理器,可以不...
  • websphere mq常用命令

    2007-12-12 15:41:04
    [color=darkred]转自:... 最近在配置MQ,记下了一些常用的MQ命令,如下: 创建队列管理器 crtmqm –q QMgrName -q是指创建缺省的队列管理器 删除队列管理器 dltmqm QmgrName 启动队列...
  • 常用MQ命令

    2018-09-10 21:37:28
    runmqsc QM_APPLE 启动队列管理器 QM_APPLE MQSC。 define qlocal (Q1) 穿件本地队列 end amqsput Q1 QM_APPLE 放入队列 amqsget Q1 QM_APPLE 获取队列内容 crtmqm QM_ORANGE 创建发送队列管理器...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,184
精华内容 473
关键字:

常用的mq