activemq安装与简单消息发送接收实例

安装环境:Activemq5.11.1, jdk1.7(activemq5.11.1版本需要jdk升级到1.7),虚拟机: 192.168.147.131
配置Nginx代理Activemq后台管理应用默认绑定的8161端口
重启nginx
启动activemq
配置host[192.168.147.131 tools.activemq.local.com]
登录activemq的后台,默认账号 admin/admin
http://tools.activemq.local.com/admin实例展示MQ消息的发送和接收[消息类型分为queue 和 Topic]
pom引入
Queue类型消息1、定义消息destination和brokerUrl[61616为activemq用于消息通讯的端口]
2、编写消息的发送程序

执行消息发送,在管理后台查看

3、编写消息的消费程序

执行这段代码会输出接收到的消息内容:

管理后台在查看queue中心结果如下:

Topic类型消息

1、定义消息destination和brokerUrl[61616为activemq用于消息通讯的端口]

2、编写消息生产者

3、编写消息消费者

先启动消费者:

启动生产者,生产消息,此时会接收到消息如图:

观察topic后台管理

Queue模型消息和Topic模型消息区别

queue[点对点模型] 1、只有一个消费者 每条消息只有一个消费者,如果这条消息被消费,那么其它消费者不能接受到此消息。 2、时间无关性 消息的消费和时间无关,只要消息被发送了,在消息过期之前,如果没有其他消费者消费了这个消息,那么客户端可以在任何时候来消费这条消息。 3、消费者必须确认 消费者收到消息之后,必须向Message Provider确认,否则会被认为消息没有被消费,仍然可以被其他消费者消费。可以设置自动确认。这个特点其实也是保证一条消息只能由一个消费者来消费。 4、非持久化的消息只发一次 非持久化的消息,可能会丢失,因为消息会过期,另外Message Provider可能宕机。 5、持久化的消息严格发一次 消息可以被持久化,比如持久化在文件系统或者数据库中,这样可以避免Message Provider的异常或者其它异常导致消息丢失。Topic[发布者/订阅者模型] 1、每条消息可以有多个订阅者 2、订阅者只能消费它们订阅topic之后的消息 3、非持久化订阅,订阅者必须保持为活动状态才能使用这些消息,如果一个订阅者A断开了10分钟,那么A就会收不到这10分钟内的消息。 4、持久化订阅,Message Provider会保存这些消息,即使订阅者因为网络原因断开了,再重新连接以后,能让消费这些消息。 5、是否使用持久化订阅,需要根据业务场景判断。

Original: https://www.cnblogs.com/dennisit/p/4551182.html
Author: 苏二
Title: activemq安装与简单消息发送接收实例

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/539852/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • JDBC概述

    JDBC概述 JDBC(Java DataBase Connectivity),它是一种用于执行 SQL语句的 JavaAPI。通过使用JDBC就可以使用 相同的API访问 不同的…

    Java 2023年6月9日
    068
  • 基于CAS实现SSO单点登录

    1. 概述 1.1. 什么是SSO? 单点登录( Single Sign-On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中…

    Java 2023年5月29日
    0163
  • java 中为什么重写 equals 后需要重写 hashCode

    本文为博主原创,未经允许不得转载: 1. equals 和 hashCode 方法之间的关系 这两个方法都是 Object 的方法,意味着 若一个对象在没有重写 这两个方法时,都会…

    Java 2023年5月29日
    073
  • C++基础-类与对象(3)

    C++类与对象(3)—多态 一个接口有多种形态,传入的对象不一样,同一个接口执行的操作不同 多态的基本概念 多态分为两类 静态多态:函数重载和运算符重载属于静态多态,复用函数名 动…

    Java 2023年6月5日
    073
  • 自定义映射resultMap

    resultMap处理字段和属性的映射关系 如果字段名与实体类中的属性名不一致,该如何处理映射关系? 第一种方法: 为查询的字段设置别名,和属性名保持一致 下面是实体类中的属性名:…

    Java 2023年6月15日
    071
  • 全面理解Java内存模型(JMM)及volatile关键字(转载)

    关联文章: 深入理解Java类型信息(Class对象)与反射机制 深入理解Java枚举类型(enum) 深入理解Java注解类型(@Annotation) 深入理解Java类加载器…

    Java 2023年5月29日
    084
  • Java中Semaphore(信号量)的使用

    Semaphore的作用: 在java中,使用了synchronized关键字和Lock锁实现了资源的并发访问控制,在同一时间只允许唯一了线程进入临界区访问资源(读锁除外),这样子…

    Java 2023年5月29日
    059
  • LeetCode.1170-比较字符串中最小字符的出现频率(Compare Strings by Frequency of the Smallest Char)

    这是小川的第 412次更新,第 444篇原创 看题和准备 今天介绍的是 LeetCode算法题中 Easy级别的第 263题(顺位题号是 1170)。在一个非空字符串s上定义一个函…

    Java 2023年6月5日
    070
  • sql索引优化思路

    【开发】SQL优化思路(以oracle为例) powered by wanglifeng https://www.cnblogs.com/wanglifeng717 单表查询的优化…

    Java 2023年6月9日
    0121
  • Mysql 日期格式化 复杂日期区间查询

    最近在做项目涉及到 Mysql的复杂日期查询,日期查询其实在数据库中查询其实还是用的挺多的,比如查询开始日期到结束日期的区间信息,查询日期小于有效日期的信息,查询当天的日期,明天的…

    Java 2023年6月13日
    074
  • LeetCode剑指Offer刷题总结(一)

    LeetCode过程中值得反思的细节 以下题号均指LeetCode剑指offer题库中的题号 本文章将每周定期更新,当内容达到10题左右时将会开下一节。 二维数组越界问题04 pu…

    Java 2023年6月7日
    072
  • Abp RabbitMqEventBus

    RabbitMQ安装介绍查看该网址 两个App都要配置 appsettings.json { "RabbitMQ": { "Connections&q…

    Java 2023年5月29日
    067
  • git没有提交的代码如何迁移到新建分支

    在接到需求以后,直接在master上开发了,到提交的时候才想起来忘记新建版本分支了,直接提交到master会影响到其他人。这时候就想着将本地编辑的代码,没有提交的代码暂存起来,然后…

    Java 2023年6月8日
    087
  • JAVA入门基础_从零开始的培训_Redis

    Redis能够为我们解决什么问题 Redis的下载与安装 前台启动(不推荐)与后台启动 常用五大数据类型 Redis键常用命令(key) 4个数据库操作命令 String字符串命令…

    Java 2023年6月9日
    072
  • OAuth2密码模式已死,最先进的Spring Cloud认证授权方案在这里

    旧的 Spring Security OAuth2停止维护已经有一段时间了, 99%的 Spring Cloud微服务项目还在使用这些旧的体系,严重青黄不接。很多同学都在寻找新的解…

    Java 2023年5月30日
    078
  • maven概述和maven依赖管理的概念以及一件构成的概念

    我们的项目,往往都要经历编译、测试、运行、打包、安装 ,部署等一系列过程。 什么是构建? 指的是项目从编译、测试、运行、打包、安装 ,部署整个过程都交给 maven 进行管理,这个…

    Java 2023年6月6日
    081
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球