3 Matching Annotations
  1. Apr 2022
    1. 使用了消息队列的方案(具体实现见 comm/messagequeue 目录),把绝大多数非阻塞操作放到消息队列里执行。并且规定,基础组件与调用方之间的交互必须1. 尽快完成,不进行任何阻塞操作;2. 单向调用,避免形成环状的复杂时序。消息队列的引入很好的改善了死锁问题,但消息队列的线程模型中,我们还是不能避免存在需要阻塞的调用,例如网络操作。在未来的尝试中,我们计划引入协程的方式,将线程模型尽可能的简化。

      线程模型、 消息队列、 非阻塞操作、 基础组件、 调用方、 单向调用、 环状的复杂时序。

      消息队列的线程模型。

      阻塞的调用,如:网络操作。

      阻塞,与非阻塞的区分,是在于哪里?

    2. 设计原则在基础模块的开发中,设计尤为重要。在设计上,微信基础组件以跨平台、跨业务为前提,遵从高可用,高性能,负载均衡的设计原则。

      设计原则 (即是设计的边界?还是属于指标?) 在基础模块的开发中,设计尤为重要。在设计上,微信基础组件以跨平台、跨业务为前提,遵从高可用,高性能,负载均衡的设计原则。

      句式:在 XX 上,NN 以 YY 为前提,遵从......的设计原则。

    3. 可用是一个即时通讯类 App 的立身之本。高可用又体现在多个层面上:网络的可用性、 App 的可用性、系统的可用性等。

      定性:可用是一个即时通讯类 App 的立身之本。——结论 具体细分:高可用又体现在多个层面上:网络的可用性、App 的可用性、系统的可用性等。 (网络的可用性,取决于客观的网络物理环境,亦是可以取决于自身的运用?)

      接下来是:对每一项的内涵定义和具体化。