代码之家  ›  专栏  ›  技术社区  ›  Aravind Yarram

使用内存DB而不是ThreadLocal的优缺点是什么

  •  0
  • Aravind Yarram  · 技术社区  · 16 年前

    1) 多年来,本地线程中的数据项不断增加

    我正在考虑使用内存中的DB来实现这些功能(我们不想将其添加到API中)。我想知道这种方法是否好。利弊如何。

    1. 系统为整个请求建立上下文,包括 -此请求的唯一id -用户名 -系统漏洞(用户可以登录多个系统) -一些域事件供以后使用
    2. 请求通过多个逻辑层(表示层、业务域、, 规则、集成)等
    3. 在集成层,我们从池中借用几个线程来并行拉取数据 多个合作伙伴。每个拉取都需要一些存储在线程本地的数据,因此我们将这些数据迁移到池线程
    4. 在从伙伴接收到所有数据之后,我们将积累在子线程中的新线程本地数据迁移回主线程
    5. 在交互结束时,我们将域事件持久化到DB
    1 回复  |  直到 14 年前
        1
  •  1
  •   cproinger    14 年前

    您可能需要引入请求上下文: http://www.corej2eepatterns.com/Patterns2ndEd/ContextObject.htm

    如果使用WebContainer,则可以在筛选器中处理此类对象的创建/销毁;如果使用ApplicationServer,则可以处理拦截器。