activemq

JMS ActiveMQ简单介绍+简单实例

☆樱花仙子☆ 提交于 2020-03-02 10:59:44
1. JMS基本概念 JMS(Java Message Service) 即Java消息服务。它提供标准的产生、发送、接收消息的接口简化 企业 应用的开发。它支持两种消息通信模型:点到点(point-to-point)(P2P)模型和发布/订阅(Pub/Sub)模型。P2P 模型规定了一个消息只能有一个接收者;Pub/Sub 模型允许一个消息可以有多个接收者。 对于点到点模型,消息生产者产生一个消息后,把这个消息发送到一个Queue(队列)中,然后消息接收者再从这个Queue中读取,一旦这个消息被一个接收者读取之后,它就在这个Queue中消失了,所以一个消息只能被一个接收者消费。 与点到点模型不同,发布/订阅模型中,消息生产者产生一个消息后,把这个消息发送到一个Topic中,这个Topic可以同时有多个接收者在监听,当一个消息到达这个Topic之后,所有消息接收者都会收到这个消息。 2.编程的结构 2.1消息产生者向JMS发送消息的步骤 (1)创建连接使用的工厂类JMS ConnectionFactory (2)使用管理对象JMS ConnectionFactory建立连接Connection (3)使用连接Connection 建立会话Session (4)使用会话Session和管理对象Destination创建消息生产者MessageSender (5

3.ActiveMQ的使用场景

六月ゝ 毕业季﹏ 提交于 2020-03-02 10:08:25
ActiveMQ的起源 时间回到2003年,一群开源开发者集合在一起形成了Apache Geronimo。之后,他们发现当前没有好用的使用BSD-style许可协议的消息代理器。Geronimo是由于java EE兼容性需要一个JMS实现。所以一些开发者开始讨论其可能性。拥有丰富MOMs经验甚至自己创建过一些MOMs的这些开发者开始创建下一个伟大的开源消息代理。ActiveMQ这么快开始是因为当时市场上大多数的MOMs是商业,闭源而且购买和支持昂贵。市场上的MOMs已经广泛地被使用,但是一些商业行为是买不起如此昂贵的软件。这使得创建一个开源MOMs的需求更加大。很明显,有一个市场急需一个开源的使用Apache License的MOM。最终就导致了Apache ActiveMQ的诞生。 ActiveMQ遵循JMS规范,是为分布式应用远程交流而创建的。 松耦合与ActiveMQ ActiveMQ提供松耦合的应用架构。松耦合一般是为了减轻经典RPC(Remote Procedure Calls)调用的紧耦合架构而被引入的。该松耦合以异步形式存在,任何一个应用对ActiveMQ的调用不依赖于任何其它应用,没有任何依赖或者时序要求。应用依赖于ActiveMQ的能力保证消息传递。因此,我们把应用发送消息的形式称之为触发和忘记(fire-and-forget)-

SpringBoot整合ActiveMQ

丶灬走出姿态 提交于 2020-03-01 19:41:01
SpringBoot整合ActiveMQ 点对点(P2P)   创建springboot项目        导入依赖     <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> </dependency>   生产者     步骤一:applicationContext.properties文件 spring.activemq.broker-url=tcp://127.0.0.1:61616 spring.activemq.user=admin spring.activemq.password=admin server.port=8080     步骤二:创建生产者 package com.wn.p2p; import org.apache.activemq.command.ActiveMQQueue; import org.springframework.jms.core.JmsTemplate; import org.springframework.stereotype.Component; import javax.annotation.Resource; @Component public class

CentOS 7 安装 Zookeeper + ActiveMQ集群

╄→гoц情女王★ 提交于 2020-03-01 16:30:00
目录 原理 环境准备 zookeeper 集群 ActiveMQ 安装 配置 启动测试 原理 使用ZooKeeper实现的Master-Slave实现方式,是对ActiveMQ进行高可用的一种有效的解决方案。 高可用的原理: 使用ZooKeeper(集群)注册所有的ActiveMQ Broker。 只有其中的一个Broker可以对外提供服务(也就是Master节点),其他的Broker处于待机状态,被视为Slave。 如果Master因故障而不能提供服务,则利用ZooKeeper的内部选举机制会从Slave中选举出一个Broker充当Master节点,继续对外提供服务。 环境准备 主机名 系统 IP地址 zk 端口 MQ 版本 MQ 消息端口 MQ 控制台端口 node01 Centos7.5 172.16.1.11 2181 5.15.6 61616 8161 node02 Centos7.5 172.16.1.12 2181 5.15.6 61616 8161 node03 Centos7.5 172.16.1.13 2181 5.15.6 61616 8161 zookeeper 集群 zookeeper 的集群安装之前文章已经介绍过, CentOS 7 Zookeeper 介绍 及 集群安装 ,本次也同样使用该环境; ActiveMQ 安装 下载地址: 官网下载地址

ActiveMQ RabbitMQ KafKa对比

假装没事ソ 提交于 2020-03-01 13:42:51
前言: ActiveMQ和 RabbitMq 以及Kafka在之前的项目中都有陆续使用过,当然对于三者没有进行过具体的对比,以下摘抄了一些网上关于这三者的对比情况,我自己看过之后感觉还 是可以的,比较清晰的反馈了这三个的具体情况已经使用场景,具体的对比如下: 1)TPS比较: Kafka最高,RabbitMq 次之, ActiveMq 最差。 2)吞吐量对比: kafka具有高的吞吐量,内部采用消息的批量处理,zero-copy机制,数据的存储和获取是本地磁盘顺序批量操作,具有O(1)的复杂度,消息处理的效率很高。 rabbitMQ在吞吐量方面稍逊于kafka,他们的出发点不一样,rabbitMQ支持对消息的可靠的传递,支持事务,不支持批量的操作;基于存储的可靠性的要求存储可以采用内存或者硬盘。 3)在架构模型方面: RabbitMQ遵循AMQP协议,RabbitMQ的broker由Exchange,Binding,queue组成,其中exchange和binding组成了消息的路由键;客户端Producer通过连接channel和server进行通信,Consumer从queue获取消息进行消费(长连接,queue有消息会推送到consumer端,consumer循环从输入流读取数据)。rabbitMQ以broker为中心;有消息的确认机制。 kafka遵从一般的MQ结构

ActiveMQ系列(三)springboot整合ActiveMQ实现消息的发布订阅

孤人 提交于 2020-03-01 06:04:46
上篇文章 《ActiveMQ系列(二)》 中实现了消息队列模式,本文开始实现主题消息的发布和订阅。 maven依赖 新建springboot的过程不再赘述,这里在pom文件中直接以用maven依赖: < dependency > < groupId > org . springframework . boot < / groupId > < artifactId > spring - boot - starter - activemq < / artifactId > < / dependency > yml配置 spring : activemq : broker - url : tcp : / / 192.168 .17 .101 : 61616 user : admin password : admin jms : pub - sub - domain : true #默认 false = Queue true = Topic #自己定义的主题名称 mytopic : boot - activemq - topic 配置bean @Component @EnableJms public class ActiveMqConfigBean { @Value ( "${mytopic}" ) private String myTopic ; @Bean public Topic

docker详细的基础用法(转)

a 夏天 提交于 2020-03-01 00:22:49
1、docker安装 debian7安装docker 参考地址:http://www.webmaster.me/server/installing-docker-on-debian- wheezy-in-60-seconds.html echo deb http://get.docker.io/ubuntu docker main | sudo tee/etc/apt/sources.list.d/docker.list sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9 sudo apt-get update sudo apt-get install -y lxc-docker #四行命令,Docker就安装好了。下面创建一个ubuntu虚拟系统: docker pull ubuntu #此处是从官网拉取名为ubuntu的image,也可手动在 https://index.docker.io上搜索想要的镜像。 docker run -i -t ubuntu /bin/bash #创建一个容器,-t是临时终端。 ubuntu12.04、windows、macOS安装docker 参考docker中文文档http://www

消息中间件之ActiveMQ(2)配置和事务

烈酒焚心 提交于 2020-02-28 22:13:12
配置 关于ActiveMQ的配置有几个关键的文件,activemq.xml,jetty.xml和jetty-realm.properties,这几个文件全都在ActiveMQ文件的conf文件夹下 首先我们来看jetty-realm.properties文件 这两行分别代表的是admin和user两个用户,用户admin登录账号密码都是admin,user也一样,我们可以通过修改这个文件进行一些操作,增加用户,修改密码等,需要注意的是冒号后面的第一个是密码,第二个是账号,如我们想要把admin的密码改成123 修改之后保存重启我们的ActiveMQ,从http://localhost:8161登录我们管理界面输入新的账号密码才能进入。 jetty.xml文件中是控制台的安全配置 < bean id = "securityConstraint" class = "org.eclipse.jetty.util.security.Constraint" > < property name = "name" value = "BASIC" / > < property name = "roles" value = "user,admin" / > < ! -- set authenticate = false to disable login -- > < property name =

Message Redelivery and DLQ Handling

北城余情 提交于 2020-02-28 20:40:17
Overview Messages are redelivered to a client when any of the following occurs: A transacted session is used and rollback() is called. A transacted session is closed before commit is called. A session is using CLIENT_ACKNOWLEDGE and Session.recover() is called. A client connection times out (perhaps the code being executed takes longer than the configured time-out period) The broker transmits the default delivery policy that he prefers to a client connection in his BrokerInfo command packet. But the client can override the policy settings by using the ActiveMQConnection.getRedeliveryPolicy()

linux学习之activemq

泪湿孤枕 提交于 2020-02-28 20:25:16
1.下载activemq http://activemq.apache.org/components/classic/download/ 用wget命令下载的包无法解压,貌似因为在页面上操作下载时需要同意协议,而wget命令默认不同意协议,所以无法解压 2.运行activemq 到bin目录下,运行命令:./activemq start启动服务 ./activemq status 查看服务状态 , ./activemq console 查看启动日志 访问地址: http://192.168.2.214:8161/index.html 服务启动之后,本地机器无法访问虚拟机activemq服务的原因:防火墙 勾选http,同时增加8161端口 启动失败的原因可能是jdk没有设置环境变量以及jdk的版本过低 来源: https://www.cnblogs.com/tjlr/p/12378725.html