- 过滤掉对自己感觉没有技术相关性的,或者是那种水贴
- 对内容进行归类整理
- 阅读完写下自己的读后感
Linux I/O 原理和 Zero-copy 技术全面揭秘
java线程池(newFixedThreadPool)线程消失疑问?
线程池的异常线程会被销毁,然后重新创建新的线程来补位
Java ConcurrentHashMap 高并发安全实现原理解析
java.util.ConcurrentModificationException详解
迭代ArrayList的Iterator中有一个变量expectedModCount
该变量会初始化和modCount相等,但如果接下来如果集合进行修改modCount改变,就会造成expectedModCount!=modCount
Iterator的remove会修改expectedModCount,对单线程有用多线程无用
Java并发编程:并发容器之CopyOnWriteArrayList
CopyOnWrite容器也是一种读写分离的思想,读和写不同的容器
写操作复制出一个新的容器,然后新的容器里添加元素(加锁),读还是会读到旧的数据(不加锁)
get方法里将要使用的共享变量都定义成volatile,java内存模型的happen before原则,对volatile字段的写入操作先于读操作
put方法里需要对共享变量进行写入操作,所以为了线程安全,在操作共享变量时必须得加锁
count方法先尝试两次不行再加锁,modCount变量,在put, remove和clean方法里操作元素前都会将变量modCount进行加1
那么在统计size前后比较modCount是否发生变化,从而得知容器的大小是否发生变化
Java8之Consumer、Supplier、Predicate和Function攻略
java8 Stream的实现原理 (从零开始实现一个stream流)
OkHttp3线程池相关之Dispatcher中的ExecutorService
Thrift的客户端是线程不安全的——这意味着在Spring中无法以单例形式注入到Bean中
gRPC服务端的Response都是异步形式
gRPC的客户端有同步阻塞客户端(blockingStub) 和异步非阻塞客户端(Stub)两种
获取 PB 中所有非空字段:bool has_field = reflection->HasField(message, field)
将字段校验规则放置在 Proto 中:optional string name =1 [(field_rule) .length_min = 5, (field_rule) .id = 1]
基于 PB 反射的前端页面自动生成方案
通用存储系统(根据反射取出K/V)
Tomcat 9.0.26 高并发场景下DeadLock问题排查与修复
Redis小功能大用处(1) -stat_expired_time_cap_reached_count
从1到3分布式Redis电商实战&缓存穿透&缓存雪崩&缓存失效终极解决
Codis VS Redis Cluster:我该选择哪一个集群方案
codis提供了
1.dashboard的fe界面运维简单
2.基于zookeeper的proxy代理slot-mapping映射
3.基于sentinel的主从切换高可用
codis提供了异步的数据迁移方案(其中对大key拆分迁移的原子性方案),对比redis-cluster来说相对应用较早
非日志型(搜索型、线上业务型) 的shard容量在10
30GB(建议在10G) 日志型的shard容量在30100GB(建议30G) 单个shard的文档个数不能超过21亿左右(Integer.MAX_VALUE - 128)
一个节点管理的shard数不要超过200个
routing id不均衡:集群容量和访问不均衡,对于分布式存储是致命的
拒绝大聚合 :ES计算都在JVM内存中完成
拒绝模糊查询:es一大杀手
拒绝深度分页
禁止查询 indexName-*
ISR : leader 副本保持一定同步的 follower 副本, 包括 leader 副本自己,叫 In Sync Replica
HW: Highwater, 俗称高水位,它表示了一个特定的消息偏移量(offset) 在一个 parttion 中 consumer 只能拉取这个 offset 之前的消息(此 offset 跟 consumer offset 不是一个概念)
LEO: LogEndOffset, 日志末端偏移量, 用来表示当前日志文件中下一条写入消息的 offset
leader HW: 该 Partititon 所有副本的 LEO 最小值
follower HW: min(follower 自身 LEO 和 leader HW)
Leader HW = 所有副本 LEO 最小值
Follower HW = min(follower 自身 LEO 和 leader HW)
Leader 不仅保存了自己的 HW &LEO 还保存了远端副本的 HW &LEO
在kafka配置为AP系统的情况下发生截断发生的概率会大大提升
Kafka Broker 会在内存中为每个分区都缓存 Leader Epoch 数据,同时它还会定期地将这些信息持久化到一个 checkpoint 文件中
Prometheus远程写入InfluxDB,遇到OOM引发的错误怎么解?
移动端APM网络监控与优化方案
网络状况较好时,HTTP2.0多路复用,带来了性能上的优势,但在网络不稳定时,HTTP1.1错误率低于HTTP2.0。
- 多域名连接共享,实现0RTT多路复用。
- 避免了DNS解析,防止DNS劫持。
- protobuf编码私有协议,节省流量。
美团之前没有好好的看kylin的源码和配置参数,导致线上的CPU、内存、文件数没有规划
引擎升级至:spark(最近是flink了) 数据源采用hive 全局字典依赖配置
自研的图数据库:解决了热点无问题,性能单节点R:200k W:10k
不支持ACID事务、总之还在发展中
网易云音乐将实时计算的多个sink下kafkasource的重复消费问题:增加了一个data update标记同一个表计算合并
多个kafka集群部署在一个交换机下,离线计算和实时计算等其他情况造成的交换机带宽问题:拆分机房规划