- 博客(1333)
- 资源 (120)
- 收藏
- 关注
原创 Redis 数据分布优化:如何应对数据倾斜?
Redis 核心技术与实战 笔记作者: 蒋德钧more在切片集群中,数据会按照一定的分布规则分散到不同的实例上保存。比如,在使用 Redis Cluster 或 Codis 时,数据都会先按照 CRC 算法的计算值对 Slot(逻辑槽)取模,同时,所有的 Slot 又会由运维管理员分配到不同的实例上。这样,数据就被保存到相应的实例上了。虽然这种方法实现起来比较简单,但是很容易导致一个问题:数据倾斜。数据倾斜有两类。
2023-06-20 22:15:00 1292 5
原创 Redis的使用规范小建议
Redis 核心技术与实战 笔记作者: 蒋德钧more毕竟,高性能和节省内存,是我们的两个目标,只有规范地使用Redis,才能真正实现这两个目标。如果说之前的内容教会了你怎么用,那么今天的内容,就是帮助你用好Redis,尽量不出错。好了,话不多说,我们来看下键值对的使用规范。
2023-06-06 21:45:00 739
原创 Elasticsearch文件存储
从表格中可以看出与FST相关的文件后缀有:tip、tim,从这里就可以看出FST文件是以segment维度来创建的。首先通过kibana找一个索引的shard,此处咱们就以logstash-2023.05.30索引为例。对比segment与shard目录中文件可以看出,两者是一一对应的。那么shard目录中各种后缀的文件具体是什么含义呢?有了文件信息,我们再来看下,segment信息。主要是想看一下FST文件是以什么粒度创建的?登录机器,找到存储索引文件的对应目录。展开一下该目录下的文件。
2023-06-03 11:42:33 564
原创 HTML table表格转换为Markdown table表格
第一步:复制包含HTML table标签的代码第二步:打开https://tableconvert.com/,点击import菜单第三步:选择HTML选项卡并粘贴内容到文本框,点击import data
2023-06-03 11:03:30 560 2
原创 [转]Github进行fork后如何与原仓库同步
问题场景:新公司要求所有的代码提交都要先通过自己的库提交到主repo上去,所以先在gitlab网页上fork出一个自己的库,在本地修改完代码后提交到远程自己库上,然后在gitlab网页上发起一个merge request请求,然后等待主repo主人review,同意之后合入。整体思路如下:在自己的本地添加主repo为上游代码库,注意只是配置原仓库的路径,并没有真正clone原仓库,然后将远程主repo同步到自己本地的机器,然后本地的机器再push到自己的远程的fork库。
2023-05-29 11:32:45 1010
原创 Kafka 和 RocketMQ 在文件布局上的异同
除了在磁盘顺序写方面的差别,Kafka 和 RocketMQ 的运维成本也不同。由于粒度的原因,Kafka 的 topic 扩容分区会涉及分区在各个 Broker 的移动,它的扩容操作比较重。而 RocketMQ 在消息写入时追求极致的顺序写,所有的消息不分主题一律顺序写入 commitlog 文件, topic 和 分区数量的增加不会影响写入顺序。如果一个 Kafka 集群中有成百上千个主题,每一个主题又有上百个分区,消息在高并发写入时,IO 操作就会显得很零散,效果相当于随机 IO。
2023-05-22 10:15:21 576
原创 人名搜索 - 如何改进结果
基于Elasticsearch如何实现一个好用的用户名检索?more先说一下背景,需要提供一个检索接口,根据用户输入的值去检索:姓名、姓名拼音、工号、昵称等。关于姓名这个,由于大多数用户的姓名是汉字,所以第一个想到的是。
2023-05-15 20:47:38 459
原创 Excel办公技巧:通过自定义单元格格式在数字前面批量补0
选择 G/通用格式后,直接手动输入 0就行,具体几个0,就看需要补充到几位。比如图中输入了8个0,就表示,填充后每行数据共8位,不足8位的,用0补齐。
2023-05-15 16:28:43 897
原创 [转载]根据子网掩码和网关计算ip
在了解ip地址的网段之前,我们先来了解子网掩码,很多对网络了解不深的朋友都对子网掩码有些迷惑, 不了解它是用来干什么的?子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。说的通俗的话,就是用来分割子网和区分那些ip是同一个网段的,那些不是同一网段的。【路由器产品大全】例如,两个人都叫张三,但一个张三是张家村的,另一个张三是张村的,那么如何区分这两个张三分别是属于那个村的呢?
2023-04-27 15:55:31 1873
原创 [译]自上而下认识Elasticsearch
注意:原文发表时间是14年,所以实现有可能与新版不一致.原文地址:https://www.elastic.co/cn/blog/found-elasticsearch-top-downmore。
2023-03-24 09:04:41 407
原创 [译]自下而上认识Elasticsearch
注意:原文发表时间是13年,所以实现有可能与新版不一致.原文地址:https://www.elastic.co/cn/blog/found-elasticsearch-from-the-bottom-upmore。
2023-03-24 08:59:58 1379
原创 《剑来》语句摘录(八)
◆ 第七十七章 观书喜夜长>> 自古观书喜夜长。◆ 第八十九章 摸鱼儿输一半>> 命里只该八升米,走遍天下不满斗。>> 陆沉微笑道:“知道为什么文圣最偏心你这个关门弟子吗?”陈平安默不作声。陆沉缓缓说道:“崔瀺太聪明了,所以他对待世间笨人是没有耐心的,再加上他看得很长远,所以对整个世道,充满了忧心忡忡的焦虑。他曾经想要与世界做个了结,但是最终又与这个让他失望不已...
2023-03-12 21:43:09 591
原创 Gin获取Response Body引发的OOM
同时根据请求的Header跳过SSE及Websocket请求,因为这两类流的请求记录到审计日志中意义不大,而且在json序列化的时候也会有问题。再看下代码,可以看到这个代码的逻辑是每一个请求都会将响应的Body完整的缓存在内存一份,对于响应体很大的请求,在这里就会造成内存暴涨,比如:像日志下载。我们在开发中基于Gin开发了一个Api网关,但上线后发现内存会在短时间内暴涨,然后被OOM kill掉。在图二中可以看到内存的增长是很快的,在一分半的时间内,内存增长了近2G。* 后来参考Echo,补上了这个功能。
2023-02-25 04:56:36 739
原创 身份的焦虑笔记
title: 身份的焦虑笔记本文整理自:《身份的焦虑》作者:【英】阿兰·德波顿生活就是用一种焦虑代替另一种焦虑,用一种欲望代替另一种欲望的过程。more我们身上那些更加隐秘的侧面——诸如我们的困惑、我们的愠怒,我们的罪恶感——有时竟然在某一书页上跟我们撞个正着,一种自我认同感于是油然而生。
2023-02-18 02:14:16 1779
转载 Git规范的必要性
分支管理代码提交在应该提交的分支随时可以切换到线上稳定版本代码多个版本的开发工作同时进行记录的可读性所有commit必须有注释,内容必须按照注释格式严格执行!正确为每个项目设置Git提交用到的user.name和user.email信息,以公司邮箱为准,不可随意设置以影响无法正确识别。查看当前项目配置信息的命令:git config -l版本号(tag)版本号(tag)命名规则主版本号.次版本号....
2023-02-12 09:26:52 225
转载 十一(1)
下午我妈要去赶小市(就是去村里晚上卖菜啥的地方买点菜),我背有点不太舒服,就让她帮忙带盒膏药,然后,我妈兴高采烈的回来了,带了个这????说大夫说了,这个比膏药好用多了(关键我也不是跌打损伤啊????)然后,顺便买了点嘎啦,竟然10块钱一斤,这就是10块钱的,感觉一个好几毛钱(农村的物价不一定比城里便宜啊)...
2022-10-01 20:01:53 317
原创 ES Cluster in Red status: what about write & delete operations?
ES Cluster in Red status: what about write & delete operations?
2022-07-22 14:40:05 363
原创 Golang写时复制是否是原子性的?
验证代码:汇编代码:下面主要看下21行对应的汇编:基础知识补充:MOVQmovb(8位)、movw(16位)、movl(32位)、movq(64位)寄存器寻址:https://blog.csdn.net/luoyhang003/article/details/46786591/TEST指令的行为与AND指令一样,除了不改变目的寄存器的值。例如,testq %rax, %rax 用来检查 %rax 是负数、零、还是正数。https://stackoverflow.com/questions/1
2022-07-07 21:45:00 1012
原创 《剑来》语句摘录(七)
第935章想人的时候喝酒,想事的时候喝茶。第949章姜尚真懒洋洋道:“帮人夜中打灯笼,帮人雨中撑伞,到头来只被嫌弃灯火不亮堂,埋怨雨水湿了鞋。”崔东山双手笼袖,“你得这么想,没有这些人心,强者何必奋起?”人生路上,真正的过失,错过和失去的,不是什么擦肩而过的机缘,不是失之交臂的贵人,而是那些原本有机会改正的错误。然后错过就失去。第950章今儿吃得下,穿得暖睡得着,明...
2022-07-04 21:00:11 2422 2
原创 使用 nsenter 进入 netns 抓包
我们使用 Kubernetes 时难免发生一些网络问题,往往需要进入容器的网络命名空间 (netns) 中,进行一些网络调试来定位问题,本文介绍如何进入容器的 netns。使用 kubectl 获取 pod 中任意 cotnainer 的 id:输出示例片段1 (containerd运行时):输出示例片段2 (dockerd运行时):获取 PID拿到 container id 后,我们登录到 pod 所在节点上去获取其主进程 pid。containerd 运行时使用 crictl 命令获取:do
2022-06-08 18:19:11 858 1
原创 Nginx 代理MySQL
docker-compose.ymlversion: '2.0'services: nginx: restart: always image: nginx:1.13.9-alpine ports: - 63307:63306 volumes: - ./nginx.conf:/etc/nginx/nginx.confnginx配置文件user nginx;worker_processes 1;error_log /var/lo
2022-04-28 17:49:59 8498
原创 MySQL 可重复读隔离级别与幻读
在MySQL可重复读的隔离级别下,能很大程度上避免幻读,而不能完全避免。场景复现环境信息:MySQL版本:5.7.23-log隔离级别:REPEATABLE-READ测试数据:SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for app_record_lock_test-- ----------------------------DR.
2022-03-16 17:40:25 2600
原创 【Elasticsearch源码】 更新性能分析
带着疑问学源码,第三篇:Elasticsearch 更新性能代码分析基于:https://github.com/jiankunking/elasticsearchElasticsearch 7.10.2+目的在看源码之前先梳理一下,自己对于更新疑惑的点:为什么Elasticsearch更新与写入的性能会有比较大的差异?源码分析建议先看一下:【Elasticsearch源码】 写入分析在【Elasticsearch源码】 写入分析中可以看到bulk请求最终在TransportShardB.
2022-03-16 17:25:01 2644
原创 计算机存储单位换算
bit、byte、KB、MB、GB常见的单位换算如下:1 byte = 8 bit1 KB = 210 byte = 1024 byte ≈ 103 byte1 MB = 220 byte ≈ 10 6 byte1 GB = 230 byte ≈ 10 9 byte1 亿 = 1081 个整数占 4 byte,1 亿个整数占 4*108 byte ≈ 400 MB。...
2022-03-16 17:24:14 4408
原创 时间的量级
本文整理自:《性能之巅》作者:【美】 Brendan Gregg英文版出版时间:2014年我们可以用数字来作为时间的比较方法,同时可以用时间的长短经验来判断延时的源头。系统各组件的操作所处的时间量级差别巨大,大到了难以体会的地步。表2.2提供的延时示例,从访问3.3GHz的CPU寄存器的延时开始,阐释了我们所打交道的时间量级的差别,表中是发生单次操作的时间均值,等比放大成为想象的系统,一次寄存器访问0.3ns(十亿分之一秒的三分之一)相当于现实生活中的1秒。表2.2 系统的各种延时事件
2022-03-16 17:23:15 1826
原创 [转]7.7 版本中的新改进:显著降低 Elasticsearch 堆内存使用量
原文地址:https://www.elastic.co/cn/blog/significantly-decrease-your-elasticsearch-heap-memory-usage由于 Elasticsearch 用户不断突破在 Elasticsearch 节点上存储的数据量的极限,所以他们有时会在耗尽磁盘空间之前就将堆内存用完了。对于这些用户来说,这个问题难免让他们沮丧,因为每个节点拟合尽可能多的数据通常是降低成本的重要手段。但为什么 Elasticsearch 需要堆内存来存储数据.
2022-03-16 17:22:05 1023
zookeeper开源客户端Curator
2017-03-25
zookeeper开源客户端ZkClient使用
2017-03-25
java cpu 内存占用高 问题 模拟并排查
2018-03-29
理解 channels - Kavya Joshi
2018-01-18
zookeeper常见应用场景简单实现及ppt
2017-03-26
zookeeper应用场景实现demo及ppt资料
2017-03-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人