总结下kafka 高性能的几个关键点是: 1:使用批量处理的方式 去提升系统的吞吐能力 2:基于磁盘文件高性能的顺序读写的特性来设计存储结构 3:利用操作系统的PageCache 来缓存数据  减少IO 并提升读的性能 4:使用零拷贝的技术加速消费流程 如果遇到冲文件读出数据后在通过网络发送出去的场景,并且 这个过程中你不需要 对这些数据进行处理  那一定使用这个零拷贝的方法 可以有效的提升能力…
消息队列中间件的使用并不复杂,但如果你对消息队列不熟悉,很难构建出健壮.稳定并且高性能的企业级系统,你会面临很多实际问题: 如何选择最适合系统的消息队列产品? 如何保证消息不重复.不丢失? 如果你掌握了消息队列的底层技术,无论使用哪种消息队列产品,你都可以从原理层面来分析问题,再简单看一下它的API和相关配置项,就能很快知道该如何配置消息队列,写出高性能并且可靠的程序. 李玥将从源码的角度带你了解消息队列,让你具备从源码角度分析和解决实际业务问题的能力,并且借由消息队列的底层技术,带你了解其优秀…
目录 1.消息列队概述 1.1消息队列MQ 1.2AMQP和JMS 1.2.1AMQP 1.2.2JMS 1.2.3AMOP 与 JMS 区别 1.3消息队列产品 1.3.1 Kafka 1.3.2 RocketMQ 1.3.3RabbitMQ 1.4RabbitMQ 简单模式 工作模式 订阅模式 路由模式 通配符模式(主题模式) 2.安装及配置RabbitMQ 用户角色 3.python使用RabbitMQ 轮询消费模式 队列持久化 广播模式 1.消息列队概述 1.1消息队列MQ MQ全称为M…
背景分析 消息队列这个类型的组件一直是非常重要的组件,当经过两家企业后我就很坚信这个结论了.队列这种东西,最广泛的作用还是在于解耦,宽泛一点的说,它可以将不同部门的工作内容进行有效的整合,基于一个约定好的格式,就可以两头互相不干扰的进行开发.可以说这个生产消费的思想不仅仅适用于程序也适用于非常多的地方.目前对于我看到的来说,kafka更多的还是做为一个数据源,数据桥梁的作用,不同业务之间的沟通.比如需要实时接入A部门的业务数据的话,就会有这样的手段:   落地到HDFS的数据会用来进行一些算法上…
12.kafka如何保证数据的不丢失 12.1生产者如何保证数据的不丢失 kafka的ack机制:在kafka发送数据的时候,每次发送消息都会有一个确认反馈机制,确保消息正常的能够被收到 如果是同步模式:ack机制能够保证数据的不丢失,如果ack设置为0,风险很大,一般不建议设置为0 producer.type=sync  request.required.acks=1 如果是异步模式:通过buffer来进行控制数据的发送,有两个值来进行控制,时间阈值与消息的数量阈值,如果buffer满了数据还…
1. Kafka介绍 l  Apache Kafka是一个开源消息系统,由Scala写成.是由Apache软件基金会开发的一个开源消息系统项目. l  Kafka最初是由LinkedIn开发,并于2011年初开源.2012年10月从Apache Incubator毕业.该项目的目标是为处理实时数据提供一个统一.高通量.低等待的平台. l  Kafka是一个分布式消息队列:生产者.消费者的功能.它提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现. l  Kafka对…
消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型,或者称为6种不同的使用场景,本文便是对这6种模型加以叙述. 2. Tutorials 在学习6种模型之前,我们首先需要安装RabbitMQ.RabbitMQ支持多种系统平台,各平台的安装方法可以点此查看.安装好之后,我们使用如下命令启用Web端的管理插件:rabbitmq-plugins enabl…
1.下载ActiveMQ 去官方网站下载:http://activemq.apache.org/ 2.运行ActiveMQ 解压缩apache-activemq-5.5.1-bin.zip,然后双击apache-activemq-5.5.1\bin\activemq.bat运行ActiveMQ程序. 3.代码:  需要参数:消息队列IP.端口默认61616,用户名,密码,queue.写在配置文件中. 消费消息代码,项目启动开启一条线程,线程执行以下代码.一直监听消息队列,有数据就消费. //连接…
Android 的两种崩溃 Java 崩溃就是在 Java 代码中,出现了未捕获的异常,导致程序异常退出 Native 崩溃一般都是因为在 Native 代码中访问非法地址,也可能是地址对齐出了问题,或者发生了程序主动 abort,这些都会产生响应的 singal 信号,导致程序异常退出 1.Native 崩溃的捕获流程 参考资料: Android 平台 Native 代码的崩溃捕获机制及实现 编译端编译时保留带符号信息的文件: 客户端将崩溃日志和尽可能多的有用信息写入日志文件,并上传到服务器:…
3.kafka的架构模型 1.producer:消息的生产者,主要是用于生产消息的.主要是接入一些外部的数据源,从外部获取数据,比如说我们可以从flume获取数据,还可以通过ftp传入数据等,还可以通过kafka的API生产数据,通过push的方式,主动的将数据推送到kafka的topic当中去 2.topic:主题,里面是一类消息的抽象的集合,说白了这下面就是用来装各种数据的 3.paritition:消息的分区.为了解决数据保存的横向扩展的问题,所以将一个topic分为多个partition…