消息中间件

阿里分布式消息中间件:《RocketMQ开发指南》pdf高清版

你离开我真会死。 提交于 2020-04-07 16:44:51
本文档旨在描述 RocketMQ 的多个关键特性的实现原理,幵对消息中间件遇到的各种问题迕行总结,阐述RocketMQ 如何解决返些问题。文中主要引用了 JMS 规范不 CORBA Notification 规范,规范为我们设计系统挃明了方吐,但是仍有丌少问题规范没有提及,对亍消息中间件又至关重要。RocketMQ 幵丌遵循任何规范,但是参考了各种规范不同类产品的设计思想。 主页 目录 部分内容截图 RocketMQ Overview RocketMQ存储特点 RocketMQ关键特性 RocketMQ通信组件 Producer最佳实践 获取方法 点点这个链接免费获取:本人免费整理了Java高级资料,涵盖了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo高并发分布式等教程,一共30G,需要自己领取。 传送门: https://mp.weixin.qq.com/s/osB-BOl6W-ZLTSttTkqMPQ 来源: https://www.cnblogs.com/yunxi520/p/12654020.html

阿里分布式消息中间件:《RocketMQ开发指南》pdf高清版

与世无争的帅哥 提交于 2020-04-07 16:16:50
本文档旨在描述 RocketMQ 的多个关键特性的实现原理,幵对消息中间件遇到的各种问题迕行总结,阐述RocketMQ 如何解决返些问题。文中主要引用了 JMS 规范不 CORBA Notification 规范,规范为我们设计系统挃明了方吐,但是仍有丌少问题规范没有提及,对亍消息中间件又至关重要。RocketMQ 幵丌遵循任何规范,但是参考了各种规范不同类产品的设计思想。 主页 目录 部分内容截图 RocketMQ Overview RocketMQ存储特点 RocketMQ关键特性 RocketMQ通信组件 Producer最佳实践 获取方法 点点这个链接免费获取: 【推荐】2020年最新Java电子书集合.pdf(吐血整理) >>> 来源: oschina 链接: https://my.oschina.net/u/4441013/blog/3223232

阿里消息队列中间件 RocketMQ源码解析:Message发送&接收

对着背影说爱祢 提交于 2020-03-30 21:02:52
🙂🙂🙂关注 微信公众号:【芋艿的后端小屋】 有福利: RocketMQ / MyCAT / Sharding-JDBC 所有 源码分析文章列表 RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址 您对于源码的疑问每条留言 都 将得到 认真 回复。 甚至不知道如何读源码也可以请教噢 。 新的 源码解析文章 实时 收到通知。 每周更新一篇左右 。 认真的 源码交流微信群。 1、概述 2、Producer 发送消息 DefaultMQProducer#send(Message) DefaultMQProducerImpl#sendDefaultImpl() DefaultMQProducerImpl#tryToFindTopicPublishInfo() MQFaultStrategy MQFaultStrategy LatencyFaultTolerance LatencyFaultToleranceImpl FaultItem DefaultMQProducerImpl#sendKernelImpl() 3、Broker 接收消息 SendMessageProcessor#sendMessage AbstractSendMessageProcessor#msgCheck DefaultMessageStore#putMessage 4

SpringCloud Stream消息驱动概述

∥☆過路亽.° 提交于 2020-03-17 11:15:28
简介 如果系统里同时存在多种MQ,可以使用使用Cloud Stream,只需要和Stream交互就可以进行管理。 一句话,屏蔽底层消息中间件的差异,降低切换成本,统一消息的编程模型 官网: https://spring.io/projects/spring-cloud-stream#overview 中文手册: 官方定义SpringCloud Stream是一个构建消息驱动微服务的框架 应用程序通过inputs 或者 outputs 来与SpringCloud Stream中binder对象交互。通过我们配置来binding(绑定),而SpringCloud Stream的binder对象负责与消息中间件交互,所以,我们只需要搞清楚如何与SpringCloud Stream交互就可以方便使用消息驱动的方式。 通过使用Spring Integration来连接消息代理中间件以实现消息时间驱动 SpringCloud Stream 为一些供应商的消息中间件产品提供了个性化的自动化配置实现,引用了发布-订阅、消费组、分区的三个核心概念。 目前只支持RabbitMQ、Kafka 设计思想介绍 标准的MQ: 生产者/消费者之间靠消息媒介传递信息内容——Message 消息必须走特定的通道——消息通道MessageChannel 消息通道里的消息如何被消费呢,谁负责收发处理—

ActiveMQ消息中间件面试专题

元气小坏坏 提交于 2020-03-17 03:24:06
1.什么是ActiveMQ? activeMQ是一种开源的,实现了JMS1.1规范的,面向消息(MOM)的中间件,为应用程序提供高效 的、可扩展的、稳定的和安全的企业级消息通信 2. ActiveMQ服务器宕机怎么办? 这得从ActiveMQ的储存机制说起。在通常的情况下,非持久化消息是存储在内存中的,持久化消息是 存储在文件中的,它们的最大限制在配置文件的节点中配置。但是,在非持久化消息堆 积到一定程度,内存告急的时候,ActiveMQ会将内存中的非持久化消息写入临时文件中,以腾出内存。 虽然都保存到了文件里,但它和持久化消息的区别是,重启后持久化消息会从文件中恢复,非持久化的临 时文件会直接删除。 那如果文件增大到达了配置中的最大限制的时候会发生什么 ?我做了以下实验: 设置2G左右的持久化文件限制,大量生产持久化消息直到文件达到最大限制,此时生产者阻塞,但消费 者可正常连接并消费消息,等消息消费掉一部分,文件删除又腾出空间之后,生产者又可继续发送消息, 服务自动恢复正常。 设置2G左右的临时文件限制,大量生产非持久化消息并写入临时文件,在达到最大限制时,生产者阻 塞,消费者可正常连接但不能消费消息,或者原本慢速消费的消费者,消费突然停止。整个系统可连接, 但是无法提供服务,就这样挂了。 具体原因不详,解决方案:尽量不要用非持久化消息,非要用的话,将临时文件限制尽可能的调大。

互联网公司的面试官是如何360°无死角考察候选人的?[z]

落爺英雄遲暮 提交于 2020-03-16 08:15:27
[z]https://juejin.im/post/5c0e47ebf265da614e2be9a7 一、写在前面 最近收到不少读者反馈,说自己在应聘一些中大型互联网公司的Java工程师岗位时遇到了不少困惑。 这些同学说自己其实也做了精心准备,网上搜集了不少Java面试题,然而实际去互联网公司面试才发现,人家问的,和你准备的东西,对不上号,这就很尴尬了。。。 因此,从这篇文章开始,笔者准备写一个长期连载的系列: 《Java进阶面试系列》 。主要跟大家聊聊中大型互联网公司Java面试中的一些热门、高频的技术问题。 希望这个系列的文章,能在年后金三银四的跳槽季中,助各位小伙伴一臂之力。 二、先来体验一个真实的面试连环炮 好,闲话不多说,我们进入正题! 本系列文章,我们将会从消息中间件、分布式缓存、分布式搜索、分布式架构、海量数据、NoSQL、高并发、高可用、高性能、数据库、JVM虚拟机等各个方面来聊一下面试中的高频技术问题。 现在一些中大型互联网公司的面试官,很多都是技术水平非常不错的兄弟。在面试候选人的时候,一般都会采取连环炮的策略来深挖一个候选人的技术水平。 举个例子,比如说看你简历上写了 熟悉消息中间件(MQ技术) 。那么可能我们就会有一个类似下面这样的连环炮式发问: 说说你们公司线上生产环境用的是什么消息中间件? 那你们线上系统是有哪些技术挑战

互联网公司的面试官是如何360°无死角考察候选人的?

拈花ヽ惹草 提交于 2020-03-12 11:39:16
作者: 石杉的架构笔记 一、写在前面 最近收到不少读者反馈,说自己在应聘一些中大型互联网公司的Java工程师岗位时遇到了不少困惑。 这些同学说自己也做了精心准备,网上搜集了不少Java面试题,然而实际去互联网公司面试才发现,人家问的,和你准备的对不上号,这就很尴尬了。 二、先来体验一个真实的面试连环炮 好,闲话不多说,我们进入正题! 本系列文章,我们将会从消息中间件、分布式缓存、分布式搜索、分布式架构、海量数据、NoSQL、高并发、高可用、高性能、数据库、JVM虚拟机等各方面聊一下面试中的高频技术问题。 现在一些中大型互联网公司的面试官,在面试候选人时,一般都会采取连环炮的策略来深挖一个候选人的技术水平。 举个例子,比如说看你简历上写了熟悉消息中间件(MQ技术)。那么可能我们就会有一个类似下面这样的连环炮式发问: 说说你们公司线上生产环境用的是什么消息中间件? 那你们线上系统是有哪些技术挑战,为什么必须要在系统里引入消息中间件? 你们的消息中间件技术选型为什么是RabbitMQ? 为什么不用RocketMQ或者是Kafka?技术选型的依据是什么? 你们怎么保证消息中间件的高可用性?避免消息中间件故障后引发系统整体故障? 使用消息中间件技术的时候,你们怎么保证投递出去的消息一定不会丢失? 你们怎么保证投递出去的消息只有一条且仅仅一条,不会出现重复的数据?

消息中间件 二 之AMQP实战(下) RabbitMQ springboot实践

我的未来我决定 提交于 2020-03-10 23:15:29
实现内容 RabbitMQ + springboot 实现消息的发送和监听 springboot版本2.1.8 直接上代码 配置类 @Configuration public class RabbitConfig { // mq地址 @Bean(value = "connectionFactory") @Primary public ConnectionFactory connectionFactory( @Value("${spring.rabbitmq.host}") String host, @Value("${spring.rabbitmq.port}") int port, @Value("${spring.rabbitmq.username}") String username, @Value("${spring.rabbitmq.password}") String password, @Value("${spring.rabbitmq.virtual-host}") String virtualHost) { CachingConnectionFactory connectionFactory = new CachingConnectionFactory(); connectionFactory.setHost(host); connectionFactory

KClient——kafka消息中间件源码解读

核能气质少年 提交于 2020-03-07 06:40:13
目录 kclient消息中间件 kclient-processor top.ninwoo.kclient.app.KClientApplication top.ninwoo.kclient.app.KClientController top.ninwoo.kclient.app.handler.AnimalsHandler top.ninwoo.kclient.app.domain 总结 kclient-core top.ninwoo.kafka.kclient.boot.KClientBoot createObjectHandler createObjectsHandler createDocumentHandler createBeanHandler createBeansHandler invokeHandler 生产者和消费者创建方法 小结 top.ninwoo.kafka.kclient.boot.KafkaHandlerMeta top.ninwoo.kafka.kclient.core.KafkaProducer top.ninwoo.kafka.kclient.core.KafkaConsumer init() initAsyncThreadPool() initKafka startup() AbstractMessageTask

MQTT 消息中间件特性

南楼画角 提交于 2020-03-07 01:36:58
MQTT作为一种消息中间件,是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上。 MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。MQTT协议工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性 (1)使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合。 (2)对负载内容屏蔽的消息传输。 (3)使用TCP/IP提供网络连接。 主流的MQTT是基于TCP连接进行数据推送的,但是同样有基于UDP的版本,叫做MQTT-SN。这两种版本由于基于不同的连接方式,优缺点自然也就各有不同了。 (4)有三种消息发布服务质量: "至多一次",消息发布完全依赖底层TCP/IP网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。这一种方式主要普通APP的推送,倘若你的智能设备在消息推送时未联网,推送过去没收到,再次联网也就收不到了。 "至少一次",确保消息到达,但消息重复可能会发生。 "只有一次",确保消息到达一次。在一些要求比较严格的计费系统中,可以使用此级别。在计费系统中