![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
书籍积累
用于存放看过的书的知识积累
韩运畅
这个作者很懒,什么都没留下…
展开
-
什么是RPC,RPC的好处
RPC: remote process call远过程调用,与之对应的是本地过程调用。RPC是将远过程调用进行了一层封装,使得使用者像调用本地方法一样调用远程方法。为什么要进行这样一层封装呢,或者这样说不进行这一层封装又会怎样呢?如果不封装,方法的使用者不会像封装后使用的那样方便,他需要自己来区分出来远程方法调用,对于远程的要采取与本地方法调用不同的手段来调用。但是使用者是不必关心这个方法是不是远程的,他只是像借用外部方法进行处理,然后拿到结果。所以,RPC那一层的封装减去了方法调用者不必要的额外工作原创 2020-12-10 20:02:55 · 1361 阅读 · 0 评论 -
为什么要有微服务
单体应用(仅一个进程)的优点:方便debug,最大的优点在初期方便代码开发,相比于拆分成各个不同的服务模块,需要定义好不同模块之间的交互规则缺点:在后期,代码量增大,每处改动改处的bug增大,迭代会变慢,而且每次迭代都需要整个应用重新部署。而微服务,只要保证各个模块间交互的接口不变。各个模块可以单独迭代,然后部署。可能仅仅是某块的访问压力增大,却需要将增大整个应用节点。而微服务可以就某个模块进行水平扩容。...原创 2020-12-10 19:54:15 · 295 阅读 · 0 评论 -
关于C++中虚函数实现原理的思考
网上对于C++实现原理大都讲到虚方法表这一层就结束了,感觉不是很痛快。下面讨论两个问题。虚方法的实现(多态)为什么非得运行时确定,或者说确定的到底是什么?一个虚方法对应的实现方法可能有多个,他们的地址都不一样,如果不在运行时确定,而是在编译时确定,那么地址一定是写死的只有一个,那肯定是有问题的。到底确定的是什么呢?想想函数调用的过程,栈上分配参数,保存返回地址,保存pc,设置pc,切换esp,ebp。是设置pc这一步非得运行时确定,即确定得时函数地址。2. 虚方法的原理落实到二进制文件到底是怎么实现原创 2020-12-01 20:24:57 · 87 阅读 · 0 评论 -
关于cap定理的思考
cap中的c与a的理解C: Atomic consistency对于满足atomic consitency的读写操作,我们都可以找到这样一个顺序,在这个顺序中所有的读写操作都是瞬时完成的。那么什么是写完成呢,写操作完成意味着所有的后续读操作都会读到它写入的值,除非后续再有写操作发生。达到的等价效果就是好像一系列读写操作都是在一个single node上进行的【注意,单节点的读写也是有数据一致性问题的,见附记4】举个例子: 节点A,B,C中存储变量<K,V0>,写操作W1发.原创 2020-11-14 19:46:47 · 144 阅读 · 0 评论