一个好的程序员怎么学习,我觉得读代码是学习的第一步

一个好的程序员怎么学习,我觉得读代码是学习的第一步,只有你读了大量的代码,读了不同风格的代码,读了不同领域的代码,才能够真正提升自己的功底。当然这种读代码,还只是纸上谈兵。真正要成为一个编程高手必须写。读了很多高手的优质代码以后,才能够快速的提升自己写代码的能力。第二个能我觉得要有对技术的热爱,这个呢,我觉得而是一个很大的先决条件,他没有爱的话,就不可能专心的潜心做技术,也不可能投入,也不可能做深,做大。
. .

电商业务场景保证分布式事物一致性接口幂等性图解

在电商等业务中,系统一般由多个独立的服务组成,如何解决分布式调用时候数据的一致性? 具体业务场景如下,比如一个业务操作,如果同时调用服务 A、B、C,需要满足要么同时成功;要么同时失败。A、B、C 可能是多个不同部门开发、部署在不同服务器上的远程服务。 在分布式系统来说,如果不想牺牲一致性,CAP 理论告诉我们只能放弃可用性,这显然不能接受。为了便于讨论问题,先简单介绍下数据一致性的基础理论。
. .

ZAB与Paxos算法的联系与区别 ZAB协议

• 两者都有一个类似于Leader进程的角色,由其负责协调多个Follower运行 • Leader进程都会等待超过半数的Follower做出正确的反馈后,才会将一个提案进行提交。 • 在ZAB协议中,每个Proposal都包含了一个epoch值,用来代表当前的Leader 周期,在Paxos算法中,同样存在这样的一个标识,只是名字变成了Ballot。
. .

Dubbo 中的 RpcContext 源码学习以及作用分析

最近阅读源码,对这个类的作用开始思考 比如DubboInvoker中的doInvoke()函数,提取当前的ExchangeClient设置Future(),当然ExchangeClient就是对应的provider和consumer之间的链接信息,如果a调b,b调c,因为这是一个线程,那么此时的future将来就会返回b调c的内容。而不是a调b的内容。 这个类的作用就是记录当前线程,最近一次调用的一些变量。
. .