- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在设计一个系统架构。(Java EE/Spring)
这个系统的主要因素是低延迟。(从端到端来说大约1毫秒或更短)
我们为这个实时系统计划了几个组件。
我向各位专家提出的问题:我知道耦合和解耦的所有优点(故障转移、分离、维护、扩展等)
我在这里面临的问题是:
例如,假设我在机器 A(app1)上有两个不同的应用程序,在机器 B(app2)上有两个不同的应用程序。
请求必须经过两台机器。两台机器处理完请求后,最终的答案将发送给客户端。
这两者之间的集成延迟肯定会比在同一台机器上使用这些应用程序(网络时间等)更高
另一方面,我可以独立更新和维护每个应用程序,而无需依赖同一台计算机。故障转移、集群、负载平衡也是如此
你会给我什么建议?我应该考虑什么?延迟与解耦和维护
谢谢,射线。
最佳答案
a request must go through both machines. and final answer will be sent to the client after both machines processed the request.
它可能会增加 0.1 到 0.2 毫秒。这可能是可以接受的。
In other hand I can update and maintenance each application on it's own without being depended on the same machine.
您更有可能更新软件而不是硬件。 Hadrware 通常可以在周末等非高峰时间进行更新。
same goes for failover,
拥有的机器越多,故障点就越多。
clustering
如果您将所有内容都放在一台计算机上,则可能不需要集群。
load balancing
如果您需要使用多台机器,这更有意义。
如果您有一个 Web 应用程序,1 毫秒是相当激进的目标。如果您有网络服务,例如交易系统,则根据您的要求,可以实现亚毫秒甚至亚 100 微秒。
关于java - 延迟与解耦架构建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12512862/
我是一名优秀的程序员,十分优秀!