Linux生产环境上,最常用的一套“AWK“技巧
hi,大家好,小姐姐味道最有用系列完结。 敢用自己的名字做软件名字的,都有非常强大的自信。比如,垠语言什么的。 awk的命名得自于它的三个创始人姓别的首字母,都是80来岁的老爷爷了。当然也有四个人的组合:流行的GoF设计模式。但对于我这游戏爱好者来说,想到的竟然是三位一体,果然…
sequelize V5 升级记录
由于官方提供了 typescript 的支持,不需要在安装 @types/sequelize。 由于使用了 typescript 编译,解决问题。 由于 sequelize 的 type 此时由官方维护,重新定义了 Model 等类型。 虽然目前官方已经支持了对 Model 的…
【收藏】 Kafka监控组件大全
本文使用Burrow和Telegraf搭建Kafka的监控体系。然后,简单介绍一下其他的,比如Kafka Manager,Kafka Eagle,Confluent Control Center等。 使用Burrow拉取kafka的监控信息,然后通过telegraf进行收集,最…
在 postgres 中重构用户表的 ID
GET /users/:ID 是一个非常典型的 REST API。最近在浏览我的应用时,经常会有 把所有用户的 ID 放大16倍,并且添加一个 10086 的基数。有一种拉面的既视感.. 如果以上语句没有报错,那就说明用户量实在是太少了,如果数据量较多会发生主键冲突。 因为它太…
这样的高可用,我不要!
前不久,朋友的公司,出现了比较大的故障。故障引起的原因也比较好解释,因为使用了ActiveMQ的高可用级别(M-S架构,双写完成ACK),结果在高峰期间,造成了生产端消息拥堵,诸多请求无法落地,数据错乱。 据他说,他们的应用,级别比电信应用还要高(牛皮一定要吹),所以消息系统要…
中国第一TreeMap面试官,诞生了
更多精彩文章。 Linux五件套之类的。 条条大路通罗马,罗马就是TreeMap。 答:回答list,set,map巴拉巴拉。 答:回答数组链表红黑树巴拉巴拉。 答:好行不能哎,因为它都叫hash了。 答:不知道。 第一面试官:我了解你了,你可以回去了。 答:5种基本的,四种不…
这可能是最中肯的Redis规范了
更多精彩文章。 Linux五件套之类的。 redis功能强大,数据类型丰富,再快的系统,也经不住疯狂的滥用。通过禁用部分高风险功能,并挂上开发的枷锁,业务更能够以简洁、通用的思想去考虑问题,而不是绑定在某种实现上。 虽然 Redis支持持久化,但将所有数据存储在 Redis 中…
sed 命令实践: 升级 sequelize.js 时批量替换字符串
sequelize 是 Node 中使用比较多的一个 ORM 库,最近计划将项目中的 sequelize 升级至 V5 版本。 根据 升级文档,其中一项是即将禁用 String based operators,使用 Sequelize.Op 等 Symbol operators…
亿级“附近的人”,打通“特殊服务”通道
假如动物们也用GPS,突然有那么一天北极的公北极熊有点冲动,想刷一下附近有没有母熊。要求距离越近越好,不是澳大利亚动物园那只,也不是格陵兰岛上被囚禁的那群呆企鹅,要是有点共同的嗜好就再好不过了。这种应用场景如何解决? 一个基于LBS的社交应用或者电商应用,或多或少的包含一些地理…
血洗多线程,抱得 offer 归
工作和面试之中,遇到了很多多线程问题。这里我总结了一下,希望对你有所帮助。本篇内容,基本上都是一些反例,有些很低级但常见。 当然,面试时拿来装逼用,也是极好的。 先来10个。 现象: 系统资源耗尽,进程僵死。 原因: 每次方法执行,都new一个线程池。 现象: 某个线程一直持有…
【SpringCloud】配置:application.yml中都应该写些啥?
基本信息用来展示项目的版本、开发者等。可用来开发统一的管理后台对项目进行控制。 一般,通过访问 /info,即可得到解释后的JSON。 用来打印Server的Access日志和运行日志,同时比较重要的还有contextPath。良好的日志格式是必要的,用来进行后续的分析和统计。…
TypeScript 高级技巧
用了一段时间的 typescript 之后,深感中大型项目中 typescript 的必要性,它能够提前在编译期避免许多 bug,如很恶心的拼写问题。而越来越多的 package 也开始使用 ts,学习 ts 已是势在必行。 以下是我在工作中总结到的比较实用的 typescri…
MySQL痿了,放不下这么多数据!
精彩文章。 Linux五件套之类的。 更多请关注。当然也可以关注公众号。 MySQL在达到一定数据量(我的经验是3T、单表1亿)时,复杂查询会有明显的延迟。继续分库分表,会严重增加业务复杂性,尤其对很多非互联网产品来说,急需一个分布式存储。 MySQL本身也做了一些努力,那就是…
一些 实用的 git 小技巧
前些月,写了一个关于 git 的表格,叫Git Cheat Sheet,现分享一些有用的小技巧,更多内容请移步,另有一个非常不错的关于 git 小技巧的项目 git-tips。 团队合作时,经常会出现这样的问题。这时候可以使用 git blame 来定位代码的最后…
2年java,蚂蚁一面,卒
更多精彩文章。 Linux五件套之类的。 更多请关注。当然也可以关注公众号。 其实我一个都没答上来。并不是因为我笨,是因为我不会。在大扰的帮助下,现在我会了,求求你再给我一个机会。 1、TreeSet背后的结构是TreeMap,也就是红黑树,能够实现自动排序。它通过equals…
SpringCloud服务的平滑上下线
以前都是手撸RPC,最近接触SpringCloud,深感痛心。主要有以下几点: 建议准备上微服务的同学,固定下一个版本,不要随意更新或降级。拿tomcat的basedir来说,1.5.8到1.5.13到1.5.16版本是换来换去,不小心点会出事故的。 如上,basedir先是从…
"Sed" 高级功能:我这小脑瓜都快绕晕了
sed命令有两个空间,一个叫pattern space,一个叫hold space。这两个空间能够证明人类的脑瓜容量是非常小的,需要经过大量的训练和烧脑的理解,才能适应一些非常简单的操作。 不信看下面简单的命令,作用是,删除文件中最后两行。 在《Linux生产环境上,最常用的一…
我就是不看好jpa
更多精彩文章。 知乎看到问题《SpringBoot开发使用Mybatis还是Spring Data JPA??》,顺手一答,讨论激烈。我实在搞不懂spring data jpa为啥选了hibernate作为它的实现,是“Gavin King”的裙带关系么? DAO层搞来搞去,从…
开源一个kafka增强:okmq-1.0.0
mq是个好东西,我们都在用。这也决定了mq应该是高高高可用的。某团就因为这个组件,出了好几次生产事故,呵呵。 大部分业务系统,要求的消息语义都是at least once,即都会有重复消息,但保证不会丢。即使这样,依然有很多问题: 一、mq可用性无法保证。 mq的意外死亡,造成…
发布系统有那么难么?
更多精彩文章。 如果一个上点规模的公司,技术团队有什么值得一做的系统,那么发布系统算一个。 1、 每个公司的流程和技术栈都是不一样的,生搬硬套,就像便秘一样不顺畅。 2、 发布系统技术开发成本不高,很容易搞。你要是觉得难搞,那一定是卡在复杂的公司人员环境和流程上。 3、 jen…