开发常见知识点整理

Hash表数组长度不足怎么办?
多线程并发修改Hash表怎么办?如何保证线程安全? JDK的ConcurrentHashMap是如何解决的?
如何使Hash表中的数据分布更加均匀,减少Hash聚集?
余数Hash算法应用于分布式缓存路由的时候有什么问题?如何解决?一致性Hash算法原理是什么?
用你熟悉的编程语言20分钟写一个一致性Hash算法实现。
需要应用程序手动 commit。commit 成功但是网络异常?这个时候怎么处理的。
集群
hashcode?
缓存服务器集群服务器路由算法。
使用一个环(树、数组)来存储服务器地址 hashcode 值(2^32)个节点)。如果当前 key hashcode 在环上不存在,则寻找最近的服务器节点存储。但是这种策略下,有可能因为 key 值的原因导致缓存大量命中某些服务器。
基于虚拟节点的一致性 hash。 在 hash 环上,冗余同一个服务器的 hashcode 值,手动较平均的设置虚拟节点。
支付模块,支付数据分发用做对账结算统计数据。
killbill common queue
DataHouse 改进,CDC 技术。
利用数据库的事务日志记录。
Canal - MySql binlog,基于 MySql 复制机制。 Debezium - MySql/SqlServer/MongoDB/Postgres
Bean Map ,作用域,没有要求私有化构造函数。
所有 http 请求都先进入 DispatcherServlet, DispatcherServlet 根据请求匹配注解。
DispatcherServlet#handle 解析 ServletRequest ,获取请求 uri ,解析参数,使用工厂根据 uri 创建 controller 实例,调用方法(方法怎么获取的)。通过 ServletResponse 输出响应值。
这里能看出来,只要 ServletRequest ServletResponse 对象实例没有变,经历多个线程,请求发起方无感知。
先讲问题,再讲技术。
大概业务