Kafka

该如何选择消息队列?

↘锁芯ラ 提交于 2020-11-08 05:31:53
在高并发业务场景下,消息队列在流量削峰、解耦上有不可替代的作用。当前使用较多的消息队列有 RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、Pulsar 等。 消息队列这么多,到底该选择哪款消息队列呢? 选择消息队列的基本标准 虽然这些消息队列在功能和特性方面各有优劣,但我们在选择的时候要有一个基本标准。 首先,必须是开源的产品。开源意味着,如果有一天你使用的消息队列遇到了一个影响你系统业务的 Bug,至少还有机会通过修改源代码来迅速修复或规避这个 Bug,解决你的系统的问题,而不是等待开发者发布的下一个版本来解决。 其次,这个产品必须是近年来比较流行并且有一定社区活跃度的产品。流行的好处是,只要使用场景不太冷门,遇到 Bug 的概率会非常低,因为大部分遇到的 Bug,其他人早就遇到并且修复了。在使用过程中遇到的一些问题,也比较容易在网上搜索到类似的问题,然后很快的找到解决方案。还有一个优势就是,流行的产品与周边生态系统会有一个比较好的集成和兼容。 最后,作为一款及格的消息队列,必须具备的几个特性包括: 消息的可靠传递:确保不丢消息; Cluster:支持集群,确保不会因为某个节点宕机导致服务不可用,当然也不能丢消息; 性能:具备足够好的性能,能满足绝大多数场景的性能要求。 接下来看一下有哪些符合上面这些条件,可供选择的开源消息队列。 RabbitMQ

阿里、字节跳动、小米、腾讯面试题:基础+JVM+框架+多线程+数据库+算法等,掌握80%必进大厂

流过昼夜 提交于 2020-11-07 12:35:02
大厂永远是程序员梦想的地方,俗话说的话 “不想当将军的士兵不是好士兵”, 不想进大厂的程序员是没有梦想的 无论是现在还是以前进大厂的门槛始终很高,最重要的还是面试环节,大厂的面试题是很难的,这里我准备了一份阿里、腾讯、京东、华为合集大厂300+道面试题分享给大家, 文中有对应的面试答案免费提供!! 大厂面试资料整理不易、对这份面试答案感兴趣的工程师朋友们劳烦帮忙点赞一下 JAVA基础 JAVA中的几种基本数据类型是什么,各自占用多少字节。 String类能被继承吗,为什么。 String,Stringbuffer,StringBuilder的区别。 ArrayList和LinkedList有什么区别。 讲讲类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数,字段,当new的时候,他们的执行顺序。 用过哪些Map类,都有什么区别,HashMap是线程安全的吗,并发下使用的Map是什么,他们内部原理分别是什么,比如存储方式,hashcode,扩容,默认容量等。 JAVA8的ConcurrentHashMap为什么放弃了分段锁,有什么问题吗,如果你来设计,你如何设计。 有没有有顺序的Map实现类,如果有,他们是怎么保证有序的。 抽象类和接口的区别,类可以继承多个类么,接口可以继承多个接口么,类可以实现多个接口么。 继承和聚合的区别在哪。 IO模型有哪些

Kafka的Topic配置详解

北战南征 提交于 2020-11-07 11:56:49
一、Kafka中topic级别配置 配置topic级别参数时,相同(参数)属性topic级别会覆盖全局的,否则默认为全局配置属性值。 创建topic参数可以设置一个或多个--config "Property(属性)",下面是创建一个topic名称为"my-topic"例子,它设置了2个参数max message size 和 flush rate. (A)创建topic时配置参数 bin/kafka-topics.sh --zookeeper 192.168.2.225:2183/config/mobile/mq/mafka02 --create --topic my-topic --partitions 1 --replication-factor 1 --config max.message.bytes=64000 --config flush.messages=1 (B)修改topic时配置参数 覆盖已经有topic参数,下面例子修改"my-topic"的max message属性 bin/kafka-topics.sh --zookeeper192.168.2.225:2183/config/mobile/mq/mafka02 --alter --topic my-topic --config max.message.bytes=128000 (C

腾讯内容首发:分布式核心原理解析笔记+分布式消息中间件实践笔记PDF版

ε祈祈猫儿з 提交于 2020-11-07 09:56:41
分布式消息中间件实践笔记 首先,这份分布式消息中间件实践笔记是以Java语言编写。 消息中间件是分布式系统中的重要组件,在实际工作中常用消息中间件进行系统间数据交换,从而解决应用解耦、异步消息、流量削峰等问题,实现高性能、高可用、可伸缩和最终一致性架构。 目前市面上可供选择的消息中间件有RabbitMQ、ActiveMQ、 Kafka、 RocketMQ、 ZeroMQ、 MetaMQ 等。 这份笔记结合作者近年来在实际项目中使用消息中间件的经历和踩过的一些坑总结整理而成,主要介绍消息中间件使用的背景、基本概念,以及常用的四种消息中间件产品在各个业务场景中的使用案例。作为案例介绍,虽然不能对各种消息中间件产品的所有特性做详细说明,但是希望读者可以通过每章中的案例讨论和实践建议得到启发,为在实际工作中进行产品选型、业务场景方案制定、性能调整等提供思路。 下面会为大家分享分布式消息中间件实践笔记+分布式核心原理解析笔记,为了不影响大家的阅读体验,免费的获取方式放在了文末! 消息队列 系统间通信技术介绍 为何要用消息队列 消息队列的功能特点 设计一个简单的消息队列 消息处理中心 客户端访问 消息协议 AMQP MQTT STOMP XMPP JMS RabbitMQ 简介 工程实例 Java 访问RabbitMQ实例 Spring 整合RabbitMQ 基于RabbitMQ的异步处理

【Kafka】windows下搭建Kafka运行环境

痞子三分冷 提交于 2020-11-06 23:56:10
一、安装JDK 1.JDK下载路径 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2.按照网上参考步骤,依次配置JAVA_HOME、Classpath和Path,然后打开cmd,运行java -version成功,则JDK配置成功; 二、安装Zookeeper 由于Kafka的运行依赖于Zookeeper,所以在运行Kafka之前需要安装并运行Zookeeper 1.Zookeeper下载路径 http://zookeeper.apache.org/releases.html#download 2.解压到文件下(我的目录是 D:\Program Files\zookeeper-3.5.2-alpha) 3.打开D:\Program Files\zookeeper-3.5.2-alpha\conf,复制zoo_sample.cfg重命名成zoo.cfg 4.编辑zoo.cfg,修改dataDir为【dataDir=/zookeeper-3.5.2-alpha/data】 5.添加环境变量 ZOOKEEPER_HOME D:\Program Files\zookeeper-3.5.2-alpha Path 在现有的值后面添加 ;%ZOOKEEPER_HOME%

消息中间件 分布式

混江龙づ霸主 提交于 2020-11-06 07:58:17
消息队列用处以及基本介绍 「消息队列」看过来! kafka 讲讲acks参数对消息持久化的影响 缓存和数据库双写一致保证 Elasticsearch 原理 openresty 入门教程 用户在电商网站中购买成功了,那么它在微服务中经历了什么(转) 分布式事务 分布式系统的阿喀琉斯之踵:数据一致性 有使用过缓存吗?Redis和Memcached有什么区别? Redis的线程模型?单线程的Redis如何实现高性能的? 使用Redis实现过分布式锁吗?什么是分布式锁 有什么其他方式实现分布式锁吗?ZK实现的和Redis有何区别? zk实现的分布式锁如何解决网络抖动的锁丢失导致的并发问题? zk底层的zab算法有了解吗?如何进行选主的?paxos算法呢? 分布式事务有了解吗?如何实现分布式事务? 什么是2PC,和3PC有什么区别? 如何实现一个高性能的服务接口? 什么是分库分表?为什么要做,怎么做 有没有做过限流降级相关的事情? 常见消息中间件 activeMQ 是一个完全支持JMS1.1和J2EE1.4规范的 rabbitMQ 是一个开源的AMQP实现,用于分布式系统中存储转发消息 kafka 是一个高吞吐量的分布式发布订阅消息系统,是一个分布式的,分区的,可靠的分布式日志存储服务。(不是一个严格消息中间件 ) 高吞吐量:即使非常普通的硬件kafka也可以支持每秒数百万的消息

filebeat配置文件

喜夏-厌秋 提交于 2020-11-06 05:50:32
filebeat主要用于收集和转发日志。filebeat监视指定的日志文件和位置,收集日志事件,并将它们转发到es或logstash进行索引。 安装 官网:https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-installation.html # curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.5.2-x86_64.rpm # sudo rpm -vi filebeat-6.5.2-x86_64.rpm 说明 Filebeat的工作原理:启动Filebeat时,它会启动一个或多个inputs,这些inputs将查找指定的log的路径。 对于查找到的每个日志,Filebeat将启动一个harvester。 每个harvester读取单个日志的新内容,并将新日志数据发送到libbeat,libbeat聚合事件并将聚合数据发送到配置的output。 我们采用的是 filebeat -> kafka ->logstash -> es。 配置文件 filebeat 配置文件比较简单, 只需要配置一个filebeat.yml input # ============== Filebeat prospectors ==

每天2小时,奋战31天,我凭这份PDF拿下腾讯、阿里、京东等offer

人走茶凉 提交于 2020-11-05 10:08:01
如果像我一样错过暑期return offer,那就不得不加入秋招大军,去经历残酷的海量网申、笔试、面试,在明白找工作的痛苦和不易同时身心俱疲…… 为了最大化求职血泪史的意义,助力大家在招聘季生存下来,我总结了经历的面试经验和心得,重在实用(学弟学妹们都可以参考)。 希望给大家带来一点干货,消除一点迷茫,增加一点把握,求职不易,大家加油! 因为疫情影响,很多大学生非常焦虑,对求职抱有悲观态度。 很多小伙伴抱怨 “2021届也太惨了吧”。 没办法呀,这就是人生吧。 之后的人生中永远会有意外,永远会有困难。 我们别无他法,只有去面对。 除非时间停止,否则我们只能前行。 保持初心,继续努力 想知道我是如何拿下腾讯等大厂的offer的吗?今天分享我的武功秘籍: 资深架构师整理的Java核心技术,面试时面试官必问的知识点。 篇章包括了很多知识点,其中包括了有: Java. MyBatis. ZooKeeper. Dubbo. Elasticsearch. Memcached.Redis. MySQL Spring. Spring Boot. Spring Cloud. RabbitMQ. Kafka.Linux等技术栈等多个知识点! 由于整个文档比较全面,内容比较多,所以我分享的知识里面可能会有一些疏漏整个核心知识点都整理好了,可以关注我, 设计模式技术文档 观察者模式 工厂模式 命令链模式

阿里二面惨败,痛定思痛狂刷1000+面试题,成功五面上岸滴滴(面经+面试题分享)

◇◆丶佛笑我妖孽 提交于 2020-11-05 09:01:49
阿里一面 突如其来的一面 1.电话预约:阿里的电话总是那么突然, 经常在上班上的好好的时候, 就突然来了说个杭州的座机电话,接的多了看到就可以猜到。大家习惯就好, 一般面试官会提前打电话预约时间,可以预约一个自己合适的时间,因为阿粉我加班比较多,所以预约的都是晚上9, 10点~ ,不得不说,阿里的面试官也挺辛苦的。 2.介绍自己:常规流程,简单介绍自己的毕业院校,工作经历以及一些兴趣爱好, 提交准备好,多背几遍。 3.介绍自己做的项目:按照己熟悉的项目流程框架去逐步介绍,项目主要做了什么,用了什么,这里-定要讲己熟悉的部分,因为面试官会根据你提到的技术点展开后续的问题,千万不要给自己挖填不了的坑。我这边介绍的时候提到了Kafka ,所以后面面试官问了好几个Kafka的问题,所以-定要说自己熟悉的技术。 4.项目中最有难度和记忆最深刻的项目: 这个问题按照实际去回答就好,可以说自己做过的但不一定是最难的,可以是自己最熟悉的,觉得有亮点可以说的,避免讲不了几句就没话可说的情况。 5. Hashmap原理: Java面试的必问问题,不需要多说什么了。这里需要注意,不能只看到表面现象, 需要学会多延伸问题,从Hashmap可以延伸到HashTable , ConcurrentHash ,以及线程安全等问题。 6.底层红黑树是什么?什么是红黑树:这个问题就是对上面问题-个很好的补充

腾讯云大数据实战案例

[亡魂溺海] 提交于 2020-11-05 01:48:34
内容来源: 2017年5月20日,腾讯高级软件工程师吴友强在“中生代技术沙龙系列之互联网大数据”进行《 腾讯云 大数据实战》演讲分享。IT 大咖说作为独家视频合作方,经主办方和讲者审阅授权发布。 阅读字数: 1954 | 3分钟阅读 嘉宾演讲视频回顾及PPT ,请点击: http://t.cn/RgMHJEC 摘要 腾讯云 是腾讯公司倾力打造的面向广大企业和个人的公有云平台。腾讯高级软件工程师吴友强将为我们分享大数据在 腾讯云 的实践。 一、TDF(数据工坊)简介 TDF简介 源于 腾讯云 数智大数据套件的轻量云上大数据产品,提供基于SQL的大数据计算框架。 适用于需要动态灵活获取大数据计算能力进行批量计算、日志处理或数据仓库应用的场景。 因为公有云上的用户需要简单,所以要有一个可视化的集成开发环境,在这环境中可以进行数据血缘管理、工程/工作流管理、用户管理和告警/日志。通过一些工具把数据导入到数据存储里面,然后对数据进行处理,最终输出数据。下层的任务和资源调度是用来调度用户的任务在各个资源上运行起来。底层就是 腾讯云 的基础设施。 二、CDP(数据管道)实现详解 CDP整体架构-设计 上图是我们刚开始在开发之前做的设计。最左边有很多客户的数据点,比如log、DB Binlog、自建的Kafka以及自定义数据。我们会利用一些工具开发一个Flume插件,帮助它把数据上云。