ZooKeeper

RocketMQ 的核心 NameServer

做~自己de王妃 提交于 2020-08-14 10:19:13
点击蓝色“ 程序员大帝 ”关注我哟 加个“ 星标 ”,及时阅读最新技术文章 每日鸡汤,好喝 前言 本文属于《从零开始消息中间件》的系列文章,接着上篇文章 《 不要和陌生人说话,消息中间件之 Topic 》,今天来介绍一下 RocketMQ 的核心组件 NameServer。 这个东西很重要,它要管理集群里所有 Broker 的信息,让使用 MQ 的上下游系统可以通过它感知到集群的情况。 开始消息中间件学习的时候,最好有一个切入点,从而搞清楚它的架构设计细节,然后就可以申请一些机器开始落地部署了。 而 NameServer 非常适合我们入手, 因为没有 NameServer 一切都无从谈起,可以说这是 RocketMQ 运行的起点。 正文 01 什么是 NameServer? NameServer 也称之为路由中心,它的角色主要是为了感知集群里所有的节点与组件,然后配合生产者和消费者,使其能够和 MQ 系统进行通信。 针对目前流行的三种消息中间件 Kafka、 RabbitMQ 和 RocketMQ ,它们对路由中心的实现均有所不同。 Kafka 的路由中心实现相对复杂、混乱,它由 ZooKeeper 以及某个作为 Controller 的 Broker 共同完成的。 RabbitMQ 的 话 是 集 群 每个节点同时也会扮演了路由中心的角色。 而 RocketMQ

Kafka的配置文件详细描述

早过忘川 提交于 2020-08-14 06:56:17
在kafka/config/目录下面有3个配置文件: producer.properties consumer.properties server.properties (1).producer.properties:生产端的配置文件 # 指定kafka节点列表,用于获取metadata,不必全部指定 # 需要kafka的服务器地址,来获取每一个topic的分片数等 元数据信息。 metadata.broker.list=kafka01:9092,kafka02:9092,kafka03:9092 # 生产者生产的消息被发送到哪个block,需要一个分组策略。 # 指定分区处理类。默认kafka.producer.DefaultPartitioner,表通过key 哈希到对应分区 # partitioner.class=kafka.producer.DefaultPartitioner # 生产者生产的消息可以通过一定的压缩策略(或者说压缩算法)来压缩。消息 被压缩后发送到broker集群, #而broker集群是不会进行解压缩的,broker集 群只会把消息发送到消费者集群,然后由消费者来解压缩。 # 是否压缩,默认0表示不压缩,1表示用gzip压缩,2表示用snappy压缩。 # 压缩后消息中会有头来指明消息压缩类型,故在消费者端消息解压是透明的无需指定。 #

面试必问之kafka

随声附和 提交于 2020-08-14 06:24:44
问题1:消息队列的作用 1、 解耦 快递小哥手上有很多快递需要送,他每次都需要先电话一一确认收货人是否有空、哪个时间段有空,然后再确定好送货的方案。这样完全依赖收货人了!如果快递一多,快递小哥估计的忙疯了……如果有了便利店,快递小哥只需要将同一个小区的快递放在同一个便利店,然后通知收货人来取货就可以了,这时候快递小哥和收货人就实现了解耦! 2、 异步 快递小哥打电话给我后需要一直在你楼下等着,直到我拿走你的快递他才能去送其他人的。快递小哥将快递放在小芳便利店后,又可以干其他的活儿去了,不需要等待你到来而一直处于等待状态。提高了工作的效率。 3、 削峰 假设双十一我买了不同店里的各种商品,而恰巧这些店发货的快递都不一样,有中通、圆通、申通、各种通等……更巧的是他们都同时到货了!中通的小哥打来电话叫我去北门取快递、圆通小哥叫我去南门、申通小哥叫我去东门。我一时手忙脚乱…… 我们能看到在系统需要交互的场景中,使用消息队列中间件真的是好处多多,基于这种思路,就有了丰巢、菜鸟驿站等比小芳便利店更专业的“中间件”了。 问题2:Kafka中有哪几个组件? 主题:Kafka主题是一堆或一组消息。 生产者:在Kafka,生产者发布通信以及向Kafka主题发布消息。 消费者:Kafka消费者订阅了一个主题,并且还从主题中读取和处理消息。 经纪人:在管理主题中的消息存储时,我们使用Kafka

【赵强老师】Kafka的体系架构

纵然是瞬间 提交于 2020-08-14 06:01:45
一、什么是Kafka? 数据工程中最具挑战性的部分之一是如何从不同点收集和传输大量数据到分布式系统进行处理和分析。需要通过消息队列正确地分离大量数据,因为如果一部分数据无法传送,则可以在系统恢复时传输和分析其他数据。有两种消息排队,对于上述目的,它们都是可靠的和异步的。点对点(Point to point)和发布者——订阅者(publisher-subscriber)。下图展示了一个典型的消息系统,其中:消息的生产者负责产生消息;消息的消费者负责处理消息。 Kafka是一个分布式发布——订阅消息传递系统。Kafka快速、可扩展且耐用。它保留主题中的消息源。生产者将数据写入主题,消费者从主题中读取数据。 Zookeeper需要覆盖Kafka生态系统,因此有必要下载它,更改其属性并最终设置环境。在运行Zookeeper之后,应该下载Kafka,然后开发人员可以借助一些指令创建代理,集群和主题。 二、消息队列的分类 点对点(Queue) 在点对点或一对一中,有一个发件人和正在监听发件人的多个消费者。当一个消费者从队列收到消息时,该特定消息将从队列中消失,而其他消费者无法获得该消息。 发布和订阅系统(Topic) 在发布者——订阅者中,发布者向同时收听发布者的多个消费者或订阅者发送消息,并且每个订阅者可以获得相同的消息。数据应通过数据管道传输,数据管道负责整合来自数据源的数据。 三

activemq 主从 高可用配置 加 topic 持久化

耗尽温柔 提交于 2020-08-14 05:55:22
activemq 主从 高可用配置 加 topic 持久化 参考文档: https://blog.csdn.net/wangaiheng/article/details/79962218 https://www.cnblogs.com/nm666/p/10427622.html zookeeper 安装zookeeper 配置zookeeper # The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. dataDir=/data/zookeeper/data dataLogDir=/data/zookeeper/log # the

涨姿势了解一下Kafka消费位移可好?

十年热恋 提交于 2020-08-14 00:24:30
摘要:Kafka中的位移是个极其重要的概念,因为数据一致性、准确性是一个很重要的语义,我们都不希望消息重复消费或者丢失。而位移就是控制消费进度的大佬。本文就详细聊聊kafka消费位移的那些事,包括: 概念剖析 kafka的两种位移 关于位移(Offset),其实在kafka的世界里有两种位移: 分区位移:生产者向分区写入消息,每条消息在分区中的位置信息由一个叫offset的数据来表征。假设一个生产者向一个空分区写入了 10 条消息,那么这 10 条消息的位移依次是 0、1、…、9; 消费位移:消费者需要记录消费进度,即消费到了哪个分区的哪个位置上,这是消费者位移(Consumer Offset)。 注意,这和上面所说的消息在分区上的位移完全不是一个概念。上面的“位移”表征的是分区内的消息位置,它是不变的,即一旦消息被成功写入到一个分区上,它的位移值就是固定的了。而消费者位移则不同,它可能是随时变化的,毕竟它是消费者消费进度的指示器。 消费位移 消费位移,记录的是 Consumer 要消费的下一条消息的位移, 切记,是下一条消息的位移! 而不是目前最新消费消息的位移 假设一个分区中有 10 条消息,位移分别是 0 到 9。某个 Consumer 应用已消费了 5 条消息,这就说明该 Consumer 消费了位移为 0 到 4 的 5 条消息,此时 Consumer 的位移是 5

kafka的认识、安装与配置

被刻印的时光 ゝ 提交于 2020-08-13 19:51:05
认识Kafka 花费越少的精力在数据移动上,就能越专注于核心业务 --- 《Kafka:The Definitive Guide》 认识 Kafka 之前,先了解一下 发布与订阅消息系统 :消息的发送者不会直接把消息发送给接收者、发送者以某种方式对消息进行分类,接收者订阅它们,以便能接受特定类型的消息。发布与订阅系统一般会有一个 broker(n. 经纪人、中间商) 也就是发布消息的中心点。 Kafka 是一款基于发布与订阅的消息系统,一般被称为“分布式提交日志”或者“分布式流平台”。 Kafka 的数据单元被称作 消息 ,可以看作是数据库中的一行数据,消息是由字节数组组成,故对 kafka 来说消息没有特别的意义,消息可以有一个可选的元数据,也就是键。键也是一个字节数组,同样对于 kafka 没有什么特殊意义。键可以用来将消息以一种可控的方式写入分区。最简单的例子就是为键生成一个一致性散列值,然后使用散列值对主题分区数进行取模,为消息选择分区。这样可以保证具有相同键的消息总是被写在相同的分区上。保证消息在一个主题中顺序读取。 为了提高效率,消息将被分批次写入 Kafka 。 批次 就是一组消息,类似于 redis 中的流水线(Pipelined)操作。 主题和分区 kafka 的消息通过主题进行分类,主题就相当于数据库中的表,主题可以被分成若干个分区,一个分区就是一个提交日志

精心整理,kafka常见面试题,看这篇文章就够了(共17题,含详细解答)

試著忘記壹切 提交于 2020-08-13 17:46:40
【 Java架构师面试网 】收集整理了几乎整个架构师学习途中会遇到的面试题,希望大家都能早日圆自己的架构师梦~ 公众号: Java架构师面试网 ,关注回复“ 资料 ”即可领取精美整理的面试资料一份哦~ Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,Linkedin于2010年贡献给了Apache基金会并成为顶级开源 项目。 1.Kafka 的设计时什么样的呢? Kafka 将消息以 topic 为单位进行归纳 将向 Kafka topic 发布消息的程序成为 producers. 将预订 topics 并消费消息的程序成为 consumer. Kafka 以集群的方式运行,可以由一个或多个服务组成,每个服务叫做一个 broker. producers 通过网络将消息发送到 Kafka 集群,集群向消费者提供消息 2.数据传输的事物定义有哪三种? 数据传输的事务定义通常有以下三种级别: ( 1)最多一次: 消息不会被重复发送,最多被传输一次

大数据就业前景如何?现在学习大数据已经晚了吗?

て烟熏妆下的殇ゞ 提交于 2020-08-13 16:30:14
  大数据就业 前景如何?现在学习大数据已经晚了吗?作为初入社会的大学生,或者想改变环境转行的同学,看到大数据技术开发者的高薪资都想进入这个行业,但是现在大数据技术依然想之前那样火爆吗?是不是学习了大数据技术就可以获得高薪呢?   大数据从最开始的概念兴起,到现在各大互联网公司逐步推广使用。已经逐渐成熟,目前营销、电商、教育领域等等对大数据的应用已经初见效果。大数据也从最开始的概念过渡到实际应用领域。对技术人员的招聘也更加趋于理性。所以并非大数据技术不再火爆,而是企业对于大数据从业人员的要求提高了。   根据招聘网站显示,目前大数据工作招聘需求,薪资普遍稳定在15-30K之间。其中目前刚入行的大数据工程师平均薪资在1万左右,而随着工作时间的增加,3~5年经验的大数据工程师的薪资待遇将达到3万元左右。   据相关机构统计,未来的3~5内大数据人才的缺口将达到150万,而且随着大数据的发展,人才缺口将不断扩大,所以大数据不管是目前还是未来长期都将是紧缺人才,受到各大互联网企业的关注。   如果你想投入大数据的怀抱,但却苦于不知如何下手。而当你准备学习大数据技术时,你可以了解一下博斌去计算大数据课程,主要是针对有一定编程开发经验的学员研发的课程。从大数据基础增强开始,内容精准聚焦大数据开发过程中必备的离线数据分析、实时数据分析和内存数据计算等重要内容;涵盖了大数据体系中几乎所有的核心技术

云原生中间件领先实践,轻舟中间件三大案例分析

有些话、适合烂在心里 提交于 2020-08-13 16:27:44
相较传统中间件,云原生中间件更能为企业解决SLA 保障难、运维难、成本高等一系列问题。然而, 中间件技术栈复杂 , 对专业程度要求高 , 如果 缺少生产环境的大规模实践 , 往往难以落地 。 作为云原生中间件的长期实践者, 轻舟中间件 经过可靠性、可扩展性、性能及稳定性测试,已历经网易严选、网易云音乐、网易传媒等 众多大规模 、 高性能业务的 生产环境实战验证。 电商:高 SLA 保障业务连续性 网易严选采用 轻舟中间件 Kafka、RocketMQ ,实现容器化分布式消息中间件,支持从环境搭建、软件安装、服务管理/配置、应用部署/配置/升级,以及监控、告警、故障恢复等端到端的自动化,为 SLA 提供了更可靠的保障。 另外,网易严选也引入了轻舟中间件 RDS MySQL,为其提供 MySQL 组复制(MGR)集群的多数据中心高可用、自动的故障检测修复以及全方位的告警监控,最大限度保障服务可用性。 音乐:节约资源成本30%以上 网易云音乐引入 轻舟中间件 Redis,以容器技术为核心,避免虚拟化开销,通过精细化编排,实现高效率、高密度混合部署、租户隔离,提高资源利用率,节约资源成本 30% 以上。并且针对极致性能场景,从计算、网络到服务层进行了全方位的优化。 传媒:轻松运维,业务不间断 网易传媒借助 轻舟中间件 Kafka、Elasticsearch