intro: 对于布尔类型字段的处理,Elasticsearch 曾犯了一个错,直到数年后 发布6.0版本才修正过来,这个设计或多或少会遇到,只是没留意,但是查询的时候结果还是让人困惑的。
问题或现象
前几天刚到公司,同事抛出一个问题,就是发现前一天某个搜索查询条件没有结果,但是第二天却出来结果,不过这个出来的结果是不对的,即搜索result=90时,出现了result=91的结果。
于是给我发了链接,我点过去就是下图这样子:
intro: 对于布尔类型字段的处理,Elasticsearch 曾犯了一个错,直到数年后 发布6.0版本才修正过来,这个设计或多或少会遇到,只是没留意,但是查询的时候结果还是让人困惑的。
前几天刚到公司,同事抛出一个问题,就是发现前一天某个搜索查询条件没有结果,但是第二天却出来结果,不过这个出来的结果是不对的,即搜索result=90时,出现了result=91的结果。
于是给我发了链接,我点过去就是下图这样子:
intro:去年记录的logstash几个问题,因为涉及较多且杂乱,主题并不是那么清晰,今天整理时候发现写起来太长了,所以打算分成2-4篇文章,几个小块逐个讨论。
系统概况:
1)各服务产生事件(日志)另有一套Event机制支持,本文讨论的是如何跨数据中心(机房)传输。
2)普适性的,适合各语言实现的设计,故基于文件传输,即服务在本地产生滚动的日志,组件去 tail 文件的方式,将这些数据 即时 传输至另一个机房的Kafka。
3)logstash是5.6.4版本,kafka版本 0.10.0.1版本问题(再高版本的logstash 就不支持该版本的Kafka了)
4)logstash的input是滚动的日志文件,即tail_mode,output为kafka,无解析,插件开启了metric,queue 为 persistent,即文件模式,硬件为磁盘。
5)文件系统为ext4,系统inode是重用的。
6)本文贴出配置或数据已做脱敏处理,如有疑问请忽略。
本文先讨论遇到的两个问题
1)即便是 kill -15, logstash重启后会丢失数据
2)性能问题,可能消息大小会有影响,但观察下来logstash上传速率上限在 1.2万条/秒.
intro1: 你是否为在Mac电脑上切换不同的应用时也需要切换输入法而觉得恼怒?比如刚在微信中文下聊天,这时转向命令行工具,打了一半才发现是中文,不得不再重新输入?
intro2: 如果你恰巧还是一名 hacker,是否苦于为了某些系统改进而搜索一堆 Applescript最后发现实现不了你要的功能。
intro3: 这是去年写的短文,一直没时间(懒)再深入完善,今天修改了些,但也只做了简单的入门和介绍
最近升级了Mac系统,发现之前的hammerspoon有个脚本耗电偏高,该脚本就是实现打开 Terminal/iTerm2(命令行)/Spotlight等可以将输入法自动切换到拼音输入法,打开Chrome/Firefox等可以自动切换中文输入法。
长话短说,查看生产环境Elasticsearch (5.6版本) 时,发现一些如下有着非ascii码的索引
|
|
上面是某系统因为历史缘故,使用用户的数据创建索引了,因暂时无法推动其做修改,于是需要考虑用脚本定时删除。
之前因为时间紧迫的缘故,在公司的CentOS 7 机器上部署一个快速实现的数据收集工具,考虑到避免其他语言发布和变更起来麻烦,于是就用 python+bash 实现。
服务端就是最简单不引入任何python包的SimpleHTTPServer+Handler实现的。
偶然一次看日志发现本来应该在三分钟内完成的一个同步/上报循环结果未能如期完成,每个请求看起来相隔十秒左右,最后定位下来是python2.6.6的问题。
1.
Running Envoy as an Edge Proxy at eBay: Replacing Hardware Load Balancers with a Software Solution
https://www.infoq.com/news/2018/12/envoycon-ebay-edge
eBay的Envoy实践。
2.
Spring源码探究:容器
https://www.jianshu.com/p/4a82770fd188
你遇到过定义了一个拦截器/bean,在controller层的代码生效,而service层没生效?
这篇文章做了解读。虽然问题是适合Spring初学者,但是作者解释的还是清晰的,而且不过分深入,适合初步了解Spring。
1.
NIPS不更名,我就撤资:赞助商加入联合抗议行列
https://www.jiqizhixin.com/articles/2018-11-02-12
不过后来还是改名字了 NeurIPS
以后看文章要找对地方啊。
2.
GitHub Incident Analysis Shows How to Improve Service Reliability
https://www.infoq.com/news/2018/11/github-incident-analysis
GitHub服务中断24小时11分钟事故分析报告
https://mp.weixin.qq.com/s/fFv1ASElHsVNEPPkP53qAQ
了解下:
GitHub 拥有多个 MySQL 集群,大小从几百 GB 到 5TB 不等,每个集群最多有几十个只读副本来存储非 Git 元数据,因此我们的应用程序可以提供拉取请求和问题管理、身份验证管理、后台处理协调等原始 Git 对象存储之外的其他功能。应用程序不同部分的数据通过功能分片存储在各种集群中。
为了大规模提高性能,应用程序将数据直接写入每个集群的主数据库,但在绝大多数情况下将读取请求委派给副本服务器。我们使用 Orchestrator 来管理 MySQL 集群拓扑和处理自动故障转移。Orchestrator 以 Raft 的共识算法为基础,可以实现应用程序无法支持的拓扑,因此必须十分小心让 Orchestrator 配置与应用程序的期望保持一致。
1.
stop using infinite scroll
https://logrocket.com/blog/infinite-scroll/
对无限滚动屏的吐槽,说起来可多了。
2.
微软加入开放创新网络,旨在保护Linux和开源
http://www.infoq.com/cn/news/2018/10/microsoft-oin
微软是专利大企业,曾经用专利起诉著名企业,这次“拥抱Linux”,甚至打出了恶心的“ heart Linux”标语,至于未来如何,拭目以待。
3.
An HTTP proxy for Elasticsearch, Solr (etc.) to prevent a 100% full disk situation.
https://github.com/flaxsearch/harahachibu
1.
继续 SCALA TIMES 上的分享
https://mailchi.mp/softwaremill/scala-times-issue-2607957
Akka anti-patterns: Java serialization
Practical Cats: Functor and Applicative
Implicits, type classes, and extension methods, part 4: understanding implicits
Cross-Platform Language Design
2.
Be Nice And Write Stable Code
http://technosophos.com/2018/07/04/be-nice-and-write-stable-code.html
1.
题记:
遇到个使用Spring xml方式配置Hikari,因为一个Bean的命名原因导致爆出 SQLFeatureNotSupportedException,追溯原因过程其实很简单,但是找到问题所在确实浪费不少时间。
2.
先看源码。
由于某些原因,只能使用 Spring XML方式配置 Hikari的 datasource,我自己使用jdk 1.7版本,不过粗看了下适用1.8+的Hikari代码,应该也是存在这个问题的。