摘要:https://www.cnblogs.com/duanxz/p/4123068.html
阅读全文
摘要:https://www.cnblogs.com/dolphin0520/p/3932921.html
阅读全文
摘要:https://www.cnblogs.com/zhengwang/p/8136164.html
阅读全文
摘要:https://www.cnblogs.com/dolphin0520/p/3920373.html volatile有两层语义: 1.保证多线程对变量操作时的可见性,即一个线程对变量修改后,对其他线程立刻可见。 2.禁止指令重排序。 第一点,在计算机内存模型上存在数据缓存一致性的问题。因为在执行程
阅读全文
摘要:上图简要描述了Apollo的总体设计,我们可以从下往上看: Config Service提供配置的读取、推送等功能,服务对象是Apollo客户端 Admin Service提供配置的修改、发布等功能,服务对象是Apollo Portal(管理界面) Config Service和Admin Serv
阅读全文
摘要:长连接实际上我们是通过Http Long Polling实现的,具体而言: 客户端发起一个Http请求到服务端 服务端会保持住这个连接60秒 如果在60秒内有客户端关心的配置变化,被保持住的客户端请求会立即返回,并告知客户端有配置变化的namespace信息,客户端会据此拉取对应namespace的
阅读全文
摘要:上图简要描述了Apollo客户端的实现原理: 客户端和服务端保持了一个长连接,从而能第一时间获得配置更新的推送。 客户端还会定时从Apollo配置中心服务端拉取应用的最新配置。 这是一个fallback机制,为了防止推送机制失效导致配置不更新 客户端定时拉取会上报本地版本,所以一般情况下,对于定时拉
阅读全文
摘要:spring事务是基于代理来实现的,所以某个被加了@transactional 的方法只有被代理对象调用时,才会生效,否则不会生效。 比如: 1.方法内部调用是不会走代理的,必须先进行注入,才会走代理 2.自身调用、异常被吃、异常抛出类型 3.propagation 设置错误,SUPPORTS,NO
阅读全文