elasticsearch 小记
本文与工作和技术无关,是对过去半年来力量系统提升的总结
过去近一年主要的工作任务是基于ABAC授权策略的IAM系统开发,终于发布上线。
Kong+go plugin server 对上传文件接口处理的bug
Docker 服务异常导致所有容器失效
automaxprocs解决容器获取真实配置的CPU核心数量,解决golang调度G-M平衡
理解redis的单线与多线程程操作
https://tldp.org/LDP/GNU-Linux-Tools-Summary/html/x11655.htm
Elasticsearch+HBase的存储方案
哈希算法(Hash Algorithm)
elasticsearch match,term,match_phrase简记 https://blog.csdn.net/sinat_29581293/article/details/81486761
在微服务拆分的架构中,各服务拥有自己的数据库,常常会遇到服务之间数据通信的问题,B服务数据库的数据来源于A服务的数据库。A服务的数据有变更操作时,需要同步到B服务中。
尽量不要使用SELECT * 不需要的列会增加数据传输时间和网络开销。需要解析更多的对象、字段、权限、属性等内容,在SQL语句复杂,硬解析较多的情况下,会对数据库造成沉重的负担,大的文本会增加网络开销 对无用的打字单会增加io操作。长度超过728字节的时候,会先把超出的数据序列化到另一个地方,因此读取这条记录会增加一次io操作(MySQL InnoDB) 失去MySQL优化器”覆盖索引”策略优化的可能性。首先要通过辅助索引过滤数据,然后再通过聚集索引获取所有的列,这就多了一次b+树查询。原本可能只通过辅助索引即可拿到所需要的字段数据
TiDB binlog 同步到MySQL时,TiDB会把SQL语句进行重新组装,比如UPADATE 拆分成DELETE 然后REPLACE INTO,这样通过binlog恢复或同步数据会有更高的性能吧。但是如果需要binlog原始操作逻辑进行区分的,这种重组方式就不合适了
分布式ID生成的几种方案选择 https://www.cnblogs.com/cider/p/11776088.html https://tech.meituan.com/2017/04/21/mt-leaf.html snowflake 会遇到时间回拨的问题,一种解决思路:https://juejin.im/post/5a7f9176f265da4e721c73a8
某日无事,想看看数据库的业务和性能方面有没有潜在问题,通过TiDB的INFORMATION_SCHEMA数据库SLOW_QUERY表,发现了大量INSERT INTO的慢日志,执行时间在0.3-1.5s之间,平均每几秒钟就有一条。
修改Go Module相关环境变量 export GOPROXY=https://goproxy.cn,direct export GOSUMDB=sum.golang.google.cn (此地址未被墙)
已经忘了上一次写年终总结是什么时候,觉得有些感想和记忆,用文字记录下来,才不会变得越来越模糊,直到再也没法想起。2019年,我觉得过得很认真,很充实,这是来自心底的感受。有开心快乐,有挑战自我,有新事物,新体验,也有悲伤和痛苦。觉得像是gap year,自己在这一年尝试了很多新的事物,有很多新的领悟和感受,个人的思想,见识等都得到了提升,我知道这一年我的没有停滞不前,keep moving on。
Casbin API 简单了解
用struct{}{}来表示空或无用值能节省空间,struct{}{}的size是0
http://baotiao.github.io/2017/09/12/distributed-lock/
Golang原始 IN SQL语句构造
Which concurrent map to use That very much depends on your concurrency needs, your hardware, and your requirements, but a few rules of thumb that might or might not help:
只需五步,自己动手写一个静态博客 收集markdown列表 解析markdown源 生成博客文章 生成博客首页索引 开始编译 http://muxueqz.top/a-small-static-site-generator.html https://blog.thea.codes/a-small-static-site-generator/
简单理解行数据库和列数据库
最近又看了一下CSRF攻击的内容,将CSRF token的生成算法也熟悉了一下,在此做总结。
关于go concurrency bugs的学习记录,来源于github项目
WaitGroup 不能被拷贝传递
在一个SaaS或PaaS系统中,唯一属性的是company_id(company)
东京之行游记。旅行不仅仅只是“上车睡觉,下车拍照”,而是要记录下在另一个世界的思考、不一样的生活和知识,这段经历,会真成为你的人生财富。
Golang构造hook函数方式的思路
Microservices Concerns
sendFile in Kafka Kafka 在数据写入及数据同步采用了零拷贝(zero-copy)技术,采用sendFile()函数调用, sendFile() 函数是在两个文件描述符之间直接传递数据,完全在内核中操作, 从而避免了内核缓冲区与用户缓冲区之间数据的拷贝,操作效率极高
TiDB 通过索引查询和直接扫描 Table 的区别