自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

张伯毅的专栏

人生就是一道证明题,证明我们的存在不是偶然....

原创 ---------- 2019年12月31日 --------------

2019-12-31 23:59:57

阅读数 100

评论数 0

翻译 SpringBoot 微服务采用oauth2和shiro+JWT实现鉴权

接口说明,支持两种方式,两套接口 代码地址: https://github.com/BoYiZhang/oauth2-shiro-jwt 1.使用JWT生成Token,使用shiro实现鉴权 2.使用oauth2生成token,spring security实现鉴权 使用JWT生成Toke...

2019-12-31 18:13:25

阅读数 672

评论数 0

翻译 Kafka学习笔记: 控制器Controller

控制器组件(Controller),是 Apache Kafka 的核心组件。它的主要作用是在 Apache ZooKeeper 的帮助下管理和协调整个 Kafka 集群。集群中任意一台 Broker 都能充当控制器的角色,但是,在运行过程中,只能有一个 Broker 成为控制器,行使其管理和协调...

2019-12-29 18:33:02

阅读数 155

评论数 0

翻译 Kafka学习笔记: Kafka 2.3消费者组重平衡

消费者组的重平衡流程,它的作用是让组内所有的消费者实例就消费哪些主题分区达成一致。重平衡需要借助 Kafka Broker 端的 Coordinator 组件,在 Coordinator 的帮助下完成整个消费者组的分区重分配。 触发与通知 重平衡的 3 个触发条件: 组成员数量发生变化。 ...

2019-12-29 17:38:06

阅读数 146

评论数 0

翻译 Kafka学习笔记: 请求模式 [ Reactor ]

Kafka 使用的是 Reactor 模式。 Reactor 模式概览 多个客户端会发送请求给到 Reactor。Reactor 有个请求分发线程 Dispatcher,也就是图中的 Acceptor,它会将不同的请求下发到多个工作线程中处理。Acceptor 线程只是用于请求分发,不涉及...

2019-12-29 13:32:31

阅读数 107

评论数 0

翻译 Kafka学习笔记: 副本机制

所谓副本(Replica),本质就是一个只能追加写消息的提交日志。根据 Kafka 副本机制的定义,Kafka 是有主题概念的,而每个主题又进一步划分成若干个分区。副本的概念实际上是在分区层级下定义的,每个分区配置有若干个副本。同一个分区下的所有副本保存有相同的消息序列,这些副本分散保存在不同的 ...

2019-12-27 17:29:40

阅读数 85

评论数 0

翻译 Kafka学习笔记 : 消费进度监控 [ 消费者 Lag 或 Consumer Lag ]

所谓滞后程度,就是指消费者当前落后于生产者的程度。 Lag 应该算是最最重要的监控指标了。它直接反映了一个消费者的运行情况。一个正常工作的消费者,它的 Lag 值应该很小,甚至是接近于 0 的,这表示该消费者能够及时地消费生产者生产出来的消息,滞后程度很小。反之,如果一个消费者 Lag 值很大...

2019-12-27 16:36:32

阅读数 392

评论数 0

翻译 Kafka学习笔记 : 消费者 TCP 连接

KafkaProducer 在构建实例的时候,会在后台默默地启动一个 Sender 线程,这个 Sender 线程负责 Socket 连接的创建。并且连接bootstrap.servers指定的的所有 broker. 构建 KafkaConsumer 实例时是不会创建任何 TCP 连接的...

2019-12-27 15:35:46

阅读数 119

评论数 0

翻译 Kafka学习笔记: 多线程开发消费者

从 Kafka 0.10.1.0 版本开始,KafkaConsumer 就变为了双线程的设计,即用户主线程和心跳线程。 所谓用户主线程,就是你启动 Consumer 应用程序 main 方法的那个线程,而新引入的心跳线程(Heartbeat Thread)只负责定期给对应的 Broker 机...

2019-12-27 14:55:50

阅读数 95

评论数 0

翻译 Kafka学习笔记: CommitFailedException 异常处理

场景一: 因为处理时间超过max.poll.interval.ms 所设定的时间. 简化你的消息处理逻辑。具体来说有 4 种方法: 缩短单条消息处理的时间。比如,之前下游系统消费一条消息的时间是 100 毫秒,优化之后成功地下降到 50 毫秒,那么此时 Consumer 端的 TPS 就提...

2019-12-27 00:11:01

阅读数 106

评论数 0

翻译 Kafka学习笔记: 自动提交&手动提交.

Consumer 需要向 Kafka 汇报自己的位移数据,这个汇报过程被称为提交位移(Committing Offsets)。因为 Consumer 能够同时消费多个分区的数据,所以位移的提交实际上是在分区粒度上进行的,即 Consumer 需要为分配给它的每个分区提交各自的位移数据。 提交位移...

2019-12-26 23:22:20

阅读数 166

评论数 0

翻译 Kafka学习笔记: 消费者组重平衡优化

Rebalance 就是让一个 Consumer Group 下所有的 Consumer 实例就如何消费订阅主题的所有分区达成共识的过程。在 Rebalance 过程中,所有 Consumer 实例共同参与,在协调者组件的帮助下,完成订阅主题分区的分配。但是,在整个过程中,所有实例都不能消费任何消...

2019-12-26 12:29:39

阅读数 139

评论数 0

翻译 Kafka学习笔记:位移主题Offsets Topic

__consumer_offsets 在 Kafka 源码中有个更为正式的名字,叫位移主题,即 Offsets Topic。 位移主题就是普通的 Kafka 主题。它的消息格式却是 Kafka 自己定义的,不能修改,不能随意向里面写数据. 如果位移主题是 Kafka 自动创建的,那么该主题的分...

2019-12-26 10:15:56

阅读数 162

评论数 0

转载 从技术角度分析,一个女生不主动联系你还有机会吗?

很多同学对热备,冷备,云备了解不深,我科普一下IT行业各种备份术语。以后别闹笑话了。 假设你是一位女性,你有一位男朋友,于此同时你和另外一位男生暧昧不清,比朋友好,又不是恋人。你随时可以甩了现任男友,另外一位马上就能补上。这是冷备份。 假设你是一位女性,同时和两位男性在交往,两位都是你男朋友。...

2019-12-26 09:59:24

阅读数 154

评论数 0

翻译 Kafka学习笔记: Kafka 的消费者组

Consumer Group 是 Kafka 提供的可扩展且具有容错性的消费者机制。 既然是一个组,那么组内必然可以有多个消费者或消费者实例(Consumer Instance),它们共享一个公共的 ID,这个 ID 被称为 Group ID。 组内的所有消费者协调在一起来消费订阅主题(...

2019-12-25 16:46:47

阅读数 212

评论数 0

翻译 Kafka学习笔记:Kafka 消息交付可靠性保障以及精确处理一次语义的实现

幂等性 Producer 只能保证单分区、单会话上的消息幂等性;而事务能够保证跨分区、跨会话间的幂等性。 所谓的消息交付可靠性保障,是指 Kafka 对 Producer 和 Consumer 要处理的消息提供什么样的承诺。 常见的承诺有以下三种: 最多一次(at most on...

2019-12-25 01:02:23

阅读数 184

评论数 0

翻译 Kafka学习笔记:生产者 TCP 连接

Kafka 生产者程序概览 Kafka 的 Java 生产者 API 主要的对象就是 KafkaProducer。通常我们开发一个生产者的步骤有 4 步。 第 1 步:构造生产者对象所需的参数对象。 第 2 步:利用第 1 步的参数对象,创建 KafkaProducer 对象实例。 ...

2019-12-24 23:40:47

阅读数 97

评论数 0

翻译 Kafka学习笔记: Kafka 百惑梳理

1. 消息经常堆积起来,不能消费了,重启服务就能继续消费了。 消息堆积可能原因如下:1. 生产速度大于消费速度,这样可以适当增加分区,增加consumer数量,提升消费TPS;2. consumer消费性能低,查一下是否有很重的消费逻辑(比如拿到消息后写HDFS或HBASE这种逻辑就挺重的),看...

2019-12-24 18:32:33

阅读数 424

评论数 0

转载 Kafka无消息丢失配置

Kafka到底会不会丢数据(data loss)? 通常不会,但有些情况下的确有可能会发生。下面的参数配置及Best practice列表可以较好地保证数据的持久性(当然是trade-off,牺牲了吞吐量)。笔者会在该列表之后对列表中的每一项进行讨论,有兴趣的同学可以看下后面的分析。 block...

2019-12-24 18:18:48

阅读数 29

评论数 0

转载 Flink + Kafka 0.11端到端精确一次处理语义的实现

2017年12月Apache Flink社区发布了1.4版本。该版本正式引入了一个里程碑式的功能:两阶段提交Sink,即TwoPhaseCommitSinkFunction。该SinkFunction提取并封装了两阶段提交协议中的公共逻辑,自此Flink搭配特定source和sink(特别是0.1...

2019-12-24 17:41:28

阅读数 42

评论数 0

翻译 Kafka学习笔记: 拦截器

Kafka 拦截器分为生产者拦截器和消费者拦截器。生产者拦截器允许你在发送消息前以及消息提交成功后植入你的拦截器逻辑;而消费者拦截器支持在消费消息前以及提交位移后编写特定逻辑。 这两种拦截器都支持链的方式,即你可以将一组拦截器串连成一个大的拦截器,Kafka 会按照添加顺序依次执行拦截器逻辑。 ...

2019-12-24 17:22:42

阅读数 780

评论数 1

翻译 Kafka学习笔记: 无消息丢失配置

Kafka 是能做到不丢失消息的, 只不过这些消息必须是已提交的消息,而且还要满足一定的条件。 Kafka 只对“已提交”的消息(committed message)做有限度的持久化保证。 这句话里面有两个核心要素 第一个核心要素是“已提交的消息”。 当 Kafka 的若干...

2019-12-24 15:33:18

阅读数 118

评论数 0

翻译 Kafka无消息丢失配置

不要使用 producer.send(msg),而要使用 producer.send(msg, callback)。记住,一定要使用带有回调通知的 send 方法。 设置 acks = all。acks 是 Producer 的一个参数,代表了你对“已提交”消息的定义。如果设置成 all,则表明...

2019-12-24 15:32:01

阅读数 33

评论数 0

翻译 Kafka学习笔记: 生产者压缩算法

Kafka 的消息层次都分为两层:消息集合(message set)以及消息(message)。 一个消息集合中包含若干条日志项(record item),而日志项才是真正封装消息的地方。 Kafka 底层的消息日志由一系列消息集合日志项组成。 Kafka 通常不会直接操作具体的一条条消息,...

2019-12-24 11:34:14

阅读数 125

评论数 0

翻译 压缩算法性能对比

看一个压缩算法的优劣,有两个重要的指标:一个指标是压缩比,原先占 100 份空间的东西经压缩之后变成了占 20 份空间,那么压缩比就是 5,显然压缩比越高越好;另一个指标就是压缩 / 解压缩吞吐量,比如每秒能压缩或解压缩多少 MB 的数据。同样地,吞吐量也是越高越好。 从表中我们可以发现...

2019-12-24 11:28:55

阅读数 271

评论数 0

翻译 Kafka学习笔记: 生产者消息分区机制原理剖析

对于那种大批量机器组成的集群环境,每分钟产生的日志量都能以 GB 数, 因此如何将这么大的数据量均匀地分配到 Kafka 的各个 Broker 上,就成为一个非常重要的问题。 分区是实现负载均衡以及高吞吐量的关键,故在生产者这一端就要仔细盘算合适的分区策略,避免造成消息数据的“倾斜”,使得某些...

2019-12-23 22:27:28

阅读数 69

评论数 0

翻译 Kafka学习笔记: 如何估算 kafka集群规模

假设带宽是 1Gbps,即每秒处理 1Gb 的数据. 假设每台 Kafka 服务器都是安装在专属的机器上,也就是说每台 Kafka 机器上没有混布其他服务。 通常情况下你只能假设 Kafka 会用到 70% 的带宽资源,因为总要为其他应用或进程留一些资源。 根据实际使用经验,超过 70% ...

2019-12-23 15:19:07

阅读数 585

评论数 1

翻译 Kafka学习笔记: 术语

​​​​​​ 消息:Record。Kafka 是消息引擎嘛,这里的消息就是指 Kafka 处理的主要对象。 主题:Topic。主题是承载消息的逻辑容器,在实际使用中多用来区分具体的业务。 分区:Partition。一个有序不变的消息序列。每个主题下可以有多个分区。消息位移:生产者生产的每条消...

2019-12-23 13:30:42

阅读数 357

评论数 0

翻译 Kafka学习笔记: 集群配置必备参数调整

全局参数[server.properties]需要修改的参数 Broker 端参数 ZooKeeper 设置 Broker通信 Topic参数 数据存储参数 Topic 级别参数 数据保存参数 Topic 级别参数的设置 创建 Topic 时进行设置 修改 Topic 时设置 ...

2019-12-23 13:20:37

阅读数 160

评论数 0

原创 Kafka学习笔记: kafka2.4.0 源码编译&说明

前言 相对来说,kafka 编译比较简单,不过 kafka 是 scala 写的,所以在环境上要安装一下插件. 下载2.4.0源码包 链接:https://pan.baidu.com/s/15h2qn14HV8HCoEPldT77LA 密码:e59n 官方:http://k...

2019-12-23 10:14:35

阅读数 330

评论数 0

原创 Error 1044 Access denied for user 'ssss'@localhost to database 'xxxx'

昨天同事在安装 ranger 的时候,对数据库操作的时候,报错: Error 1044 Access denied for user 'sss'@localhost to database 'xxxx' 原因是用户没有权限,解决方式如下: 1.查询...

2019-12-19 10:48:18

阅读数 107

评论数 0

原创 英语语法梳理

语法结构 ✨[一] 主谓 ✨[二] 主谓宾 I can cope this problem . ✨[三] 主系表 is am are ✨[四] 主谓+双宾语 人:间接宾语 物:直接宾语 She gives me a gread hand . 主 谓 间接宾语 直宾 ✨[五...

2019-12-01 20:42:56

阅读数 157

评论数 0

提示
确定要删除当前文章?
取消 删除