- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在开发一个托管小型 Java 应用程序的平台,所有这些应用程序目前都使用单个线程,位于 Docker 引擎中,使用来自 Kafka 服务器的数据并记录到中央数据库。
现在,我需要将另一个 Java 应用程序放到这个平台上。手头的这个应用程序相对较多地使用多线程,我已经在 Docker 容器中对其进行了测试并且它在那里工作得很好,所以我准备将它部署在可以手动缩放的平台上,也就是说,一些人会定义数字将启动的容器的数量,每个容器都包含此应用程序的一个实例。
我的架构师反对,说“在分布式环境中我们从不使用多线程”。所以现在,我必须重构我的应用程序,从中删除任何与线程相关的逻辑,使其成为单线程。我要求他提供更详细的推理,但他大喊“如果你不知道这个原则,你就没有地方靠近 Java”。
在分布式系统中使用多线程 Java 应用程序真的是错误的吗——一个简单的集群,有十到二十台物理机器,每台机器托管许多虚拟机,然后运行 Docker 容器,其中包含 Java 应用程序。
老实说,我没有看到容器内多线程的问题。这真的是一个错误还是某种程度上的“禁止”?
谢谢。
最佳答案
例如,当您编写将在 Java EE 应用程序服务器中运行的 Web 应用程序时,通常您不应在 Web 应用程序中启动自己的线程。应用服务器将管理线程,并分配线程来处理服务器上的传入请求。
但是,没有硬性规定或理由说明在分布式环境中使用多线程从来都不是一个好主意。
使应用程序成为单线程有一些优点:代码会更简单,而且您不必处理困难的并发问题。
但是“在分布式环境中我们从不使用多线程”并不一定总是正确的,“如果你不了解这个原则,你就没有 Java 的位置”听起来很傲慢和居高临下。
关于java - "In a distributed environment, one does not use multithreding"- 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56184687/
我想在 32 位 Windows 上获取路径 system32 路径,在 64 位 Windows 上获取路径 SysWOW64。 Environment.GetFolderPath(Environm
我可以在 environment.yml 中设置环境变量吗? conda 中的文件环境? conda 让我 save environment variables in environments通过 e
我一直在尝试大部分 Enviroment.SpecialFolder 枚举,但我认为没有任何方法可以通过枚举。使用 string.Substring() 方法给我带来了最大的收获。 我尝试只获取实际安
当我在 .ios 项目的 appDelegate 中使用 Environment.GetFolderPath(Environment.SpecialFolder.Personal) 时,我得到一个路径
我找到了 this project在做一些研究的同时。我注意到 Docker Compose 示例文件中的这一行: environment: &environment 所以我想知道它实际上意味着什么?
在 python/flask/gunicorn/heroku 堆栈上,我需要根据另一个 env 变量的内容设置一个环境变量。 作为背景,我在 heroku 上运行了一个 python/Flask 应用
我正在尝试使用 angularfire @angular/[email protected] 构建 Angular 15 。但我遇到了这个错误 ✔ Downloading configuration
我在我的一位客户的计算机上遇到了一个非常奇怪的行为,我找不到任何线索来解释为什么会这样:当应用程序调用 Environment.GetFolderPath(Environment.SpecialFol
我遇到了以下方法: Environment.getDataDirectory() : /data 和 getFilesDir() : /data/data/package/files 一种方法使用环境
我在 rails 中有一个迁移,它执行以下操作: class AddMissingIndexes :evid, :length => { :evid => 255 } end end 但是,在对
所以我对 MS Stack Development 世界相当陌生,面临着本地开发环境与服务器环境不同的问题(我认为它们是一样的,但我错了)。 我的设置是使用 Visual Studio 2012(II
我有一个只包含 exe 文件(没有源代码)的 hello 工具。 你好工具结构: bin helloBin.exe helloRoot.exe conanfile.py conanfile.py
我是 R 的新用户,我尝试了以下代码。它给出了一个错误。任何人都可以帮忙吗?代码是: library(ggplot2) data(diamonds) qplot(price, data=diamond
我正在使用以下方法获取 Windows 7 中“我的文档”文件夹的路径并遍历其目录: Dim diri As New DirectoryInfo(Environment.GetFolderPath(E
我试图通过更改其环境变量来修改 Linux 上 JetBrains Rider 中 .NET 项目的设置配置文件。但是,当我点击文件夹图标时,我无法点击添加、删除或修改任何环境变量。 我注意到在 Ri
这个问题已经有答案了: How to add package to conda environment without pip (5 个回答) 已关闭 1 年前。 我在没有连接到互联网的计算机上安装了
我开发了一个 Controller 来使用 JSON 响应 AJAX 请求: class PeopleController extends Controller { public function l
我有一个 asp.net mvc3 应用程序。现在我想将用户数据保存在 C:\Users{AppPoolUserAccount}\AppData\Roaming\MyProgramm... 在第一次调
#include #include #include extern char *environ[]; int main(int argc, char *argv[]) { int ind
我在将 json 文件导入 typescript 时遇到问题。我已经按照惯例配置了tsconfig.json,但是在environment.ts文件中还是不行,但是在environment.prod.
我是一名优秀的程序员,十分优秀!