intro1:一文搞懂unix time、unix epoch、utc时间、gmt时间
intro2: 大部分人对unix time的误解
本计划对上一篇文章做点补充,不过今天来点简单的。
unix time
许多人对 unix time有误解,只知其是相对世界时/格林威治时1970年1月1号0点0分0秒整的时间差,有的人可能还记得是0时区。
但这些认识是不对的。而一些文档如Java API Doc里写的并不全,或没有明确使阅读者明确理解。
intro1:一文搞懂unix time、unix epoch、utc时间、gmt时间
intro2: 大部分人对unix time的误解
本计划对上一篇文章做点补充,不过今天来点简单的。
许多人对 unix time有误解,只知其是相对世界时/格林威治时1970年1月1号0点0分0秒整的时间差,有的人可能还记得是0时区。
但这些认识是不对的。而一些文档如Java API Doc里写的并不全,或没有明确使阅读者明确理解。
intro1:一个不太正常的elasticsaerch分片分布场景下的扩容
intro2: elasticsaerch到底往Lucene中写了些什么数据
intro3: Lucene的文件的压缩
前一篇文章,留了个Elasticsearch(以下简称ES) cpu load图猜问题,不难猜,这里贴一张磁盘图看的就更明显了。
intro1:kafk异常io图,kafka rebalance和reassigne区别
intro2: kafka真的只能从leader partition读写吗
intro3: 一个不太正常的elasticsaerch分片分布场景下的扩容
最近在排查线上问题时,留意到几台Kafka机器的基础的zabbix io/cpu监控,图一所示平稳读操作中夹杂一些尖峰,图二是之前放大的图
intro1:对一段解析17monipdb/ipip.net ip库 函数的 15倍-70倍-300倍 性能优化
intro2: 一个sql count 语句的优化
声明:
intro1:如何存储以及计算一份资源的累积UV/PV?
intro2: 使用 hyperloglog 究竟有多节省内存呢?
接一需求,一顿抽丝剥茧去干扰取核心后才弄清楚原始的需求:即时的计算资源累积UV,即对uid去重后进行计数,超阈值则上报。
自然想到了Redis的 Hyperloglog[以下简称HLL] 数据结构计数。
Redis的HyperLogLog 每Key只需要12kB就可以统计大到 2^64个的用户,而保持0.81%的误差率。
现象和问题:
写了个 xx-service 的基于maven项目,借助spring配置文件可执行,现在有需求是希望将该项目以SDk方式打包到maven仓库以便使用其中某些service类(暂不论合理与否),如何通过maven profile实现在编辑器里不同开发人员默认用不同的 active profile?
实现不同的 active profile是希望双方在开发的时候,一个可以直接package出来 不含配置文件的纯 SDK 包,而我这边使用eclipse时可以默认生成需要的配置文件(local profile)到classpath下,免于命令行切换,提高开发/测试效率。
现象和问题:
有一个基于SpringBoot+Spring Security和CAS SSO的应用A,端口是8080,前端为Nginx,Nginx对外为https,即443端口,nginx内部反向代理到A就是常规的http协议了,应用A配置了正确的SSO login url和service url,历史原因,Nginx混乱的逻辑,没有配置80(http)强转443(https)。
问题来了:服务A本身运行正常,但是开启nginx前端代理时候,发现通过https进入系统A时,第一次(sso登录验证成功)通过url1总是跳转到 80端口(http)的服务,而不是443端口(https)的A应用,但是第二次再通过url1就能正常访问A应用。
1.
https://www.easyice.cn/archives/328
一次 JBD2进程导致磁盘 IO 高的分析解决过程
设计不合理,导致对 zk 执行大量写操作,导致io高。
临时措施:将 zk 的数据路径调整到系统盘,系统盘为 ssd
使用 sysdig+strace 工具
2.
软件架构被高估,清晰简单的设计被低估
https://www.infoq.cn/article/NKLNc0HHtZNaviOX2VdV
如何通过kafka-streams实现去重后再groupBy统计频率?
使用Kafka-Streams做流计算的大家想必知道,它本身提供了 groupBy 操作可以方便我们做一些聚合计算,比如统计每分钟内每个人发出的消息数量,这个时候就可以 groupBy 用户的uid去,统计用户间互动消息频率就可以使用groupBy 用户uid和他的互动用户uid即可。
但如果现在需求是:如何统计每分钟和任一用户互动消息超过某频率的用户?
intro1:卡马克算法时最快的开根号方式吗?C/Java语言本身是怎么实现开根号的?
intro2: java的内置sqrt和c的内置sqrt哪个更快?Java的编译/JIT优化和GCC的编译优化是否有不足之处?
intro3: java的C2优化效果一定比C1效果好吗(对性能而言)?
这是最近看一位博主解Leet Code题想到的,原题简化一下是:给一个正整数(32位int)开根号后得到x,再对x取整返回。
博文的解法是使用二分查找,Java代码实现,不过这里想对该题再讨论几点
1)二分查找也可以优化下,建立一个简单的范围表,再二分查找,某几个国产IP库查询也是该做法(因为比BTree省太多内存)。
2)其实还可以用 牛顿切线法 ,每个ACMer入门练手时都会碰到的算法。
3)因为本题目只是要求返回正整数,那么如果我在 牛顿切分法阈值判断的时候,再加一个条件,判断本轮的整数部分和上一轮的整数部分是否相等,会不会更快?
4)开根号怎能少了卡马克算法,要知道在关于开根号方法中祭出卡马克算法,也就基本意味着本次交谈该结束了,但是卡马克是最快的方法吗?