12 2018 档案

摘要:服务引用无非就是做了两件事 将spring的schemas标签信息转换bean,然后通过这个bean的信息,连接、订阅zookeeper节点信息创建一个invoker 将invoker的信息创建一个动态代理对象 将spring的schemas标签信息转换bean,然后通过这个bean的信息,连接、订 阅读全文
posted @ 2018-12-23 21:54 老王子H 阅读(1133) 评论(0) 推荐(0)
摘要:所谓服务暴露最终做的事情:绑定网络端口,开启serversokect服务以接收外部请求 服务暴露时序图 本地暴露 远程暴露 整体总结 dubbo服务提供者暴露服务的主过程:首先 ServiceConfig 类拿到对外提供服务的实际类 ref(如:HelloWorldImpl),然后通过 ProxyF 阅读全文
posted @ 2018-12-23 19:08 老王子H 阅读(5372) 评论(0) 推荐(0)
摘要:1、获取进程号jps -v|grep 关键字2、创建事故现网文件夹mkdir {pid}3、查看是否一直fullgcjstat -gcutil {pid} 1000 1000 > {pid}/jstat_gcutil.txt 4、得到存活内存分布图jmap -histo:live {pid} >{p 阅读全文
posted @ 2018-12-16 20:34 老王子H 阅读(693) 评论(0) 推荐(0)
摘要:CPU 飚高 一般是死循环或者死锁问题导致。1. 通过 top 命令找到 CPU 消耗最高的进程,并记住进程 ID {pid}。top -M -n 2 -d 3 >{pid}/top.txt 查看top2. 再次通过 top -Hp {pid} 找到 CPU 消耗最高的线程 ID,并记住线程 ID( 阅读全文
posted @ 2018-12-16 20:33 老王子H 阅读(1039) 评论(0) 推荐(0)
摘要:整体设计 Service 业务层:业务代码的接口与实现。我们实际使用 Dubbo RPC config 配置层:对外配置接口,以 ServiceConfig, ReferenceConfig 为中心,可以直接初始化配置类,也可以通过 Spring 解析配置生成配置类。 dubbo-config 模块 阅读全文
posted @ 2018-12-16 16:51 老王子H
摘要:JVM内存分为: 1.方法区:线程共享的区域,存储已经被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据 2.堆:线程共享的区域,存储对象实例,以及给数组分配的内存区域也在这里。 3.虚拟机栈:线程隔离的区域,每个线程都有自己的虚拟机栈,生命周期和线程相同。虚拟机栈描述方法执行的内存 阅读全文
posted @ 2018-12-09 20:07 老王子H 阅读(384) 评论(0) 推荐(0)
摘要:Cache Aside Pattern(旁路缓存模式)对于读请求先读cache,再读db如果,cache hit,则直接返回数据如果,cache miss,则访问db,并将数据set回缓存对于写请求 淘汰缓存,而不是更新缓存 先操作数据库,再淘汰缓存 Cache Aside Pattern为什么建议 阅读全文
posted @ 2018-12-09 19:45 老王子H 阅读(1182) 评论(0) 推荐(0)
摘要:n++的问题不能保证原子操作。 因为被编译后拆分成了3个指令,先获取值,然后加一,然后写回内存。把变量声明为volatile,volatile只能保证内存可见性,但是不能保证原子性,在多线程并发下,无法保证线程安全。 三个参数,一个当前内存值V、旧的预期值A、即将更新的值B,当且仅当预期值A和内存值 阅读全文
posted @ 2018-12-08 23:29 老王子H 阅读(166) 评论(0) 推荐(0)
摘要:容错设计又叫弹力设计,其中着眼于分布式系统的各种“容忍”能力,包括容错能力(服务 隔离、异步调用、请求幂等性)、可伸缩性(有 / 无状态的服务)、一致性(补偿事务、重 试)、应对大流量的能力(熔断、降级)。可以看到,在确保系统正确性的前提下,系统的可用性是弹力设计保障的重点。 隔离设计what:顾名 阅读全文
posted @ 2018-12-08 22:11 老王子H 阅读(544) 评论(0) 推荐(0)