Active MQ C++实现通讯记录

2023-05-16

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

转载于:https://www.cnblogs.com/ypdxcn/p/8966108.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • 技术之路,何以为径,更进一步?

    条条大路通罗马 xff0c 我以语言能力为突破口 xff0c 再进一步
  • 因参数innodb_undo_directory的配置问题,导致xtrabackup备份失败

    软件环境描述 centos7 3 mysql5 7 29 二进制安装包 xtrabckup2 4 18 二进制安装包 在进行数据库物理备份的时候 xff0c 遇到如下报错 2020 03 03 20 24 49 0x7f324f9cb740
  • 常用数据库的特点、应用场景信息整理

    关系型数据库 关系数据库 xff0c 是建立在关系模型基础上的数据库 xff0c 借助于集合代数等数学概念和方法来处理数据库中的数据 现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示 关系模型是由埃德加 科德于1970年首先提出
  • ASM磁盘组及磁盘 添加、删除

    一 相关概念 1 ASM 磁盘组 ASM存储管理除了ASM实例之外 xff0c 最大的组成部分就是ASM磁盘组 一个ASM磁盘组由过多个ASM磁盘组成 一个磁盘组内可以存放多个数据文件 xff0c 一个数据文件仅仅只能位于一个磁盘组内 xf
  • 分区表的导入导出 expdp&impdp Oracle 11.2.0.4

    分区表的导入导出 数据库版本 xff1a Oracle 11 2 0 4 expdp 导出 schema 当前有两个分区表 TABLE NAME PARTITION NAME TABLESPACE NAME TABLE1 SYS P57 N
  • expdp和impdp需要注意的地方

    1 expdp impdp需要注意的地方 1 1 参考 http blog itpub net 28869493 viewspace 1094164 DataPump 反映了整个导出 导入过程的完全革新 不使用常见的 SQL 命令 xff0
  • Sublime text 3 中文文件名显示方框怎么解决

    在sublime text 3中 xff0c Preference Settings User xff0c 最后加上一行 34 dpi scale 34 1 0 覆盖操作系统设置的DPI 34 font size 34 11 0 34 ig
  • Oracle expdp/impdp常用性能优化方法

    Oracle expdp impdp常用性能优化方法 转自 xff1a http blog chinaunix net uid 20785090 id 4088083 html expdp impdp在进行数据迁移时速度极快 通过一定的优化
  • 移动端webUI框架(HTML5手机框架)

    淘宝SUI Mobile框架 官网地址 xff1a http m sui taobao org SUI Mobile 是一套基于 Framework7 开发的UI库 它非常轻量 精美 xff0c 只需要引入我们的CDN文件就可以使用 xff
  • 在线创建dg环境 adg

    在线创建dg环境 adg 在两个库的环境变量中添加如下 export TNS ADMIN 61 ORACE HOME network admin 主库 xff1a lsnrctl stop Shutdown immediate Startu
  • Ubuntu18.04 编译 Android10.0 系统环境

    Ubuntu18 04 编译 Android10 0 系统环境 xff0c 每次搞一个新电脑或环境 xff0c 编译总要搞半天 xff0c 虽然知道是环境安装的问题 xff0c 但确实很烦和耗时 xff0c 关键是报错各异 思路 xff1a
  • 如何在Init里添加一个自启动程序,Server

    一 添加一个系统服务的权限声明 情景 xff1a 定义一个init启动的service xff0c demo service xff0c 对应的执行文件是 system bin demo 1 创建一个demo te在 device medi
  • [解决]Eclipse不能开发Web项目

    因为好久没有用Eclipse开发Web项目 xff0c 突然 xff0c 今天开发Web项目的时候 xff0c 怎么也建立不了Web项目 所以揣想是Eclipse版本不对或者是没有装插件 因为自己的Eclipse已经安装了很多其他的插件 x
  • 解决Tomcat访问Web显示HTTP Status 404 - /hrm/

    步骤 xff1a 1 打开Eclipse xff0c 双击Tomcat 2 更改Deploy path xff0c 它后面的值默认是 34 wtpwebapps 34 把它改成 34 webapps 34 也就是tomcat中发布项目所在的
  • Cordova系列学习教程01. 了解Cordova

    转载请标明出处 xff1a http blog csdn net junzaivip article details 51151924 xff0c 本文出自 junzaivip博客 概念 xff0c phonegap与cordova之间的区
  • 2016年小结 2017年展望

    转载请标明出处 xff1a http blog csdn net junzaivip article details 54231935 xff0c 本文出自 junzaivip博客 每个人的世界里有的不止是光鲜 xff0c 其实还有更多别人
  • 如何将本地已有的项目加入git版本管理

    本文地址 xff1a https blog csdn net junzaivip article details 82626584 如果自己已经新建的一个项目 xff0c 暂时没有加入项目管理 xff0c 且名称不变 xff0c 如何加入
  • 基于github搭建自己的个人博客

    今天一时兴起 xff0c 看见别人使用的github io搭建了属于自己的个人博客 xff0c 我也使用github搭建一个自己的博客系统 xff1b 步骤一 xff1a 创建一个自己的github账号 xff1b xff08 略 xff0
  • ES6基本用法

    ES6基本用法 字符串的基本用法 let junzai 61 34 史慧君 34 let blog 61 34 淘宝多的是 xff0c 都是正版 xff0c 放心买 学习字符串 34 let blog 61 96 淘宝多的是 xff0c 都
  • Active MQ C++实现通讯记录

    Active MQ C 43 43 实现通讯 背景知识 xff1a ActiveMQ是一个易于使用的消息中间件 消息中间件 我们简单的介绍一下消息中间件 xff0c 对它有一个基本认识就好 xff0c 消息中间件 xff08 MOM xff