gpt4 book ai didi

java - 使用内存数据库而不是 ThreadLocal 的优点和缺点是什么

转载 作者:行者123 更新时间:2023-12-01 16:06:20 25 4
gpt4 key购买 nike

到目前为止,我们一直在使用 ThreadLocal 来携带一些数据,以免使 API 困惑。然而,下面是使用本地线程的一些问题,我不喜欢

1)多年来,线程本地携带的数据项有所增加2)自从我们开始使用线程(用于一些轻量级处理),我们还将这些数据迁移到池中的线程中,然后再次将它们复制回来

我正在考虑使用内存数据库(我们不想将其添加到 API 中)。我想知道这个方法好不好。有什么优点和缺点。

好的,这是一个简单的场景

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

最佳答案

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

如果您使用的是 WebContainer,则可以在 Filter 中处理此类对象的创建/销毁;如果您使用的是 ApplicationServer,则可以在 Interceptor 中处理此类对象的创建/销毁。

关于java - 使用内存数据库而不是 ThreadLocal 的优点和缺点是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2504940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com