新年10个Flag实现中~
访问量
1.7M
文章数
147
运行天
1081
Kafka中,必须要知道的概念就是消息和日志段。一、V0和V1消息在0.11之前,消息被称为Message,一批以数组形式保存的消息被称为消息集合(MessageSet)。消息集合只是简单的聚合,消息集合中的每条消息都有自己的元信息(Metadata),这个并没有聚合。0.10前Messageversion=0,0.10~0.11版本Messageversion=1,这个Messageversion被存储为魔术数字(MagicNumber),放在消息里面。1.1V0消息  V0版本的结构都比较简单:attribute:1字节,低3位是压缩类型,0=NONE,1=GZIP,2=Snappy,3=LZ4(LZ4需要kafka0.9.x以上)key:key可以为null,如果为
一、Kafka的基本框架在Kafka中,发布和订阅的对象称为主题(Topic),主题可以有多个。向主题发布消息的应用称为生产者(Producer),订阅这些主题消息的称为消费者(Consumer)。生产者可以有多个,可以在不同的系统;消费者也可以有多个,同样也可以在不同的系统。生产者和消费者都称为客户端(Clients),这个概念与Kafka服务器(Server)对应。 Kafka服务端可以有多个实例构成集群,每个实例都称为一个消息代理(Broker),这些实例可以分布在一台机器上,也可以分布在多台机器上以达到高可用的目的。你可以在消息中间件中经常看到Broker这个词,例如MQTTBroker等,Broker的本意是“经纪人”、“代理人”等等,中间件正是这样一个中间代理的角色。K
一、系统间的通信方式分布式系统常常需要进行系统间通信:常见的系统间通信方式有两种:远程过程调用(RemoteProcedureCall,RPC)消息队列(MessageQueue,MQ)对于RPC,我们可以同步请求(请求、等待;处理、响应),也可以异步请求(请求、标记请求、等待;处理、完成;释放标记/超时处理)。然而RPC有很多缺点:(1)任何一方出现故障,都可能会造成消息丢失。当然你也可以通过应用/框架重试+多实例来缓解,但只要任何一方全部挂掉,消息必然丢失。(2)平台、协议、开发语言等差异导致对接复杂度高。虽然GRPC也是跨平台跨语言的,但并非所有的系统都会引入GRPC,protobuf也不能完全包含所有的开发语言。(3)服务器性能差异,导致消息堆积。上游数据源(比如上游服务器、或者作为
一、Kafka的名字是怎么来的我一直就怀疑是不是初中学的小说家“弗朗茨·卡夫卡”,没错就是。JayKreps(工作于LinkedIn,Kafka创始人之一):我想既然Kafka是为了写数据而产生的,那么用作家的名字来命名会显得更有意义。我在大学时期上过很多文学课程,很喜欢FranzKafka。况且,对于开源项目来说,这个名字很酷。不过,名字和应用本身基本没有太多联系。  ——《Kafka权威指南》P13二、Kafka和Scala、Java是什么关系?Kafka是使用Java开发的应用程序。 ——《Kafka权威指南》P14 截至本书写作时,Kafka的版本是0.9.0.1,对应的Scala版本是2.11.0。——《Kafka权威指南》P17 
前言最近在系统地学习知识,因此5月~6月的目标是完成Zookeeper和Kafka的学习(以前高考都还有老师给你一份提纲要学什么东西,现在自己给自己定义提纲才发现是很痛苦的事情)。学习提纲初步定义的框架如下:1、Kafka原理和源码动物书《Kafka权威指南》(ISBN978-7-115-47327-1):了解正确的基本知识和术语,不会被网文骗…Kafka官网文档:主要关注0.9.0(重大变化,低于该版本的没有意义了)、2.2.1(目前使用到的)、最新版本(最新的特性)。有关如何选择版本学习,我也是参考的商业的软件一般会选择什么版本的Kafka,比如AWS的MSK服务,它提供的版本是1.1.1、2.2.1、2.3.1、2.4.1,说明这几个版本是有特殊的地方的,比如十分稳定,或者支持了什么重
一、搭建zookeeper集群1、下载镜像$wgethttps://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5-bin.tar.gz./$tar-zxvfapache-zookeeper-3.5.5-bin.tar.gz$rm-rfapache-zookeeper-3.5.5-bin.tar.gz$sudomvapache-zookeeper-3.5.5-bin/usr/local/apache-zookeeper-3.5.52、修改配置文件创建配置文件:$cd/usr/local/apache-zookeeper-3.5.5/conf$sudovizookeeper
一、kafka参数1.1实例规模机器台数:至少3台,推荐5台。1.2实例参数经验:一定要多核心。多核减轻了线程上下文切换的开销,提升的性能可不止核心数那么多倍。CPU和内存:标配2核8G,如果经费有限内存可以适量小一点网络带宽:10Gbps磁盘:kafka根据业务需要,一般50GBSSD1.3是否启用TLS加密通常不需要,kafka一般是内网服务器使用,不会暴露公网,因此不用TLS,避免TLS加解密带来的CPU开销,加快消息收发速度。1.4监控和运维(1)监控组件:Prometheus:目前十分火的监控中间件,尤其是有K8S+Grafana可视化使用,效果非常好OpenFalcon:小米开源的一款监控中间件,能够满足监控需求,而且免费。(2)监控参数:主机基本参数:CPU、内存、磁盘,必看。
1