activemq

ActiveMQ 安装及发布订阅模式

落爺英雄遲暮 提交于 2021-01-15 19:22:05
1. 安装 官网连接 https://activemq.apache.org/using-activemq-5 docker安装mq: https://hub.docker.com/r/rmohr/activemq 启动 命令: docker run -d -p 61616:61616 -p 8161:8161 \ -v conf:/opt/activemq/conf \ -v data:/opt/activemq/data \ rmohr/activemq centos普通安装mq https://www.linuxidc.com/linux/2017-12/149912.htm 持久化相关 http://activemq.apache.org/persistence.html ActiveMQ 界面 http://127.0.0.1:8161/admin 默认用户名和密码 用户名:admin 密码:admin 2. 发布订阅模式 activemq 实现了标准的消息服务,提供点对点队列模式,以及发布订阅模式。关于点对点模式网上资料较多,结合工作中的使用情况,着重说明下发布订阅模式。 几个关键的类如下: 配置文件:application.properties spring.activemq.broker-url=tcp://10.92.xx.xx:61616 spring

详解:同步架构和异步架构的区别及消息队列

杀马特。学长 韩版系。学妹 提交于 2021-01-06 07:27:59
分布式消息队列是是大型分布式系统不可缺少的中间件,主要解决应用耦合、异步消息、流量削锋等问题。实现高性能、高可用、可伸缩和最终一致性架构。 对于一个架构师来说,在大型系统设计中,会经常需要面对同步和异步等架构问题,搞明白这些问题,能更好地实现程序并行执行,减少等待或无效操作,以及充分利用计算机的性能! 本文将详细讲解: 1.同步架构和异步架构的区别 2.异步架构的主要组成部分:消息生产者、消息消费者、分布式消息队列 3.异步架构的两种主要模型:点对点模型和发布订阅模型。 4. 消息队列的好处 5.消息队列相关产品 建议用10min通读,搞懂分布式消息队列的核心内容。 一、同步架构和异步架构的区别 1. 同步调用 是指从请求的发起一直到最终的处理完成期间,请求的调用方一直在同步阻塞等待调用的处理完成。 如图,在这个例子中客户端代码ClientCode,需要执行发送邮件sendEmail这样一个操作,它会调用EmailService进行发送,而EmailService会调用SmtpEmailAdapter这样一个类来进行处理,而这个类会调用远程的一个服务,通过SMTP和TCP协议把请求发送给它。 而远程服务器收到消息以后会对消息进行一系列的操作,然后将邮件发送出去,再进行返回。Adapter收到返回后,再返回给EmailService

那些年,面试官问你的消息队列

∥☆過路亽.° 提交于 2021-01-05 08:23:25
MQ理论介绍 一、为什么需要消息队列(MQ) 主要原因是由于在高并发环境下,同步请求来不及处理,请求往往会发生阻塞。大量的请求到达访问数据库,导致行锁表锁,最后请求线程会堆积过多,从而触发 too many connection错误,引发雪崩效应。我们使用消息队列,通过异步处理请求,从而缓解系统的压力。核心:异步处理、流量削峰、应用解耦 二、应用场景 异步处理,流量削峰,应用解耦,消息通讯四个场景 2.1、异步处理 场景1:用户注册后,需要发送注册邮件和注册短信。 串行方式:将注册信息写入 数据库 成功后,发送注册邮件,再发送注册短信。以上三个任务全部完成后,返回给客户端 并行方式:将注册信息写入数据库成功后,发送注册邮件的同时,发送注册短信。以上三个任务完成后,返回给客户端。与串行的差别是,并行的方式可以提高处理的时间 假设三个业务节点每个使用50毫秒钟,不考虑网络等其他开销,则串行方式的时间是150毫秒,并行的时间可能是100毫秒。 因为CPU在单位时间内处理的请求数是一定的,假设CPU在1秒内吞吐量是100次。则串行方式1秒内CPU可处理的请求量是7次(1000/150)。 并行方式处理的请求量是10次(1000/100) 小结:如以上案例描述,传统的方式系统的性能(并发量,吞吐量,响应时间)会有瓶颈。如何解决这个问题? 引入消息队列,将不是必须的业务逻辑,异步处理

太赞了吧!首发独家Java飞滴项目实战视频教程!可以让你写到简历上的项目, 限时分享赶快上车!

不问归期 提交于 2020-12-31 11:03:47
太赞了!Github上都没有的“网约车”项目!!! 以下内容全部真实!绝对真名 绝对不艺名!(附介绍) 该项目是一款标准且已上线的“网约车”应用。符合我国交通部对网约车监管的技术要求。通过了交通部对网约车线上和线下能力认定。项目原型曾在杭州上线运行。 项目中核心功能包括:账户系统,订单系统,支付系统,地图引擎,派单引擎,消息系统等 网约车核心解决方案。 项目中完全采用微服务架构设计,应用了成熟的接口安全设计方案,采用分布式锁保证了分布式环境中的数据同步,用分布式事务解决了分布式环境中的数据一致性等。 前置技能 Git,Maven,Spring Boot,Spring Cloud,Redis,MySql ,RabbitMQ,ActiveMQ等。 讲师是谁? 说明:通过学习该项目,巩固大家原来学过的Spring Cloud微服务相关的知识,并学会如何在实际项目中落地应用。白皮书+视频+预习资料+视频教程都是有的! 免费获取方式: 三连文章,然后加小助理微信 mxj94670 ”即可免费领取! 啥也不说了,上图... 视频内容 项目详图 项目架构图 工程结构 好了,到这里,整个项目介绍的也差不多了,白皮书+视频+预习资料+视频讲解有感兴趣的朋友:三连关注之后,然后扫描下方即可免费领取! 来源: oschina 链接: https://my.oschina.net/u/4361024

ActiveMQ笔记:一个高稳定,可扩展的的部署方案

匆匆过客 提交于 2020-12-15 08:55:27
本文介绍一个笔者在实际工作中的实施的基于ActiveMQ的一个高稳定,可扩展的异步消息系统。 ActiveMQ是一个成熟的基于Java语言的开源消息系统,在实际应用中被大量使用。ActiveMQ在系统稳定性,系统的容错和扩展等方面都有很多成熟的方案,也有很多开源的管理工具,是部署异步消息系统的一个很好的选择。 ActiveMQ工作机制 ActiveMQ有两种消息使用方式: l Queue模式:Producer发出到Queue里的消息,只能由一个Consumer来使用。 l Topic模式:Producer发送到Topic里的消息,会传送到Subscribe这个Topic的每一个Consumer。 Producer发出的消息有两种Delivery模式。 l Persistent:Broker需要保存消息,然后把消息发送到Consumer。如果Broker崩溃后,重新启动后保存的消息可以重新发送给Consumer。 l NonPersistent:Broker不需要保存消息,直接把消息发送到Consumer。 ActiveMQ可以通过Networks of Brokers方式将多个Broker组成一个Cluster。Producer和Consumer可以任意的连接到该Cluster中的任意一个Broker。Producer发送的消息可以通过Cluser传送到需要的Consumer。

JBoss 7 Embedded ActiveMQ - MDB message listener not working

半世苍凉 提交于 2020-12-14 23:38:43
问题 I have to upgrade an existing app with JBOSS 4.2.2 and embedded activeMQ 5.3.0 To try with jboss 7.3 using an embedded active MQ, i did the following. Following the instructions at https://developer.jboss.org/docs/DOC-18798#jive_content_id_ActiveMQ_as_an_internal_messaging_broker I configured the activemq-rar-5.6.0.rar in JBoss 7.3 resource-adapter Deployed the jboss quick start hello-world-mdb war file in jboss. Tried to send and consume messages using a message driven bean(MDB) The problem

译文丨10种常见的软件架构模式

五迷三道 提交于 2020-12-13 08:36:36
本文译自https://towardsdatascience.com/10-common-software-architectural-patterns-in-a-nutshell-a0b47a1e9013?gi=f8addb915af7,作者Vijini Mallawaarachchi,Sep 4, 2017 译者:evandeng2009(blog.csdn.net/evandeng2009/) 为了更好的组织语言和理解,符合我们的阅读习惯,原文的部分段落被合并或者分割。为体现完整性,不删减文字,保持原文文字内容。翻译纯属个人喜爱、分享和收藏。 正文 是否想知道大型企业级系统是怎么设计的?在软件主体开发之前,我们必须选择一个合适的架构来提供所需的功能和质量特征。所以在应用于设计之前,我们应该了解不同的架构。 什么是架构模式 维基百科:架构模式是在给定上下文的软件架构中,针对常发生问题的一种通用、复用的解决方案。架构模式类似于软件设计模式,但是范畴更广。 本文中,我将简要的阐述如下10中常见架构模式的应用和优缺点。 分层模式 客户端-服务端模式 主从模式 管道-过滤器模式 代理模式 点对点模式 事件总线模式 模型-视图-控制器模式 黑板模式 解释器模式 1. 分层模式 该模式用于构建可分解为多组子任务的程序,每个子任务都在某个抽象层,每个层对上一个更高层提供服务

补习系列(13)-springboot redis 与发布订阅

雨燕双飞 提交于 2020-12-01 01:48:14
一、订阅发布 订阅发布 是一种常见的设计模式,常见于消息系统的场景。 如下面的图: [来自百科] 消息发布者是消息载体的生产者,其通过某些主题来向 调度中心 发送消息; 而消息订阅者会事先向 调度中心 订阅其 "感兴趣" 的主题,随后会获得新消息。 在这里, 调度中心 是一个负责消息控制中转的逻辑实体,可以是消息队列如ActiveMQ,也可以是Web服务等等。 常见应用 微博,每个用户的粉丝都是该用户的订阅者,当用户发完微博,所有粉丝都将收到他的动态; 新闻,资讯站点通常有多个频道,每个频道就是一个主题,用户可以通过主题来做订阅(如RSS),这样当新闻发布时,订阅者可以获得更新。 二、Redis 与订阅发布 Redis 支持 (pub/sub) 的订阅发布能力,客户端可以通过channel(频道)来实现消息的发布及接收。 1. 客户端通过 SUBSCRIBE 命令订阅 channel 2. 客户端通过PUBLISH 命令向channel 发送消息; 而后,订阅 channel的客户端可实时收到消息。 除了简单的SUBSCRIBE/PUBLISH命令之外,Redis还支持订阅某一个模式的主题(正则表达式), 如下: PSUBSCRIBE / topic / cars /* 于是,我们可以利用这点实现相对复杂的订阅能力,比如: 在电商平台中订阅多个品类的商品促销信息; 智能家居场景

【高并发解决方案】高并发解决方案汇总

纵饮孤独 提交于 2020-11-27 05:23:10
【高并发解决方案】1、高并发解决方案汇总 一、对于被频繁调用,更新频率较低的页面,可以采用HTML静态化技术 二、图片服务器分离 三、数据库集群和库表散列 mysql主从。m-m-s-s-s...(2个主,多个从。多个从使用负载均衡。主写入数据,从读取数据) 四、缓存。众多的缓存框架 五、负载均衡。nginx,lvs,F5 六、搜索用单独的服务器,搜索框架 七、使用MQ服务器 【高并发解决方案】2、集群概述 1.什么是集群 集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台。在客户端看来,一个集群就像是一个服务实体,但 事实上集群由一组服务实体组成。 2.集群的特性 与单一服务实体相比较,集群提供了以下两个关键特性: 1.可扩展性--集群的性能不限于单一的服务实体,新的服 务实体可以动态地加入到集群,从而增强集群的性能。 2. 高可用性--集群通过服务实体冗余使客户端免于轻易遇到out of service的警告。在集群中,同样的服务可以由多个服务实体提供。如果一个服务实体失败了,另一个服务实体会接管失败的服务实体。集群提供的从一个出 错的服务实体恢复到另一个服务实体的功能增强了应用的可用性。 为了具有可扩展性和高可用性特点,集群的必须具备以下两大能力: (1) 负 载均衡--负载均衡能把任务比较均衡地分布到集群环境下的计算和网络资源。 (2)