ActiveMQ学习笔记(三)——客户端应用开发

ActiveMQ消息队列的应用 C#客户端 Web后端 写在前面 整个项目就是实现C#客户端往消息队列生产10W条消息,Ajax Web读取这10W条消息,后台采用Tomcat。 项目搭建环境: jdk1.7.0_04 MyEclipse10.6apache-activemq-5.14.0-bin.zip Apache.NMS.ActiveMQ-1.7.2-bin.zipVS2013 后台搭建,Ajax 阅读详情

一、客户端开发

可以根据实际情况选择合适的协议,默认协议是OpenWire,通用协议(如果未来可能用其它消息队列组件替换ActiveMQ)可以考虑MQTT、AMQP等协议。

  • Java开发

经典版安装包解压缩后,/examples目录下有各个协议的范例代码可以参考。

  • .Net开发

Apache官方提供了.Net的组件库,叫做NMS Clients,由API接口(Apache.NMS.dll)和Provider组成,每个协议一个Provider(dll文件),所以只要下载这两个组件使用即可,/examples目录下也有对应的范例。

但官方没有提供MQTT的Provider,也没有范例代码。可通过NuGet上搜索MQTT来获取第三方dll完成开发,如M2Mqtt.Net。

  • Web开发

可通过websocket技术实现消息收发;

经典版的MQTT、STOMP都支持websocket,但需要单独配置一个TransportConnector,单独的端口,/examples目录下有对应的范例代码;

Artemis的MQTT、STOMP、AMQP都支持WebSocket,而且不需要单独配置Acceptor,不另开端口。

 

二、SSL/TLS支持

经典版和Artemis都支持TLS1.2,基本步骤(单向认证为例):

  • 在服务端创建密钥对,并导出证书供客户端使用
keytool -genkey -alias broker -keyalg RSA -keystore broker.ks

keytool -export -alias broker -keystore broker.ks -file broker_cert
  • 配置ActiveMQ加入SSL支持

经典版

在conf/activemq.xml的broker节点下增加sslContext配置

<sslContext>

<sslContext keyStore="file:${activemq.base}/conf/broker.ks" keyStorePassword="123456"/>

<!--如果是双向认证,还需要配置trustStore 和trustStorePassword 属性-->

</sslContext>

配置transportConnector,协议头加上“+ssl”即可,openwire是例外,直接用ssl即可。

Artemis

编辑<实例>/etc/broker.xml的<acceptor>节点,在末尾增加如下URL参数:

sslEnabled=true;keyStorePath=./broker.ks;keyStorePassword=123456
  • 客户端

Java

导入服务端证书为KeyStore

keytool -import -alias broker -keystore client.ts -file broker_cert

改用合适的SslConnectionFactory并设置KeyStore和密码,例如:

ActiveMQSslConnectionFactory _sslConnFactory = new ActiveMQSslConnectionFactory("ssl://xxx.yyy.com:61616");//一定要用域名,可借助host文件
_sslConnFactory.setTrustStore("F:\\Java\\MqDemo\\client.ts");
_sslConnFactory.setTrustStorePassword("123456");

.Net

.Net直接使用服务端导出的证书文件即可,如果是NMS Clients,只需要修改连接URI,加上相关参数即可

ssl://xxx.yyy.com:61616?transport.SslProtocol=Tls12&transport.ClientCertFilename=broker_cert&transport.AcceptInvalidBrokerCert=true

如果用的是M2Mqtt.Net,调整构造函数参数和增加回调函数即可。

String certFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "broker_cert");
mqtt = new MqttClient(_hostname, _port, true, new X509Certificate(certFile), null, 
     MqttSslProtocols.TLSv1_2, new emoteCertificateValidationCallback(caValidCallback));

 

 

 

 

 

Docker安装ActiveMQ 在安装完Docker的机器上,安装activeMQ。 在docker hub上搜了一下activeMQ的镜像,然后选择了,下载量最多的和start最多的,但是上次更新已经是三年前了。 拉取镜像:docker pull webcenter/activemq 查看镜像:docker images Docker运行ActiveMQ镜像 首先创建挂载目录: mkdir /usr/soft/activemq mkdir /usr/soft/activemq/log 运行activeMQ镜像: 阅读详情

相关推荐

Linux 下的 ActiveMQ C++ 客户端开发

本文主要针对 CentOS 7 x64(Linux)环境 ActiveMQ CPP 的编译及客户端开发

寒风飘絮的博客 4579

Apache ActiveMQ NMS OpenWire 客户端库指南

Apache ActiveMQ NMS OpenWire 客户端库指南 一、项目介绍 Apache ActiveMQ NMS OpenWire 是一个.NET客户端库,旨在通过原生OpenWire协议与Apache ActiveMQ消息代理进行通信。此客户端不仅支持基本功能,还提供了一系列高级特性包括Failover(故障转移)、Discovery(服务发现)、SSL安全以及Message Com...

gitblog_00137的博客 1041

activemq ssl双向认证连接

使用activemq依赖库连接, 该项目为java工程,内有ssl证书生成方式链接,不清楚可私信

MQTT协议通俗讲解

原文链接:https://blog.youkuaiyun.com/u011216417/article/details/69666752 参考 Reference 协议文档 Offical Docs v3.1.1 英文原版 中文翻译版 其他资源 网站 MQTT官方主页 Eclipse Paho 项目主页 测试工具 MQTT Spy(基于JDK)...

Linux C/C++后台开发 2661

ActiveMQ客户端

此附件是Apache下面的一个ActiveMq客户端,如果需要在本地调试,不链接远程服务器的MQ可以下载研究。

Chatbox使用指南

Chatbox使用指南

weixin_65289420的博客 2万+

ActiveMQ 安全机制与企业级实践(二)

认证授权配置、加密通信、消息过滤与审计监控方案。

1036

STM32巡线小车PID调参实战:从五路灰度传感器数据到稳定运行的避坑指南

本文详细介绍了STM32巡线小车的PID调参实战,从五路灰度传感器数据处理到PID参数优化,提供了系统化的调试方法和常见问题解决方案。通过加权平均法计算偏移量,逐步调整比例、积分、微分参数,实现小车稳定巡线。文章还涵盖了定时器配置、控制周期优化及高级调试技巧,帮助开发者避开常见陷阱,提升巡线性能。

weixin_42570484的博客 192

Kafka生产者的使用和原理

本文将学习Kafka生产者的使用和原理,文中使用的kafka-clients版本号为2.6.0。下面进入正文,先通过一个示例看下如何使用生产者API发送消息。publicclassP...

Java笔记虾 729

Qt快速读取Excel文件

网上很多读取方式都是如下形式,太慢了,打开文件+读取文件要6s以上,实在是受不了! QAxObject excel("Excel.Application"); excel.setProperty("Visible", false); QAxObject *work_books = excel.querySubObject("WorkBooks"); work_boo...

c+c++的博客 2万+

[cadence]Allegro STEP-3D模型导入、匹配、导出的方法及注意事项

如果 Avaliable里面没有和symbols对应的文件,说明没有对应的3D模型,这时候需要在你的step路径下创建y与 .dra 封装文件相同名称的。选择好 Output file 和 name 之后呢,点击 Export。首先打开Setup - Step Package Mapping。注意:路径中不能有中文名称,有的话你会发现不能导出,也不会报错。在路径下将下载或者自己做的 3D模型文件改名之后,重新打开。可在View -> 3D View。

LuDvei的博客 2万+

ActiveMQ-学习笔记

activeMQ的学习笔记-简易版

weixin_47135811的博客 4709

服务器被矿工入侵记录

一次服务器被矿工入驻的处理记录

王瑞的技术专栏 1332

activemq java客户端,ActiveMQ客户端配置使用

一、通过JNDI来使用ActiveMQ1、jndi配置JMS对象java.naming.factory.initial =org.apache.activemq.jndi.ActiveMQInitialContextFactory# use the following property to configure the default connectorjava.naming.provider.u...

weixin_39755136的博客 633

SpringBoot实现电子发票生成

电子发票是近年来比较流行的一种票据形式,它取代了以往传统的纸质发票,具有减少纸张浪费、方便有效查验等优点。本文将介绍如何使用Spring Boot和Vue.js构建一个仿真电子发票生成应用程序,借助微信二维码扫描功能和第三方库,实现用户扫描二维码获取发票信息并填写相关开票信息,最后生成电子发票。在本文中,我们介绍了如何使用Spring Boot和Vue.js构建一个仿真电子发票生成应用程序,借助微信二维码扫描功能和第三方库,实现用户扫描二维码获取发票信息并填写相关开票信息,最后生成电子发票。

不愧是暮言的博客 6090

RK3588之内存带宽计算及达成率

本章来和大家介绍一下内存带宽的计算与达成率

文艺小少年的博客 1813

ActiveMQ的PHP、Python客户端

ActiveMQ这款开源消息服务器提供了多语言支持,除了一般的Java客户端以外,还可以使用C/C++、PHP、Python、JavaScript(Ajax)等语言开发客户端。最近由于项目需要,需要提供PHP和Python的主题订阅客户端。这里作为总结,列出这两种语言客户端的简单安装和使用。 对于PHP和Python,可以通过使用STOMP协议与消息服务器进行通讯。在ActiveMQ的...

ah8866的博客 333

2025年广东省职业院校技能大赛高职组“区块链技术应用”正式赛题解析答案(标准答案参阅)

某公司规划开发一个区块链供应链金融平台,包括核心企业、供应商、银行等角色,通过智能合约代码逐步构建区块链供应链金融平台的基本功能,实现银行向核心企业提供授信并发行数字凭证,企业与企业之间转让数字凭证。此外需要完成区块链供应链金融平台的前后端,实现基本的业务逻辑

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 1268

ActiveMQ学习笔记

微服务架构后,链式调用是我们在写程序时候的一般流程,为了完成一个整体功能会将其拆分成多个函数(或子模块),比如模块A调用模块B,模块B调用模块C,模块C调用模块D。但在大型分布式应用中,系统间的RPC交互繁杂,一个功能背后要调用上百个接口并非不可能,从单机架构过渡到分布式微服务架构的通例,这些架构存在以下问题。1)系统之间接口耦合比较严重每新增一个下游功能,都要对上游的相关接口进行改造;

小鲁蛋的博客 992

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Apache ActiveMQ NMS MSMQ客户端库指南

Apache ActiveMQ NMS MSMQ客户端库指南 1. 目录结构及介绍 Apache ActiveMQ NMS MSMQ项目已归档,但在分析其历史结构时,一般开源项目遵循特定的组织模式。虽然直接从归档仓库获取最新结构不可行,但我们可以基于常规的Java或.NET开源项目结构进行假设。 通常,一个Apache NMS(Network Messaging Service)项目会包含以下主要...

gitblog_00039的博客 484

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Spring应用开发——Spring Boot与ActiveMQ的集成(三)

   Spring Boot对JMS(Java Message Service,Java消息服务)也提供了自动配置的支持,其主要支持的JMS实现有ActiveMQ,Artemis等。本节中,将以ActiveMQ为例来讲解下Spring Boot与ActiveMQ的集成使用。 使用内嵌的ActiveMQ    在Spring Boot中,已...

初心的博客 1472

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

ActiveMQ学习笔记-08——ActiveMQ的传输协议

ActiveMQ学习笔记-08——ActiveMQ的传输协议 参考:【尚硅谷ActiveMQ教程(MQ消息中间件快速入门) 1. 各种协议介绍 Transmission Control Protocol(TCP)(默认) 默认的Broker配置,TCP的Client监听端口61616。 在网络传输数据前,必须要序列化数据,消息说通过一个叫wire protocol的来序列化成字节流。 默认情况下ActiveMQ把wire protocol叫做OpenWire,它的目的是促使网络上的效率和数据快速交互。

NaClO_SYX的博客 247

activemq原理_ActiveMQ客户端原理及源码分析

首先为自己打个广告,我目前在某互联网公司做架构师,已经有5年经验,每天都会写架构师系列的文章,感兴趣的朋友可以关注我和我一起探讨,关注我,免费分享Java基础教程,以及进阶的高级Java架构师教程,全部免费送主要解决三个问题:1 客户端通过什么与服务端建立连接?2 客户端通过什么方式向服务端发送消息?3 用到的设计模式-策略模式1 客户端通过什么与服务端建立连接?客户端通过传输连接器(trans...

weixin_39873741的博客 361

Mqtt开发笔记:windows下C++ ActiveMQ客户端介绍、编译和使用

使到mqtt协议,之前编译QtMqtt库,不支持队列模式queue(点对点),只支持订阅/发布者模式.,所以使用C++ ActiveMQ实现。本篇编译C++ ActiveMQ

长沙红胖子 Qt・西安|省级科研团队从业背景,深耕双一流体系高精尖技术配套研发|剥离高精尖机理,沉淀高端特种行业领域 Qt 工程化落地经验|博文仅分享通用技术总结,输出公开普适工程思路。 2万+

ActiveMQ|客户端原理及源码分析

首先为自己打个广告,我目前在某互联网公司做架构师,已经有5年经验,每天都会写架构师系列的文章,感兴趣的朋友可以关注我和我一起探讨,关注我,免费分享Java基础教程,以及进阶的高级Java架构师教程,全部免费送 主要解决三个问题: 1 客户端通过什么与服务端建立连接? 2 客户端通过什么方式向服务端发送消息? 3 用到的设计模式-策略模式 1 客户端通过什么与服务端建立连接? 客户端通过传输连接器(...

sincegc的博客 548

php与activemq,ActiveMQ的PHP、Python客户端

ActiveMQ这款开源消息服务器提供了多语言支持,除了一般的Java客户端以外,还可以使用C/C++、PHP、Python、JavaScript(Ajax)等语言开发客户端。最近由于项目需要,需要提供PHP和Python的主题订阅客户端。这里作为总结,列出这两种语言客户端的简单安装和使用。对于PHP和Python,可以通过使用STOMP协议与消息服务器进行通讯。在ActiveMQ的配置文件act...

weixin_39922394的博客 163
上一篇: ActiveMQ学习笔记(二)——简单压测及性能调优
下一篇: ActiveMQ学习笔记(四)——自定义身份认证(登录认证集成)
SpbDev
博客等级 码龄22年 6粉丝 23原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值