• Jxin
    2021-07-31
    本章内容 1.异步交互:如果最后践行的结果依旧是使用同步代码的方式写异步代码,那应该没问题。但如果是以异步的方式去写,感觉就有点诺曼设计了。业务建模引入异步设计的复杂性,总觉得不是一个好的形式。我认同云原生下异步交付能发挥更大价值,只是践行的方式还是有待观察。毕竟异步交互在云原生下节省的性能成本,不见得就能盖过业务建模和异步设计的叠加带来的设计成本的增长。 2.谈点实现,瞎猜:弹性伸缩必要重要的价值理应是解决峰值并发场景带来的短时吞吐量述求差异大的问题(毕竟你服务流量很平稳,我靠人工扩容好像也没啥问题)。但感觉能想到的方式都有挺多资源冗余或则说浪费。先说基本思路: (按空闲程度分发)理论上实现弹性扩容,无非就是监控服务资源水位+自动扩/缩容。但实际上,对于高并发场景这个是做不到的,毕竟高并发不讲道理,不会等着监控服务资源的实时情况做分发。服务资源的情况,监控必然有延迟,高并发会借助这个延迟直接干翻你的单个服务造成部分用户不可用;节点的扩容也必然有延迟,而这个延迟,高并发可以让你的集群都不可用。可以想到的应对的解决方案:平均分发,不依赖服务资源监控,均分流量;冷后备,预备大量冷后备节点减缓扩容的时差。但这些,似乎对资源最优分配还是有些距离,只是用冗余保可用而已。 课后题 自治,容错。 自治: 前微服务重心在以业务边界拆分独立的作战单元,讲究的是最小完备/自我履行/稳定空间/独立进化。体现就是软件产品化,数据隔离,迭代自由。 容错:前微服务我们一样接受服务总会出错的现实,所以服务间交互会是以依赖集群+自动隔离故障+自动发现新服务(也就是服务治理)的方式。每个发布单元就像人体的一个细胞,生生死死不断轮回,但都不会影响某个器官(服务)的正常运作。
    展开

    作者回复: 业务天生是异步的。同步是简化

    共 2 条评论
    7
  • zenk
    2021-10-25
    “业务天生是异步的。同步是简化” 大佬,怎么理解

    作者回复: 字面意思

    
    
  • 极客侠女
    2021-09-01
    云带来了哪些运营模式的变化?像例子中,举动极客时间专栏提供了企业版,这个变化跟 云的关系在哪呢?请教老师细细解释下呢

    作者回复: 云更便宜

    
    
  • 菜菜
    2021-08-02
    如果把异步技术引入到模型中,就相当于把事务性引入了业务当中,所以复杂度可能会发生质的变化

    作者回复: 业务本身就具有事务性

    
    
  • Oops!
    2021-07-31
    下次去上海我也去这家咖啡店体验一下。言归正传,为了解除弹性耦合,就需要使用异步的方式实现业务流程,将响应时间的依赖转变为对吞吐量的依赖。从一致性这个角度看,就是系统从保证强一致转变为最求最终一致性,通过各种兜底逻辑保证所有中间态都能到达最终最终状态。

    作者回复: 每季菜单都不同

    
    
  • webmin
    2021-07-31
    O.P.S. Cafe 这家不足10平方米的顶流大店,咖啡确实不错,排一个小时队是常态,现制咖啡还是受制于咖啡师,咖啡师无法被Clone,水平扩张无从谈起。

    作者回复: 然则他们已经预调了

    
    
  • 超
    2021-07-31
    我有个疑问,关于点餐和厨房的例子的,不管是异步还是同步,厨房的吞吐能力不行,还是没解决顾客耐心耗尽的问题。

    作者回复: 同步消耗更快

    共 2 条评论
    
  • 冯
    2021-08-03
    事实是,我们的现实世界就是异步的,软件也是越来越向现实世界靠拢。从同步走向异步,从强一致走向最终一致。
    
    7
  • 常文龙
    2022-06-23
    看了几遍本文,也看了asyncapi和netflix zuul2的异步改造,我对文中的“异步”的理解,是采用nio方式发起请求,这节省了线程数,但在使用侧看来,依然是同步的。 然后对 【弹性依赖】 应该秉持 允许 的态度,对 【弹性耦合】 应该通过异步避免。 希望老师点评
    
    
  • 常文龙
    2022-06-21
    前云时代的架构约束,便是云时代在解决的问题——水平扩展的便利。因为扩展不便利,所以往往会将多个业务上下文都集中在一个应用中,导致应用的体积庞大(不轻量)、单一上下文的流量过大会影响处于同一个应用中的其他上下文的CPU、内存资源。
    
    