- 博客(40)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 elasticsearch 分片选择
相信读者创建index的时候,一定曾经纠结过分片数应该分配多少。笔者从实用角度来讲述一下index分片数量的选择,index分片数量严格来说不能过多,也不能过少,还要兼顾分片平衡以及集群压力。现在从一些角度来讲主分片数应该怎么选择。分片数量与节点数(或机器数)的平衡 分析:若一个es集群的节点数为3,则考虑业务扩展(无论是容量还是其它),可能需要新增1个节点共4...
2019-02-22 18:42:26 1900
原创 研发流程总结
关于bug产品需求,技术设计,编码自测,测试验证,上线运行。产品需求:判断需求是否有问题,1. 可以通过梳理数据维度,画出er图来判断是否合理。并按照数据维度来判断每项功能是否合理。2. 相当一部分功能都是围绕某一项数据来做crud,查询:则考虑查空边界,分页查的深分页,查询维度。插入:插入一个已存在的数据处理需要upsert吗,数据来源是怎样的是人手动插入还是系统自动插入,这个对于判断业务流量,系统数据延迟有很重要的参考。更新:最需要关注更新条件,推荐更新为最细粒度更新。更新后的数
2022-09-06 09:44:25 602 1
原创 golang转
设计思路1. 遇到字符'{'、'[',tabNum++ \n\t*tabNum2. 遇到字符'"' 必须等待下一个字符'"'出现,形成字符串判断。3. 遇到字符',' \n\t*tabNum4. 遇到字符']'、'}' 前面的第一个字符必须插入 tabNum-- \n\t*tabNum 后面的字符没有','则直接tabNum-- \n\t*tabNum
2022-09-05 13:58:28 133
原创 idea 全家桶启动失败
rm ~/.local/share/rm -r ~/.local/share/JetBrains/rm -r ~/.config/JetBrains/
2022-09-01 18:58:50 123
原创 Mysql 索引覆盖,索引下推,索引合并
索引覆盖 索引下推 索引合并 查询的字段在命中的联合索引里 查询条件命中了联合索引的第一个字段,后续条件可以根据联合索引其它字段直接进行过滤 对多个索引进行分别扫描,然后根据结果进行集合操作(如取交集和并集) ...
2022-04-12 11:39:32 787
原创 java 日志小技巧
java打印日志小技巧" trace:" + Arrays.stream(Thread.currentThread().getStackTrace()).map(stackTraceElement -> "class:" + stackTraceElement.getClassName() + " " + "file:" + stackTraceElement.
2022-03-16 11:43:33 422
原创 Redis 缓存雪崩 缓存击穿 缓存穿透 整理
redis 缓存雪崩 缓存击穿 缓存穿透 概念 缓存雪崩 缓存击穿 缓存穿透 解释 同一时间大量key过期失效导致db因压力异常 某个热key失效大量请求导致db异常 数据库和缓存都没有存要访问数据,数据量大db异常 解决 1.设置大量key随机过期时间 2.根据业务场景定时预热数据 3.分级缓存,不同级缓存过期时间不同。 4.若是redis集群挂掉引发,则走降级,看db压力是否可以支撑。 1.setn
2021-10-10 10:18:54 122
原创 钉钉发送图片
直接上格式: 'msgtype' => 'image', 'image' => [ 'title' => "文案,", //这个并不展示,只为过滤安全签名 'picURL' => url, //钉钉文档没有说有picURL这个字段,通过media_id试出来的。 ],不好处,变成了表情展示。...
2021-04-21 20:35:43 1202
原创 项目管理--持续更新
项目冲突修改某个函数的入参,特别是入参数量,git 合并主分支的时候,需要额外检查一下。防止最终上线的时候出现问题。修改服务的检查,需要和调用方沟通清楚,最好底层本验证联调一遍。...
2021-03-20 13:32:56 104
原创 php 代码技巧
字符串模板化$name = 'tanrx';$msgContent = "hello, ${name}";eval( "\$msgContent = \"$msgContent\";" );输出 hello, tanrx提取$和花括弧的字符正则表达式"/(?:\\$\{)([^{}$]*)(?:\})/"
2020-10-21 11:13:09 173
原创 wsl2 Ubuntu 展示页面
直接放博客地址:亲测试了一圈,还是这个给力:https://medium.com/@s123600g/window10-%E5%BB%BA%E7%BD%AEubuntu-wsl2-%E8%88%87gui%E6%A1%8C%E9%9D%A2%E9%85%8D%E7%BD%AE%E7%AD%86%E8%A8%98-58796915ed4d
2020-10-19 19:43:57 337
原创 Windows Ubuntu安装docker
官网文档:https://docs.docker.com/engine/install/ubuntu/如果docker遇到没有可用网络:http://blog.joylau.cn/2019/04/08/Docker-Start-Error/
2020-08-29 19:19:07 523
原创 判断函数入参为空
public static function isFieldsEmpty($arrFields = array()) { $traceList = debug_backtrace(); array_shift($traceList); if (empty($traceList)) { Bd_Log::warning("ERROR no caller. backtrace list:" . json_encode(debug_b...
2020-08-28 19:56:59 979
原创 windows ubuntu 双系统
本文章持续更新:安装完Ubuntu后先创建软连接#在windows 安装完Ubuntu系统后,在命令行终端下(win+R,执行cmd)执行创建软连接命令。mklink /D D:\root C:\Users\Administrator\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\rootfs\...
2020-08-26 20:01:57 265
原创 FFMPEG 安装 教程(支持mp3)
背景 ffmpeg本身并不支持mp3文件的编码转化,所以在编译的时候需要指定好依赖libmp3lame。安装 首先需要准备一个目录,比如本文是/home/homework/data/video安装依赖--yasm#首先需要准备好yasm的目录cd /home/homework/data/videomkdir yasmcd yasm/mkdir install#下载依赖安装包,具体的版本根据实际情况而定wget http://www.torta...
2020-06-11 15:40:22 1439
原创 golang 单元测试包命令
不带缓存,单独测试某个测试包go test -race -cover -count=1 github.com/baidu/bfe/bfe_http
2020-03-05 14:36:49 483
原创 go 语言源码编译
先在https://github.com/golang/go上fork一下自己的分支,然后执行以下命令下载代码到自己机器。git clone git@github.com:tanruixing88/go.git goroot 上面的命令较慢,另开一个窗口,执行以下命令,构建go bootstrap toolchain。go语言官网提到go1.4版本是用c实现工具链的最新版,这也...
2019-12-27 20:19:05 1200
原创 全链路压测笔记
全链路压测背景目的公司业务发展,难有一个量化的数据衡量核心链路的真实峰值。有助于提升核心业务的稳定性。 找出整个链路的瓶颈,优化少量的瓶颈部分提升整体性能,以期达到用最少的资源达到最佳效果。认识误区:不能单纯认为压测各个子系统后,整体系统没有问题,因为涉及到业务访问链路,多个业务可能有共用资源的瓶颈,主链路请求量增加,子系统或者存储未必是对应线性增加的。全链路压测难点业务场景、核心流程...
2019-06-01 22:37:12 1381 2
原创 elasticsearch high level rest client 开发注意事项
high level rest client开发需要注意如下几点:引入的json版本必须与引入es的版本是一致的,如es 6.6.2版本引入的json是2.8.11,则需要引入2.8.11才可以! <dependency> <groupId>com.fasterxml.jackson.core</groupI...
2019-03-25 14:33:08 781 3
原创 elasticsearch index设置
index.write.wait_for_active_shards 设置写入多少份分片数就返回结果,用于提升性能。
2019-03-14 15:03:04 1706
原创 elasticsearch 创建index 原则
相信有不少读者用elasticsearch的时候第一个难题就是如何创建好一个index。下面给出具体的样例和原则,帮助大家创建一个相对适合自己业务场景的index,有助于开展后续的开发工作。 先上创建index的模板:curl -XPUT 'http://127.0.0.1:9200/my_index_name_v1?pretty' -d '{ "ali...
2019-03-12 18:43:24 8411 1
原创 elasticsearch 运维reroute 去除index丢失分片
问题背景:在一个数据量特别大的日志集群中,假如有25台机器,每台机器部署2个es实例。那么共有50个节点,为了集群的数据平衡和考虑到日志数据量大给副本消耗太多的资源,只能设置number_of_shards为50,"number_of_replicas" : "0"。写的场景是按小时写入大量的日志,当某一台机器挂了(导致数据无法恢复)则会导致所有的index都会丢失对应机器所存储的...
2019-03-07 18:45:35 2079
原创 Linux hung参数
hung task相关配置1)设置timeout时间:echo 120> /proc/sys/kernel/hung_task_timeout_secs120单位为s。2)设置hung task后是否触发panicecho 1 > /proc/sys/kernel/hung_task_panic...
2019-03-06 14:42:43 503
原创 index 特定情形的设置
index.write.wait_for_active_shards 释义:等待有多少分片被写入成功后即可返回。设置为1,则主分片写入即可返回。注,kafka也有类似的配置。 用途:用于牺牲可能带来的一致性损耗,提升index写入性能,默认是全部副本写入才行。若集群在恢复时,主分片很快恢复,而副本分片恢复慢,则可以根据问题场景设置该项,使得业务尽快能写入数据,同...
2019-03-05 18:59:47 350
原创 elasticsearch 命令调试
调试手段设置error_trace=true,直接在URI后直接追加。 查询语句的时候可以用validate,参考地址:https://www.elastic.co/guide/en/elasticsearch/reference/5.1/search-validate.html...
2019-03-05 16:45:51 495
原创 yaml文件嵌套
python的pyyaml包中yaml嵌套还是基于在load中重载一个钩子类,对yaml的value进行解析处理。具体的看以下代码:#!/usr/bin/pythonimport os.pathimport yamlclass IncludeLoader(yaml.Loader): def __init__(self, *args, **kwargs): ...
2019-03-04 18:01:02 7016
原创 elasticsearch update性能提升技巧
es 批量update远比,批量get,或者单次query到文档,批量修改后,再批量index,这样效率会高非常多(有实验测试高达1000倍!)。
2019-02-27 17:00:11 6792 1
原创 elasticsearch 之jvm配置
elasticsearch master+data分离方式的好处master所需要的元数据占用的内存从数据节点进行剥离,使得数据节点更专注处理数据部分。 集群通信压力过大的时候,多个数据节点都能与网络负载不是很高的master节点进行通信,减少节点脱离集群的可能。 elasticsearch jvm配置,单个节点最大内存小于32g,合理配置为31g。es...
2019-02-25 21:32:22 3538
原创 java 日志配置
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-jdk14</artifactId> <version>1.7.25</version></dependency>https://e
2018-11-12 18:29:59 246
原创 golang 将json串转换为树状结构
设计思路:1. 遇到字符'{'、'[',tabNum++ \n\t*tabNum2. 遇到字符'"' 必须等待下一个字符'"'出现,形成字符串判断。3. 遇到字符',' \n\t*tabNum4. 遇到字符']'、'}' 前面的第一个字符必须插入 tabNum-- \n\t*tabNum 后面的字符没有','则直接tabNum-- \n\t*tabNum
2016-07-13 10:59:16 2952
转载 数据对齐 posix_memalign 函数详解
对齐数 据的对齐(alignment)是指数据的地址和由硬件条件决定的内存块大小之间的关系。一个变量的地址是它大小的倍数的时候,这就叫做自然对齐 (naturally aligned)。例如,对于一个32bit的变量,如果它的地址是4的倍数,-- 就是说,如果地址的低两位是0,那么这就是自然对齐了。所以,如果一个类型的大小是2n个字节,那么它的地址中,至少低n位是0。对齐的规则是由硬件引起
2015-06-07 00:19:02 889
原创 shell脚本判断闰年的逻辑表达式
废话不多说,下面是shell脚本闰年的判断方法:if [ $(expr "$year" % 4) -eq 0 -a $(expr "$year" % 100) -ne 0 ] || [ $(expr "$year" % 400) -eq 0 ]PS:shell脚本复合语句的简单样式:if [ "$i" -eq 1 -o "$i" -eq 2 ] && [ "$j" -eq 3 ]
2015-04-25 09:02:22 5546
如何在同一目录下用Makefile编写出两个独立的程序?
2014-10-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人