Active MQ  C++实现通讯

背景知识:

ActiveMQ是一个易于使用的消息中间件。

消息中间件

我们简单的介绍一下消息中间件,对它有一个基本认识就好,消息中间件(MOM:Message Orient middleware)。

消息中间件有很多的用途和优点: 
1. 将数据从一个应用程序传送到另一个应用程序,或者从软件的一个模块传送到另外一个模块; 
2. 负责建立网络通信的通道,进行数据的可靠传送。 
3. 保证数据不重发,不丢失 
4. 能够实现跨平台操作,能够为不同操作系统上的软件集成技工数据传送服务

MQ

首先简单的介绍一下MQ,MQ英文名MessageQueue,中文名也就是大家用的消息队列,干嘛用的呢,说白了就是一个消息的接受和转发的容器,可用于消息推送。

下面进入我们今天的主题,为大家介绍ActiveMQ:

ActiveMQ

简要概述ActiveMQ

Apache ActiveMQ ™ is the most popular and powerful open source messaging and Integration Patterns server.
Apache ActiveMQ is fast, supports many Cross Language Clients and Protocols, comes with easy to use Enterprise Integration Patterns and many advanced features while fully supporting JMS 1.1 and J2EE 1.4. 

ActiveMQ是由Apache出品的,一款最流行的,能力强劲的开源消息总线。ActiveMQ是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,它非常快速,支持多种语言的客户端和协议,而且可以非常容易的嵌入到企业的应用环境中,并有许多高级功能。

什么情况下使用ActiveMQ?

  1. 多个项目之间集成 
    (1) 跨平台 
    (2) 多语言 
    (3) 多项目
  2. 降低系统间模块的耦合度,解耦 
    (1) 软件扩展性
  3. 系统前后端隔离 
    (1) 前后端隔离,屏蔽高安全区
  4. 多种语言和协议编写客户端。语言: Java, C, C++, C#, Ruby,
    Perl, Python, PHP。应用协议: OpenWire,Stomp REST,WS Notification,XMPP,AMQP
  5. 完全支持JMS1.1和J2EE 1.4规范 (持久化,XA消息,事务)
  6. 对Spring的支持,ActiveMQ可以很容易内嵌到使用Spring的系统里面去,而且也支持Spring2.0的特性
  7. 通过了常见J2EE服务器(如 Geronimo,JBoss 4, GlassFish,WebLogic)的测试,其中通过JCA 1.5 resource adaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE 1.4 商业服务器上
  8. 支持多种传送协议:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA
  9. 支持通过JDBC和journal提供高速的消息持久化
  10. 从设计上保证了高性能的集群,客户端-服务器,点对点
  11. 支持Ajax
  12. 支持与Axis的整合
  13. 可以很容易得调用内嵌JMS provider,进行测试

ActiveMQ特性列表

ActiveMQ默认使用的TCP连接端口是61616

应用场景:

消息队列在大型电子商务类网站,如京东、淘宝、去哪儿等网站有这深入的应用,队列的主要作用是消除高并发访问高峰,加快网站的响应速度。在不使用消息队列的情况下,用户的请求数据直接写入数据库,在高并发的情况下,会对数据库造成巨大的压力,同时也使得系统响应延迟加剧。在使用队列后,用户的请求发给队列后立即返回(当然不能直接给用户提示订单提交成功,京东上提示:您“您提交了订单,请等待系统确认”),再由消息队列的消费者进程从消息队列中获取数据,异步写入数据库。由于消息队列的服务处理速度远快于数据库,因此用户的响应延迟可得到有效改善。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

操作步骤

1.下载版本

ActiveMQ-cpp-2.2.6

apr-1.6.2

apr-iconv-1.2.1

apr-util-1.6.0

2.路径为D:\GCN\MQClient\Activemq-cpp\tags

去掉依赖库的版本号

apr-util 
,apr-1.6.2
,apr-iconv

3.打开D:\GCN\MQClient\Activemq-cpp\tags\activemq-cpp-2.2.6\vs2005-build

编译依赖关系为apr-util    -》  apr-iconv    -》  apr

  1. 注意事项

编译到libaprutil的时候,Debug依赖于expat.lib, release依赖于xml.lib.

Debug:

E:\GCN\20170831SVN_MAIN\trunk\Product\MQClient\apr-util\xml\expat\lib

Release:

  1. 编译vs2005-activemq

设置好依赖,附加库头文件,附加库lib路径。

  1. 编译vs2005-activemq-example

配置文件:

Vs2005-activemq-cpp.exe

activemq.cfg

##### 全局配置参数######

host_id=35

node_id=3236

cmdline = 1

Consumer 
= 1(生产者和消费者切换)

#配置重启

#reset_time = 0,20:00:00

reset_time = 06:15:00

sync_time = 0

sync_interval = 60

accept_sync_time = 0

#MQ配置

mq_url      
= tcp://10.1.6.2:61616

mq_user     
= jlt_mq

mq_pwd      
= jlt_mq123

mq_topic    
= jlt.srv.quote.engine.pubQuote.topic.queueName

#mq_topic   
= QUOTATION.WJF.TEST

#读共享队列

mem_que_name = QUEUE_MQ_SERVER

other_inst_multi = 1000

forex_inst_multi = 10000

#写共享队列

XQUE_NUM = 2

XQUE1.XQUE_NAME = MQ_QUOTATION3

XQUE1.WAIT_PERMIT = 10000

XQUE1.BUFFER_PERMIT = 10000

XQUE1.MAIN = 1

XQUE1.MODE = 1

XQUE2.XQUE_NAME = MQ_QUOTATION4

XQUE2.XQUE_TIMEOUT = 1000

XQUE2.WAIT_PERMIT = 10000

XQUE2.BUFFER_PERMIT = 10000

XQUE2.MAIN = 1

XQUE2.MODE = 1

Active MQ C++实现通讯记录的更多相关文章

  1. Active MQ C#实现

    原文链接: Active MQ C#实现 内容概要 主要以源码的形式介绍如何用C#实现同Active MQ 的通讯.本文假设你已经正确安装JDK1.6.x,了解Active MQ并有一定的编程基础. ...

  2. JMS 之 Active MQ 的消息传输

    本文使用Active MQ5.6 一.消息协商器(Message Broker) broke:消息的交换器,就是对消息进行管理的容器.ActiveMQ 可以创建多个 Broker,客户端与Active ...

  3. WP8.1 模仿手机通讯记录的选择框

    2016年11月6日 更新: 其实 这个有一个非常简单的方法.非常简单... ListView SelectionMode="Multiple" 这个一XAML  代码就可以解决了 ...

  4. 使用Active MQ在.net和java系统之间通信

    ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现 一.特性列表 ⒈ 多种语言和 ...

  5. JMS 之 Active MQ 启动嵌入式Broke

    一.如何启动active MQ 服务 (一).使用命令启动 /bin 目录下 ./activemq start 默认使用conf/activemq.xml 配置文件 b.[root@localhost ...

  6. java 通过jmx获取active mq队列消息

    一.修改active mq配置文件 修改\conf\activemq.xml,带下划线部分 <!-- Licensed to the Apache Software Foundation (AS ...

  7. Active MQ的初步探索

    参考链接: http://blog.csdn.net/jiuqiyuliang/article/details/46701559 JMS是jee规范,active MQ是该规范的实现 Active M ...

  8. 使用active mq

    1 windows下使用active mq 1.1 下载active mq 1.2 点击根目录\bin\win64\activemq.bat运行 1.3 登陆查看 http://localhost:8 ...

  9. 初探active mq

    mq(message queue),即消息队列,目前比较流行消息队列是active mq 和kafka.本文介绍如何简单的使用active mq. ActiveMQ官网下载地址:http://acti ...

随机推荐

  1. Hadoop学习---Hadoop的HBase的学习

    Hbase Hbase的特点: Hbase是bigtable的开源的仿制版本 建立在HDFS之上 可靠性,靠性能 大:一个表可以有上亿行,上百万列 面向列:面向列(族)的存储和权限控制,列(族)独立检 ...

  2. 沉淀,再出发:Git的再次思考

    沉淀,再出发:Git的再次思考 一.前言 使用git也有很久了,后来有一段时间一直没有机会去使用,现在想来总结一下自己学习了这么长时间的一些心得感悟,我写的博客一般都是开了一个轮廓和框架,等到以后有所 ...

  3. maven仓库使用HTTP代理,maven仓库使用本地jar

    setting.xml <proxies> <proxy> <id>proxy</id> <active>true</active&g ...

  4. 如何用SAP Cloud for Customer的手机App创建销售订单

    第一次启动App,设置一个初始化的pin code: 输入C4C tenant的url,用户名和密码: 登录进系统后,找到Sales Order工作中心: 可以看到系统里很多已有的销售订单了.点击屏幕 ...

  5. SQLmap简介以及防火墙绕过方法

    简介 许多现实中对于网站的攻击往往是由于网站没有及时更新或者对于用户的输入没有进行检查.从缓冲区溢出说起,这样一种针对系统脆弱性的威胁,最根本的问题还是在于对于用户的输入没有进行检查.作为主要威胁之一 ...

  6. GCD学习(五) dispatch_barrier_async

    先看段代码 dispatch_queue_t concurrentQueue = dispatch_queue_create("my.concurrent.queue", DISP ...

  7. SSD 单发多框检测

    其实现在用的最多的是faster rcnn,等下再弄项目~~~ 图像经过基础网络块,三个减半模块,每个减半模块由两个二维卷积层,加一个maxPool减半(通道数依次增加[16,32,64]) 然后是多 ...

  8. 【[HNOI2005]狡猾的商人】

    加权并查集 由于给出信息的是一些一个区间的和为多少,我们显然并不好处理出每一个点应该为多少,这我们根本做不到 但是我们想一下,如果要求一个区间\([l,r]\)的和,那么我们是不是可以利用前缀和\(p ...

  9. POJ 1845 Sumdiv 【二分 || 逆元】

    任意门:http://poj.org/problem?id=1845. Sumdiv Time Limit: 1000MS Memory Limit: 30000K Total Submissions ...

  10. iPhone 耳机在PC电脑上使用方法

    把主声道(Master)从正中间调整到最左或者最右就行了