【问题标题】:How is a web app is affected by concurrency?Web 应用程序如何受并发影响?
【发布时间】:2020-07-26 11:57:05
【问题描述】:

有人能解释一下并发性如何影响 Web 应用程序吗?

任何帮助! 谢谢。

【问题讨论】:

    标签: asynchronous web-applications concurrency architecture cqrs


    【解决方案1】:

    这是一个非常广泛的问题,但从应用程序的基础开始,并发错误的常见来源是:

    • 数据库级别 (MVCC)
    • 运行时级别(编程语言、并发模型、线程、锁、竞争、条件等)
    • Web 服务器级别(同一端点上同时有多个客户端请求)
    • 逻辑:CQRS(最终一致性,写入和读取是分开的,读取可能过时/滞后)
    • 逻辑:分布式事务(想象一下有像 redis 这样的读取缓存和像 mysql 这样的存储,你如何保证它们是同步的?)

    我不能高度推荐Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems,它为您关注的所有重要概念奠定了基础!


    使用 CQRS 的具体示例:

    • 有一个数据库存储
    • 只有一个 Writer
    • 只有一个阅读器

    事务向写入器发出持久化信息的请求,然后立即从该读取器读回。根据您的 CQRS 实现,可能在写入和读取之间只有最终一致的保证,这意味着读取可能看不到刚刚写入的数据!当然,这可能不是问题,具体取决于您的客户。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-16
      • 1970-01-01
      相关资源
      最近更新 更多