add by zhj: 注解在Java内部其实就是一个接口,对于每个注解都会生成一个动态代理类,准确的说只有通过反射获取到注解时,Java才会生成这个动态代理类,对于每个使用的地方,会使用化该动态代理类。 文中其实不仅提到了注解的实现方式,还提到了如何将动态代理类class输出到.class文件,利 Read More
add by zhj: 我理解,注册中心其实对A的要求要高于C,所以应该实现的是AP,而不是CP。注册中心的各个节点上,即使数据不一致其实也没关系,比如节点1上保存的服务提供列表是A, B, C,节点2保存的是A, D,E,这对服务消费者来说影响很小,只会导致服务提供者的负载并不那么平均。但无论是节 Read More
add by zhj: 关系型数据库有Schema,修改Schema的时间比较长,一般都要秒级和分钟级。主备延迟有相同的数量级,对于不支持Inplace方式的DDL,只能用Copy方式,Copy方式在执行DDL时,整个表不可读写, 影响非常大。不过,对于MySQL5.6(尤其是MySQL5.7),绝 Read More
add by zhj:文章写得非常好,之前我以为用zookeeper实现分布式锁的方案跟Redis差不多,就是并发创建一个Znode节点,如果成功就获取锁,失败,就监听这个Znode节点的删除操作,当主动删除或因session断开而删除该Znode时,等待的机器节点再去获取锁。 但这样做有一个问题: Read More
原文:https://www.aboutyun.com//forum.php/?mod=viewthread&tid=12882&extra=page%3D1&page=1& 1.Kafka独特设计在什么地方?2.Kafka如何搭建及创建topic、发送消息、消费消息?3.如何书写Kafka程序?4 Read More
add by zhj: 核心原因有两个: 1. Goroutine的栈大小是会自动调整的,而Java线程的栈大小在启动Java虚拟机后就固定不变了,默认是1M,这导致所有Goroutine的栈空间之和更小。即使用更少的内存 2. Goroutine是协程,在用户态进行切换,切换速度更快。Java的线 Read More
add by zhj: 对泛型的实现原理解释的非常好,醍醐灌顶 作者:frank909https://blog.csdn.net/briblue/article/details/76736356 泛型,一个孤独的守门者。 大家可能会有疑问,我为什么叫做泛型是一个守门者。这其实是我个人的看法而已,我的 Read More