在内存数据网格应用程序的服务器端使用Spring是否明智?
我的直觉告诉我,在一个低延迟、高性能的系统中,这是一派胡言。我的一位同事坚持要在里面加入春天。这种包容的利弊是什么?
我的立场是,Spring可以在客户机中使用,但是它对服务器来说太重了,它带来了太多的依赖,也是一个值得考虑的漏抽象。
发布于 2016-04-27 11:15:59
数据网格系统一般都是内存和I/O密集型系统。使用Spring不会影响这一点(您可能会认为Spring创建了很多bean,但是通过适当的垃圾收集调优,这不是问题)。
另一方面,使用Spring (或任何其他DI)可以帮助您构造和测试代码。
因此,如果您使用的是基于数据网格系统的某种服务器,请注意正确地调整您的操作系统中的GC、套接字(内存缓冲区和套接字存储器)。这将给你带来比减少DI更多的好处。
发布于 2016-04-26 13:38:40
首先,我对“漏洞百出的抽象”的评论感到惊讶。我从来没听过有人为此批评春天。事实上,事实恰恰相反。Spring从应用程序代码中删除了基础设施(如数据网格)的实现细节,并提供了一致和熟悉的编程模型,允许您专注于业务逻辑。Spring在增强配置和对数据网格(特别是Gemfire )的访问方面做了很多工作,而且通常不会产生任何运行时开销。在Spring应用程序的初始化过程中,Spring在内部使用反射和AOP等工具,这可能会增加应用程序的启动时间,但这不会影响运行时性能。Spring已经在许多高吞吐量、低延迟的生产应用中得到了证明.在极端情况下,诸如网络延迟和序列化、Spring之外的关注通常是影响性能的最大因素。
"Spring带来太多的依赖“是一种常见的抱怨,但却是一种谬误。我会说Spring为它需要做的工作带来了完全正确的依赖量。此外,starters和platform BOM为简化依赖关系管理做了很多工作,因此您不需要担心版本不兼容或显式声明公共依赖关系。这件事我得和你的同事站在一起。
https://stackoverflow.com/questions/36857060
复制相似问题