【问题标题】:what is ideal fixed thread pool size for a task in which remote API is called (timeout-30s) also includes CRUD db operation in the same?对于调用远程 API 的任务(超时 30 秒),理想的固定线程池大小是多少也包括 CRUD db 操作?
【发布时间】:2020-09-23 00:45:12
【问题描述】:

我在我的 Spring Boot 应用程序(还包括 spring-data-jpa)中使用 ThreadPoolExecutor,固定线程池大小为 60。线程任务包含远程 api 调用和数据库上的 CRUD 操作(SQL-server 2012)。

  1. 我可以用来执行此操作的池的理想大小是多少 操作?
  2. 在实施时我需要采取哪些预防措施?
  3. 我是否有可能因为并发事务而在数据库中遇到死锁?
  4. 如果有任何用于 CRUD 操作的调优技术,请提出建议。

【问题讨论】:

    标签: java multithreading spring-boot spring-data-jpa threadpool


    【解决方案1】:

    在您设置任何线程池配置之前,我建议您执行以下步骤。

    1. 我可以用来执行此操作的池的理想大小是多少 手术? 您的线程任务花费了多少时间,您的流量有多少?这将帮助您提出最佳线程池大小和超时设置 池中的线程。
    2. 在实施时我需要采取哪些预防措施? 我将确保线程有超时设置,并且每个外部系统接触点(如 api、数据库等)都有超时设置。这将确保您的线程正常超时。
    3. 我是否有可能因为并发事务而在数据库中遇到死锁? 通常,数据库非常擅长在发生写入时锁定记录,但这又取决于您在数据库中运行的查询类型。

    这个问题需要更多信息才能有效回答。

    【讨论】:

    • 我们与其他网站有些不同;这不是一个讨论论坛,而是一个问答网站,我们在其中保留了答案空间。请查看我们的简短tour。您能否请edit这个更直接地解决这个问题?
    猜你喜欢
    • 2016-09-01
    • 2022-12-29
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    • 1970-01-01
    • 2019-01-30
    • 2019-11-21
    • 2010-11-10
    相关资源
    最近更新 更多