
SRE
BGBiao
前京东数科高级运维工程师(SRE),目前关注领域: 容器云,CloudNative,Kubernetes,DevOps,SRE,热衷于使用Golang语言在整个工作中创造价值。
展开
-
Traefik中诡异的502和504问题
我们都知道在 Kubernetes 集群中通常会使用 Ingress 方案来统一代理集群内部的流量,而常用的 Ingress 方案为 traefik 和 nginx,和传统的 Nginx 作为企业内部的反向代理以及负载设备一样,在不同的场景下可能需要专有的配置才能满足需求,否则会出现奇奇怪怪的异常状态码。本篇文章一起来看下,我们在 traefik 中遇到的 500 和 502 异常。一、前言 在开始之前,我们先来看几个在 Nginx 作为反向代理工具中经常遇到的几个异常状态码:499: 客...原创 2020-07-04 22:33:57 · 3008 阅读 · 0 评论 -
Golang中管理程序的版本信息
我们都知道在一些 Golang 写的程序中,默认会有 version 或 -v 相关的参数来输出软件版本信息,这些版本信息里可能包含软件版本,git 中的 commit 记录,构建时间、构建环境等信息,那么这些信息都是如何在 Golang 程序中进行维护和管理的呢?请看????.示例比如我们常用的 Golang 开发的程序是这样输出版本相关信息的:# k8s的客户端程序版本$ kubectl version -o json --client原创 2020-06-27 15:44:18 · 1167 阅读 · 0 评论 -
这几个kafka工具,值得了解一下
在Kafka集群运维过程中,我们通常会借用一些开源工具来完成kafka的日常运维需求和相关问题排查,接下来介绍几个常用的kafka运维神器。kafka-manager由雅虎开源的kafka集群管理工具,不过现在已经改名为CMAK了(说明kafka的运维痛点还是蛮多的,项目还可以做更多的事情),核心功能如下:多集群管理集群瞬时监控(topics, brokers, 副本分布,分区分布等)优先副本选举主题,分区,副本管理(主题创建和参数调整,副本分配等)Broker和Topic级别的met.原创 2020-06-27 15:43:04 · 4253 阅读 · 2 评论 -
kafka集群元数据在zookeeper中的存储分布
我们都知道,自从 Kafka 诞生之际,就一直使用 Zookeeper 服务来进行 kafka 集群的元数据和状态管理,虽然在 KIP-500 中有提议未来将移除 Zookeeper 的依赖,使用 Raft 协议来实现新的元数据和状态管理,但在这之前,我们仍然需要对 kafka 集群的整个元数据和状态有一定理解,才能更好的维护和保障 kafka 集群。前言 在 kafka 集群中,ZooKeeper 集群用于存放集群元数据、成员管理、Controller 选举,以及其他一些管理类任务。存放元...原创 2020-06-21 23:22:46 · 1800 阅读 · 0 评论 -
这些经典的kafka面试知识,你都知道吗?
无论是作为面试官,还是应聘者,我都接触过很多 Kafka 面试题。而在最近面试了很多候选人,发现写了熟悉 Kafka,但是对于 Kafka 相关的知识却是只知道大概用处,简单搭建和使用。我想说,虽然我们是 SRE (可靠性工程师),但不论你是业务层的 SRE 还是基础设施层的 SRE,我们都需要对业务方的使用场景有足够理解,或者对我们要提供的服务有足够的了解才行,这样你才能整体的保证你的业务连续性以及业务可靠性。因此,专门总结了如下经典的 kafka 面试详解。以下面试题,参考胡大的 Kafka...原创 2020-06-15 00:23:00 · 364 阅读 · 0 评论 -
Golang下的unicode与字符编码
背景: 在我们使用Golang进行开发过程中,总是绕不开对字符或字符串的处理,而在Golang语言中,对字符和字符串的处理方式可能和其他语言不太一样,比如Python或Java类的语言,本篇文章分享一些Golang语言下的Unicode和字符串编码。Go语言字符编码注意: 在Golang语言中的标识符可以包含 " 任何Unicode编码可以标识的字母字符 "。被转换的整数值应该可以代表一个有效的 Unicode 代码点,否则转换的结果就将会是 “�”,即:一个仅由高亮的问号组成的字符串值。另外,.原创 2020-05-30 15:17:39 · 4121 阅读 · 2 评论 -
一文理解kafka端到端的延迟
前言: 在大规模的使用kafka过程中,我们通常会遇到各种各样的问题,比如说,通常会有一些大数据集群中的Job发现总有几个task会比较慢,导致整体的任务迟迟不能完成运行,这种情况通常问题会比较复杂,想要知道具体延迟在哪里,我们需要知道在Kafka集群中哪些点可能会增加端到端的延迟。接下来的内容翻译自confluent官网博客中的一篇文章,希望能够帮助大家理解kafka使用过程中端到端的延迟99th Percentile Latency at Scale with Apache Kafka。文章目.翻译 2020-05-24 07:57:11 · 1805 阅读 · 0 评论 -
kafka如何更好的规划Topic分区
背景: 如同其他分布式系统一样,在kafka集群中,单Topic的partition也并不是越多越好,但通常对于业务方来说,可能会简单的根据生产者或消费者的处理能力来提出扩partition的需求,此时就需要根据具体的场景进行分析以确定partition的数量。对于Kafka集群承载的业务Topic来说,分区的数量,可以体现出整个业务的量级同时能够尽可能的提供更高的吞吐,但并不是越多的分区就意味着越高的吞吐和处理能力,通常情况下需要业务方和基础服务方一起来进行分析。以下为多分区Topic的优缺点,可.原创 2020-05-16 15:12:59 · 1204 阅读 · 0 评论 -
kafka运维常用操作,你知道几个?
要想kafka跑的好,如下几点要知晓。Graceful shutdown建议开启如下参数:controlled.shutdown.enable=true注意: 只有在broker上承载的分区都具有副本时(副本大于1,且副本存活),controller节点才会成功关闭Balancing leadership每当Broker停止或崩溃时,该broker的分区的领导权就转移到其他副本。...原创 2020-05-04 23:58:40 · 589 阅读 · 0 评论 -
一文读懂Kafka生产集群规划和调优
前言: 通常对于初创企业或者初创业务团队来说,对于开源组件的使用都会显的比较随意,而这种情况会随着业务量级的增长和时间的推移导致开源服务的滥用和乱用,进而造成的结果就是整体业务的稳定性和可靠性相对较差,而此时,扩容的行为是边际效应递减的,如果此时不对整体业务以及开源服务进行规划和改造,那么风险和成本将是同比增长的,因此在开始阶段,需要对开源组件,特别是分布式组件进行场景规划和调优。在我过去的...原创 2020-05-01 23:25:31 · 1073 阅读 · 1 评论