activemq

ActiveMQ入门系列二:入门代码实例(点对点模式)

泪湿孤枕 提交于 2020-04-18 02:39:08
在上一篇《 ActiveMQ入门系列一:认识并安装ActiveMQ(Windows下) 》中,大致介绍了ActiveMQ和一些概念,并下载、安装、启动他,还访问了他的控制台页面。 这篇,就用代码实例说下如何实现消息的生产和消费。 一、理论基础 同 RabbitMQ 一样,ActiveMQ中也是有两种模式: 点对点模式(Point to Point,简写为PTP) 发布/订阅模式(Publish & Subscribe,简写为Pub & Sub) 通过 上一篇 我们知道了制造消息的应用叫生产者(Producer),生产者在生产了消息后会发送消息到目的地(Destination),到达消费和处理消息的应用(也就是消费者Consumer)。这里的两种模式就通过对应不同的消息目的地(Destination)来实现,PTP对应Queue(队列)、Pub&Sub对应Topic(主题)。 今天就详细介绍下PTP和Queue,下一篇介绍Pub & Sub和Topic。 在PTP模式的示意图: 消息生产者生产消息发送到queue中,然后消息消费者从queue中取出并且消费消息。 消息被消费以后,queue中不再有存储,所以消息消费者不可能消费到已经被消费的消息。 Queue支持存在多个消费者,但是对一个消息而言,只会有一个消费者可以消费、其它的则不能消费此消息了。 当消费者不存在时,消息会一直保存

ActiveMQ入门系列一:认识并安装ActiveMQ(Windows下)

泪湿孤枕 提交于 2020-04-18 01:56:06
一、什么是ActiveMQ 度娘给出的定义: Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件;由于ActiveMQ是一个纯Java程序,因此只需要操作系统支持Java虚拟机,ActiveMQ便可执行。 ActiveMQ的官网打出的标语(如上图): Flexible & Powerful Open Source Multi-Protocol Messaging 大意是:兼容性好并且功能强大的开源多协议消息中间件,那具体是怎么体现的呢? 1.兼容性好: ActiveMQ可以很容易内嵌到使用Spring的系统里面去, 通过了常见J2EE服务器(如 Geronimo,JBoss 4,GlassFish,WebLogic)的测试,其中通过JCA 1.5 resource adaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE 1.4 商业服务器上 2.功能强大: 支持通过JDBC和journal提供高速的消息持久化, 支持客户端-服务器,点对点 支持Ajax 支持与Axis的整合, WebServices 可以很容易的调用内嵌JMS provider进行测试 从设计上保证了高性能的集群 3.多协议: 应用协议有OpenWire,Stomp REST,WS Notification,XMPP,AMQP, 还支持多种传送协议:in-VM

ActiveMQ 自定义认证(数据库链接)+JAAS授权

て烟熏妆下的殇ゞ 提交于 2020-04-16 21:35:57
【推荐阅读】微服务还能火多久?>>> ActiveMQ 支持可插拔的安全机制,用以在不同的 provider之间切换 , 授权认证支持三种方式: 1. simpleAuthenticationPlugin 只需要在\conf\ActiveMQ .xml 中加入下列配置就可 <plugins> <simpleAuthenticationPlugin> <users> <authenticationUser username="system" password="manager" groups="users,admins"/> </users> </simpleAuthenticationPlugin> </plugins> plugins 标签需放在broker标签里面 上述配置的意思添加授权用户 system 密码manager 该用户分组为users 和admins 2.使用JAAS 认证 \conf\login.config activemq-domain { org.apache.activemq.jaas.PropertiesLoginModule required debug=true org.apache.activemq.jaas.properties.user="users.properties" org.apache.activemq.jaas

使用redis作为消息队列的用法

倖福魔咒の 提交于 2020-04-16 08:03:41
【推荐阅读】微服务还能火多久?>>> 背景 最近项目有个需求需要动态更新规则,当时脑中想到的第一个方案是利用zk的监听机制,管理人员更新完规则将状态写入zk,集群中的机器监听zk的状态,当有状态变更后,集群中的机器开始拉取最新的配置。但由于公司技术选型,没有专门搭建zk集群,因此也不可能为这一个小需求去搭建zk集群。图为使用zk监听状态变化的流程。 最后只好退而求其次,想到了使用redis的队列来做规则的更新 消息队列 首先做简单的引入。 队列(来自百度百科):是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。 消息队列(来自百度百科):是在消息的传输过程中保存消息的容器。 从队列和消息队列的定义看来,看不出什么相似之处。但我理解它们的作用是相似的,只是使用环境不同。队列和消息队列 本质上都可以用于解决“生产者”和“消费者”问题,在二者这间建立桥梁,it中专业术语是对“生产者”和“消费者”进行解耦。可以动态的通过调整“生产者”和“消费者”线程数或服务器实例数,在正常情况使消费和生产到达一个平衡;在高峰情况下(生产者大于消费者)可以保护消费者不被拖垮的同时,还可以对把积压的数据保存下来,消费者可以延迟消费这些数据进行处理。 队列

消息队列常见的几种使用场景介绍!

微笑、不失礼 提交于 2020-04-15 16:29:30
【推荐阅读】微服务还能火多久?>>> 一、简介 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能、高可用、可伸缩和最终一致性架构。使用较多的消息队列有ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaMQ、RocketMQ。 二、消息队列应用场景 以下介绍消息队列在实际应用中常用的使用场景:异步处理,应用解耦,流量削锋和消息通讯四个场景。 1、异步处理 场景说明:用户注册后,需要发注册邮件和注册短信。传统的做法有两种:串行的方式和并行方式。 串行方式 :将注册信息写入数据库成功后,发送注册邮件,再发送注册短信。以上三个任务全部完成后,返回给客户。 并行方式 :将注册信息写入数据库成功后,发送注册邮件的同时,发送注册短信。以上三个任务完成后,返回给客户端。与串行的差别是,并行的方式可以提高处理的时间。 假设三个业务节点每个使用50毫秒钟,不考虑网络等其他开销,则串行方式的时间是150毫秒,并行的时间可能是100毫秒。 因为CPU在单位时间内处理的请求数是一定的,假设CPU1秒内吞吐量是100次。则串行方式1秒内CPU可处理的请求量是7次(1000/150)。并行方式处理的请求量是10次(1000/100)。 小结 :如以上案例描述,传统的方式系统的性能(并发量,吞吐量,响应时间)会有瓶颈。如何解决这个问题呢?

消息队列常见的几种使用场景介绍!

ⅰ亾dé卋堺 提交于 2020-04-15 15:56:06
【推荐阅读】微服务还能火多久?>>> 一、简介 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能、高可用、可伸缩和最终一致性架构。使用较多的消息队列有ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaMQ、RocketMQ。 二、消息队列应用场景 以下介绍消息队列在实际应用中常用的使用场景:异步处理,应用解耦,流量削锋和消息通讯四个场景。 1、异步处理 场景说明:用户注册后,需要发注册邮件和注册短信。传统的做法有两种:串行的方式和并行方式。 串行方式 :将注册信息写入数据库成功后,发送注册邮件,再发送注册短信。以上三个任务全部完成后,返回给客户。 并行方式 :将注册信息写入数据库成功后,发送注册邮件的同时,发送注册短信。以上三个任务完成后,返回给客户端。与串行的差别是,并行的方式可以提高处理的时间。 假设三个业务节点每个使用50毫秒钟,不考虑网络等其他开销,则串行方式的时间是150毫秒,并行的时间可能是100毫秒。 因为CPU在单位时间内处理的请求数是一定的,假设CPU1秒内吞吐量是100次。则串行方式1秒内CPU可处理的请求量是7次(1000/150)。并行方式处理的请求量是10次(1000/100)。 小结 :如以上案例描述,传统的方式系统的性能(并发量,吞吐量,响应时间)会有瓶颈。如何解决这个问题呢?

07 架构可扩展

主宰稳场 提交于 2020-04-13 07:07:29
随着新需求的增加,需要开发新的模块, 开闭原则(对扩展开发,对修改关闭) 低耦合性 软件架构师最大的价值不在掌握多少先进的技术,而在于具有将一个大系统切分成 N 个低耦合的子模块的能力。这些子模块包含横向的业务模块,也包含纵向的基础技术模块。这种能力一部分源自于专业的技术和经验,还有一部分源于架构师对业务场景的理解,对人性的把握,甚至对世界的认知。 利用分布式消息队列降低耦合性 事件驱动架构 消息队列的方式,无论是增加生产者,还是消费者,对于其他功能都是无感知的。 分布式消息队列 实际上 KAFKA 就是这种, 只不过架构图比这个复杂, 还有 ActiveMQ, RocketMQ 等. 伸缩性: 比较简单,只要新增加一个消息队列服务器,并通知生产者,多了一个消息队列服务器即可. 可用性:如果消费者进程处理缓慢,导致内存队列已满,会将消息写入磁盘,消息推送模块在将内存队列消息处理完以后,将磁盘内容加载到队列继续处理 分布式服务打造可复用业务平台 拆分, 将复用的业务拆分出来, 独立部署为分布式服务,新增业务只需要调用这些分布式服务,不需要依赖具体的模块代码。 web service 与 企业级分布式服务 分布式服务设计, 比如 阿里巴巴开源框架 Dubbo 平台级别 API 接口: RESTful, WebService, RPC 等 安全: 身份识别,权限控制, 带宽限制。 审计:

Activemq(centos7)开机自启动服务

不问归期 提交于 2020-04-10 15:07:08
编辑服务文件 vi /etc/init.d/activemq 文件内容如下 #!/bin/bash # chkconfig: 2345 10 90 # description: activemq .... prog=tomcat JAVA_HOME=/usr/local/java/jdk1.7.0_25 export JAVA_HOME CATALANA_HOME=/home/activemq export CATALINA_HOME case "$1" in start) echo "Starting $prog..." $CATALANA_HOME/bin/activemq start ;; stop) echo "Stopping $prog..." $CATALANA_HOME/bin/activemq stop ;; restart) echo "Stopping $prog..." $CATALANA_HOME/bin/activemq stop sleep 2 echo echo "Starting $prog..." $CATALANA_HOME/bin/activemq start ;; *) echo "Usage: $prog {start|stop|restart}" ;; esac exit 给予权限 chmod +x activemq *设置开机自启动

What is the difference between Red Hat AMQ and Apache ActiveMQ?

ぐ巨炮叔叔 提交于 2020-04-10 09:26:15
问题 I am providing a design for a new project and I am trying to understand which JMS provider to use. Is there any difference between Red Hat AMQ and Apache ActiveMQ ? 回答1: The latest version of Red Hat AMQ (i.e. the 7.x releases) is more than just a message broker. It is a platform consisting of a message broker (based on Apache ActiveMQ Artemis), a message router (based on Apache Qpid Dispatch Router), and a suite of clients with different language bindings and protocol support. Red Hat AMQ

What is the difference between Red Hat AMQ and Apache ActiveMQ?

元气小坏坏 提交于 2020-04-10 09:25:48
问题 I am providing a design for a new project and I am trying to understand which JMS provider to use. Is there any difference between Red Hat AMQ and Apache ActiveMQ ? 回答1: The latest version of Red Hat AMQ (i.e. the 7.x releases) is more than just a message broker. It is a platform consisting of a message broker (based on Apache ActiveMQ Artemis), a message router (based on Apache Qpid Dispatch Router), and a suite of clients with different language bindings and protocol support. Red Hat AMQ