Kafka的消息key有啥特殊的?

六二三
今天看到一篇优质的kafka分享《Kafka 万亿级消息实践之资源组流量掉零故障排查分析 》,里面有个比较有意思的场景:producer在生产端的消息指定了key属性,在broker节点磁盘故障之后,某topic数据无法正常发送。不仔细深究,第一印象肯定会疑问,不是应该故障后转移吗?咋会一直受影响呢? 带着这个疑问我们先来看下kafka源码ProducerRecord.java类的注解对消息key的作用说明: A key/value pair to be sent to Kafka. This consists of a topic name to which the record is being sent, an

关于\x开头的字符串编码转换中文解决方法

六二三
\x开头的编码是十六进制字符,\x后面跟的字符即为十六进制的字符串。 In [41]: s1 = "世界如此美妙,我却如此暴躁,这样不好不好" In [42]: s1.encode("utf-8") Out[42]: b'\xe4\xb8\x96\xe7\x95\x8c\xe5\xa6\x82\xe6\xad\xa4\xe7\xbe\x8e\xe5\xa6\x99\xef\xbc\x8c\xe6\x88\x91\xe5\x8d\xb4\xe5\xa6\x82\xe6\xad\xa4\xe6\x9a\xb4\xe8\xba\x81\xef\xbc\x8c\xe8\xbf\x99\xe6\xa0\xb7\xe4\xb8\x8d\xe5\xa5\xbd\xe4\xb8\x8d\xe5\xa5\xbd' 将\x转为中文的几种方式: $ echo -e '\xe4\xb8\x96\xe7\x95\x8c\xe5\xa6\x82\xe6\xad\xa4\xe7\xbe\x8e\xe5\xa6\x99\xef\xbc\x8c\xe6\x88\x91\xe5\x8d\xb4\xe5\xa6\x82\xe6\xad\xa4\xe6\x9a\xb4\xe8\xba\x81\xef\xbc\x8c\xe8\xbf\x99\xe6\xa0\xb7\xe4\xb8\x8d\xe5\xa5\xbd\xe4\xb8\x8d\xe5\xa5\xbd' 世界如此美妙,我却如此暴躁,这样不好不好 REF: https://linuxhint.com/string-to-hexadecimal-in-python/ https://blog.csdn.net/YungGuo/article/details/110197818

如何解决vscode在国内网络环境下插件更新失败的问题

六二三
在使用vscode调试rust代码的时候,需要安装codelldb扩展,同时还需要安装该插件的平台依赖包,但是编辑器从github直接下载有时候会出奇的慢甚至下载失败。这里提供俩种可行性比较高的办法。 办法一: 首先我们可以考虑vscode通过代理来安装或更新插件版本。这里我们尝试先关闭vscode,并在命令行终端输入如下内容,确保vscode启动的时候将socks网络代理加载成功。 在使用code命令启动时,请先确保code命令已经在环境变量中加载完

Docker容器持续构建过程中遇到的问题

六二三
问题:docker build过程中执行apt update的时候出现"At least one invalid signature was encountered." 10:39:04 Reading package lists... 10:39:04 Building dependency tree... 10:39:04 Reading state information... 10:39:04 apt is already the newest version (1.8.2.3). 10:39:04 apt set to manually installed. 10:39:04 ca-certificates is already the newest version (20200601~deb10u2). 10:39:04 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 10:39:05 Get:1 https://mirrors.tuna.tsinghua.edu.cn/debian buster InRelease [122 kB] 10:39:05 Get:2 https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates InRelease [34.8 kB] 10:39:05 Err:1 https://mirrors.tuna.tsinghua.edu.cn/debian buster InRelease 10:39:05 At least one invalid signature was encountered. 10:39:05 Err:2 https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates InRelease 10:39:05 At least one invalid signature was encountered. 10:39:05 Get:3 https://mirrors.tuna.tsinghua.edu.cn/debian buster-updates InRelease [56.6 kB] 10:39:05 Err:3 https://mirrors.tuna.tsinghua.edu.cn/debian buster-updates InRelease 10:39:05 At least one invalid signature was encountered. 10:39:05 Reading package lists... 10:39:06 W: GPG error: https://mirrors.tuna.tsinghua.edu.cn/debian buster InRelease: At least one invalid signature was encountered. 10:39:06 E: The repository 'https://mirrors.tuna.tsinghua.edu.cn/debian buster InRelease' is not signed. 10:39:06 W: GPG error: https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates InRelease: At least one invalid signature was encountered. 10:39:06 E: The repository 'https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates InRelease' is not signed. 10:39:06 W: GPG error: https://mirrors.tuna.tsinghua.edu.cn/debian buster-updates InRelease: At least one invalid signature was encountered. 10:39:06 E: The repository 'https://mirrors.tuna.tsinghua.edu.cn/debian

Flutter开发环境的配置及真机如何联调

六二三
软件和硬件准备: Flutter Android Studio VSCode (插件:Dart、Flutter、Gitlens) Redmi Note 10 5G USB 3.0(typeC)数据传输线 MacOS Pro 配置记录 使用Android Studio配置安卓sdk配置 这里安装Android Studio的过程就略过了,就把配置Android sdk的步骤记录下。 安装fluter并配置相关环境变量 // 安装flutter(我的电脑是intel芯,ARM架构请下载指定版本sdk) $ wget -c https://storage.googleapis.com/flutter_infra_release/releases/stable/macos/flutter_macos_3.3.0-stable.zip $ unzip flutter_macos_3.3.0-stable.zip $ sudo mv flutter /usr/local/ // Android SDK环境变量设置: $ cat ~/.zshrc # ...(省略其他

Python3.10.x源码编译安装过程及遇到的问题处理

六二三
CentOS7 编译安装 Python310 过程 从Python3.10开始,其依赖的openssl版本也同步进行了升级,必须为v1.1.1及以上。 OpenSSL在python环境中被用于加密相关功能,大多数使用场景都会用到,所以这个问题我们还必须要解决下。本来想源码安装openssl-1.1.1q,发现互联网前辈已经有制做好的rpm包,那就省事了,接下来我们就记录下整个安装过程。 安装 Python3.10.x 编译环境 $ yum install epel-release -y $ yum groupinstall "Development tools" -y Python 3.10.2 使用环境依赖 $ yum install bzip2-devel ncurses-devel gdbm-devel xz-devel \ sqlite-devel libffi-devel libuuid-devel readline-devel \ zlib-devel openssl-devel bzip2-devel \ openssl11 openssl11-devel -y 添加op

Kibana做统计分析时候踩过的一个小坑

六二三
之前有个独立的业务上线,时间比较紧迫,部门内小伙伴在进行日志采集的时候偷了个懒,没有对Nginx日志条目做很好的拆分,URI中的参数没有单独拎出去,混入个性化数据导致无法统计。眼前的偷懒终究要付出代价,就在上周末,业务故障了,发现uri没法统计分析了… (心里一万只草泥马在奔腾) 这可咋整呢?!总不能坐以待毙吧,网上找找看。果然还真有人踩了同样的坑,下面记录下如何拆分elasticsearch 单个field的办法: 这里用到一个方法 str

如何解决烦人的csdn障眼法 - update 2024/06

六二三
1.解决CSDN 遮罩层问题 直接把如下俩行js代码一起拷贝黏贴到浏览器开发者工具栏的console终端下运行就好了: $("#article_content").css({"height":"auto","overflow":"auto"}); $(".hide-article-box").css({"display":"none"}); 2.解决CSDN 代码无法复制问题 +++ 202406更新 +++ 依然需要打开浏览器开发者工具栏的console终端下运行就好了,亲测有效! javascript:$={}; +—————————–+ — 以下内容可忽略,已废弃 — +—————————–+ 办法和上面一样,直接把如下js代码一起拷贝黏贴到浏览器开发者工具栏的console终端下运行就好了: // 办法1 $("#content_views pre").css("user-select","text"); $("#content_views pre code").css("user-select","text"); // 办法2 javascript:document.body.contentEditable='true';document.designMode='on'; 别滑走,csdn又升级骚操作了,下面的操作步骤

{D4} - Prometheus的Relabeling机制

六二三
写这篇文章的目的是解释Prometheus relabeling的价值,以及它在整个prometheus数据流不同阶段的重要性。 在面向大型互联网公司、金融行业等大规模业务监控的场景,原生的 Prometheus 单实例模式无法直接满足需求,需要一种面向生产环境的集群化高可用方案来进行支撑。 Prometheus 常见的集群化高可用思路包括两种: Prometheus 联邦集群方案,是基于Prometheus单体模式的一种补充。可以让一系列Prometheus的单体分别采集不同的目标,然后将数据统一汇总到中央的Pr

{D3} - Prometheus数据格式及指标类型

六二三
Prometheus metrics 概念已被广泛采用,不仅被Prometheus用户采用,还被包括InfluxDB、OpenTSDB、Graphite 和Sysdig Monitor在内的其他监控系统广泛采用。如今,许多CNCF项目使用Prometheus指标格式公开了开箱即用的指标。您还可以在API服务器、etcd、CoreDNS 等核心Kubernetes组件中找到它们。您可以在使用Prometheus的Kubernetes监控指南中了解更多信息。 Prometheus 指标格式被广泛采用,以至于它成

原来Bash的并行计算是这样的

六二三
今天有个批量下载图片的任务,不打算用python或者其他高级语言实现,决定用bash尝试下。 接下来我们一起了解下bash的并发任务是如何实现的?先上一版简单粗暴的代码: #!/bin/bash todo () { sleep 3;echo "$1OK"; } # --- 串行 for x in `seq 5`;do echo $x; todo $x; done # --- 并行 for x in `seq 5`;do { echo $x; todo $x; }& done wait # 是的,你没看错,并行相较于串行之多了几个符号 `{ }&` 和 `wait`。 # 其中,wait函数,该函数将等待后台所有子进程结束。正是因为有了此函数, # 才能保证commands2在所有commands1并行子任务执

{D2} - Prometheus配置详解之global,alerting,rule_files,scrape_configs,remote_read,remote_write

六二三
今天这里就不做过多解释了,直接上配置,可以先对prometheus的配置参数有个了解。 global: # 抓取指标的间隔,默认1m scrape_interval: 10s # 抓取指标的超时时间,默认10s scrape_timeout: 15s # 指定Prometheus评估规则的频率[记录规则(record)和告警规则(alert)],默认1m. # 可以理解为执行规则的时间间隔 evaluation_interval: 15s # PromQL查询日志的相关记录文件,有点类似mysql slowlog query_log_file: prometheus_query_log # 用于区分不同的prometheus external_labels: datacenter: 'hangzhou-1' region: 'huadong' # Alertmanager configuration alerting: alertmanagers: - static_configs: - targets: - 192.168.56.11:9093 alert_relabel_configs: - source_labels: [dc] regex: (.+)\d+ target_label: dc - source_labels: "host" target_label: "instance" regex: