为什么这么慢?

昨天差点引发了一个严重线上bug,以此为记。

背景

我们现在采用的是logstash的jdbc插件同步mysql的数据。 这次上线的功能需要多关联一张表查询数据进入索引,直接体现在logstash jdbc配置文件中定义的SQL多了一个left join。

在JAVA中执行shell

今天抽时间解决了一个升级Elasticsearch后带来的一个问题。

起源是最初开发的一个用于维护搜索的项目infiniti,主要功能是重建索引,创建备份,维护分词,排序控制等。其中重建索引的部分,原先是基于elasticsearch-jdbc来做的,为了方便起见,从数据库导入数据的部分需要执行shell脚本。在前面一篇文章中也有说到,ES升级到5.0之后,数据库同步的部分也切换到了logstash,同样是通过执行shell脚本的方式同步数据。

基于.Net软件的反编译初探

苦于买不到火车票,尝试了一些口碑比较好的抢票软件,顺手做了一些反编译的尝试。

成果如图,也可以看到这篇要使用的样本:

![](/image/Windows 8.1 2016-12-29 23-26-49.png)

稍微了解之后,总体感觉.Net平台下的安全相对于其他显得偏弱,常见的壳就是.Net ReactorSmartAssembly等,而且祭出神器de4dot基本可以秒所有了,如果de4dot还不能解决问题,那就用dnSpy,而且这两个出于同一个作者之手。 去了壳之后,可用的反编译软件就很多了,常用的就是ILSpyReflector,前者开源免费,后者付费,两者都可以搭配一个强力插件Reflexil使用。

线上Elasticsearch集群升级到5.X版本

本文记录了将Elasticserach集群从2.3.3升级到5.0.2过程当中的一些坑。

Elasticsearch

官方提供了升级Elasticsearch的详细文档 集群的升级可以细化到每个节点的升级过程,也有相关的帮助文档。 官方还非常周到的提供了一个迁移助手elasticsearch-migration,以插件的形式检测升级过程中需要注意的事项。 首先通过插件来做一些准备工作: 主要包含了:Cluster Checkup、Reindex Helper、Deprecation Logging 3个工具,分别点击可以查看对应的需要处理的事项。

HTTPS之殇:绕过客户端的SSL证书绑定

想必大家都听过矛和盾的故事。 之前写过一篇文章,谈了接口加密中用到的HTTPS加固,可以谓之盾,今天来谈谈矛。

顺带提一下最近有个消息:

2017 年 1 月 1 日开始,苹果强制所有 iOS 应用必须使用 ATS ,即 APP 内连接必须使用更安全的 HTTPS。 wwdc2016