Spring Boot项目中指定依赖版本

端午节前将Spring Boot的版本升级到2.3.1.RELEASE之后,假期回来的第一天就推送上线,最近线上系统开始爆一些奇奇怪怪的错误,比如: paho3625270288893656: Timed out as no activity, keepAlive=60,000,000,000 lastOutboundActivity=4,391,824,700,168,296 lastInboundActivity=4,391,767,474,515,409 time=4,391,884,700,372,796 lastPing=4,391,824,700,242,264 或: Lost connection:…

AWS Classic Load Balancer配置Proxy Protocol

阿里云SLB不支持在TCP上挂SSL证书,拿HAProxy作为服务前置挂载证书会吃掉2个TCP连接数,单机只能撑近32K(65K的一半)的外部连接数。可以通过一些方法(比如增加Virtual Network Interface)突破这个限制,但服务因需挂SSL证书而额外绑定HAProxy,增加了一层中间件,架构图画出来后总觉得不好看。周一跑去服务器上动手脚,挂好SSL证书,可以拿掉HAProxy,连接数也突破了这个限制。 检查连接的时候发现服务能认TCP Source IP,阿里云SLB默认就开了Proxy Protocol,挺厉害的,不需要Client那边额外设置就能拿到Source IP。于是去AWS控制台找了一圈ELB的选项,没有开启Proxy Protocol的设置,倒是文档上写了可以通过awscli开启,折腾了一下把这个配置打开了,这里记录一下。 Proxy Protocol是什么Proxy Protocol是HAProxy的作者Willy Tarreau在2010年实现的一个Internet协议,在三次握手之后,由Proxy往TCP上插一个很小的数据包来传递客户端信息,如源IP、目标IP等,在负载均衡和后端服务通信或更复杂的网络环境时非常有用,有点类似HTTP请求上的X-Forwarded-For头。 Proxy Protocol有两个版本,V1和V2。 Human-readable header format (version 1)V1很简单,…

在国内阿里云ECS上搞环境小贴士

昨天下午对一台阿里云的线上测试环境的机器进行压测,压到快下班的时候所有容器都挂了,机器上的HAProxy启动不了,我直接敲sudo reboot重启机器,结果机器再起不能。 抱着希望提了个工单,好长时间没人理,挺绝望的。我于是下定决心强行关机,重装系统,系统启动正常之后,邮件、短信通知我工单系统有回复了: 我坚信比我还专业的阿里云工程师肯定看不上我这样的运维,于是五星好评分期付款,开始跑机器初始化脚本。 初始化很快,建立用户、Docker还有各种Packages一下子就安装好了,最后安装HAProxy、Ansible和配置Jenkins的时候击碎了我的玻璃心,网络要么无法连接,要么是100B/s的下载速度,后面试了很多方法,加快了这个速度,遂记录下来以示后人。以下均为阿里云于2020年4月17日19点提供的Ubuntu 16.04的ECS主机上的操作。 HAProxy自带的源更新到最新之后,HAProxy为1.6.X版本,不支持在监听上追加expose-fd listeners,也就是0宕机重载功能,这个特性在1.8版本上才支持。光速吟唱:简单点就是本质上是利用新Linux Kernel里SO_REUSEPORT的Socket选项,允许同一台主机上的多个Socket同时binding在同一个TCP Port上,HAProxy在reload时把旧进程listener FD传给新进程listener,旧进程处理完当前连接后退出,新进程处理新的用户连接。…

2019 Black Friday And Cyber Monday

每年黑五都会信用卡大出血,去年买得比较多,今年很多消费提前,今年黑五并没有买太多东西。 中行信用卡的活动要求5个订单,每单超过¥600才会触发返现,最低消费是¥3000,返现¥300。 买了的 镁光DDR4笔记本内存,16G x 2,亚马逊海外购,https://www.amazon.cn/dp/B071H38422/ 本体¥637.76 + 运费税费¥119.82 = ¥757.58,是目前质量与价格都非常不错的32G笔记本条,买了两条回来把家里的电脑升到64G 中行信用卡可以返现10%,这次下单也才¥757.58 * 0.9 = ¥681.9 去年京东买的32G内存条要1300,京东32G内存普遍在800+,现在681.9到手,挺值的 AppStore Gift Card,Digital…

Intellij IDEA单元测试时报Test events were not received

最近用Intellij IDEA 2019.2.3反复跑单元测试的时候,单元测试没有运行,抛出一个Test events were not received的信息,看了一下运行单元测试的命令竟然是gradle :project-name:cleanTest :project-name:test --tests "some.class.some.method" 查了一下,Intellij IDEA从2019.2.1版本开始,会将Gradle管理的项目的测试代码,默认使用Gradle来运行,从Preferences -> Build, Execution, Deployment -> Build Tools -> Gradle进入,可以看到: 将Run tests using: Gradle中的Gradle修改为Intellij IDEA,接下来到Run/…

reinstall emqx

After reinstall emqx, we could not start emqx any more. I tries several times and find the access to solve this problem without losing external configs include emqx.conf and plugins' configs ## stop emqx sudo systemctl stop emqx ## disable from systemd sudo systemctl disable emqx ## remove from apt sudo apt…

DeskMini 310组装及安装Hackintosh记录

上次Brix挂掉之后,买了个HP ZBook 15 G1把Brix的硬盘、网卡、内存都挪到里面,32G的内存用起来特别舒服。公司的个人电脑是Mac Mini 2012款和MacBook Pro 15 2015款,内存都已经升级到最高支持的16G,开启太多浏览器页面和稍微多一点的Docker镜像内存就爆掉,很多事情只能下班回家里做,有次在做存储方案的时候需要写入大量数据,关掉了其他程序也没用,内存和硬盘使用率满了,一上午跑不出东西,郁闷了一周觉得要把这个Mac Mini出掉,换更好的设备。调研了好长时间,我组装好了一台DeskMini 310机器,也在上周顺利把Mac Mini卖掉,朋友和网友都在催我写个文章说说这台机器的前因后果,今天终于有时间写点东西。 硬件购买DeskMini 310是110的升级款,有几个亮点: 机身小巧,只有1.92L支持Intel 8系与9系的桌面CPU,最大TDP 65W支持1根M2硬盘,2块SATA 2.5寸硬盘最高支持双通道32G内存无独显,方便安装Hackintosh确定好主机之后,再确定CPU、散热器、内存、硬盘和无线网卡就好了,配置单如下: 主机及电源:…

2018年年终总结

2018年的最后一周跑去北京出差了,几天全身心投入工作,回到上海的时候发现累得不行,就休息了一天。2018年最后一天和朋友跑出去跨年,2019年元旦在家里收拾东西,晚上睡觉前心里想2018年的年终就翘掉吧。没想到第二天被很多人追着问怎么不写年终…还是好好总结总结吧。 工作工作第一。 主线和救星今年的工作有四条比较清晰的线,几条线上的角色转换都还算成功,没有做到最好,也没有留下遗憾。 虽然挂着架构师的头衔,但仍然亲自在一线写代码、搭环境、搬机器、搞运维。2018年环境有较大调整,工作主线一直在变动,但是职责不变:救火。救火工作从年初一直持续到年末,即使是最后一个工作日,也在忙着救火。 我跟工友说,我应该算是灾星吧,在哪里出现哪里就有问题发生。工友说,你应该算救星,哪里有你哪里就有希望。我点点头,说也是。啊,还是有点心理学的东西在里面的。 领队和冒险在不同的主线里担当的角色都不太一样。紧急情况下我会成为前锋力量,快速处理问题,而大部分情况我变成了中坚和后援,成为支持别人完成任务的人员。 作为中坚和后援角色的时候,能够快速推动项目前进,在关键事项的决策上也能够快速下结论并且执行。 有个不好的地方就是,我对解决问题的时间是从我的角度来考虑的。不管是出于自信还是乐观,我还是太自我,表现在——我对一些任务的解决时间是按照小时为单位进行计算的。…