performance - 从网站性能的角度来看,DTO 有哪些优点和缺点?

标签 performance jakarta-ee ejb rpc dto-mapping

从网站性能角度来看,DTO 有何优点和缺点? (我指的是在与 Web 服务器不同的应用程序服务器上访问数据库的情况 - 并且 Web 服务器可以直接访问数据库。)

最佳答案

DTO 不是性能问题。我认为您要问的是分层对性能的影响。特别是,在 Web 层(Web 服务器)和数据层(数据库服务器)之间使用应用程序层。

通常,这意味着延迟会增加(您有额外的网络往返次数),但您可以通过在计算机之间分配负载来获得一些额外的容量。

人们这样做的另一个常见原因(同样是非性能)是允许他们将 Web 服务器放置在 DMZ 中,同时将应用程序和数据库服务器保留在防火墙内。

另一个潜在原因(非性能)是能够在单个应用程序之上插入多个 UI。我在过去的项目中做到了这一点,并取得了很好的成果(在业务需要的情况下)。

此外,不要低估维护这种性质的架构所需的工作。它比非分层解决方案需要更多工作,因此仅在您预计需要时才使用它。

话虽如此,使用 DTO 并不一定需要使用分层。

我发现的关于分层的最佳描述来自 Martin Fowler 的书《分析模式》。后面有一小部分介绍应用程序外观和分层。

重申一下之前的答案,DTO 不是性能问题。它只是一个类,没有用于在应用程序的各个部分之间提供隔离的方法。

我还建议阅读 Martin 的另一本书《企业应用程序架构模式》。 DTO“模式”记录在那里。

关于performance - 从网站性能的角度来看,DTO 有哪些优点和缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/97532/

相关文章:

java - @EJB 依赖注入(inject)在 JBoss AS 6 NullPointerException 中不起作用

java - 缺少依赖项 JBoss 5.1

java - Bean 同时是 EJB 和 JX-RS 资源

sql - 如何有效地检查数据库是否包含与待处理插入相同的记录?

performance - 我应该在路由逻辑还是 Meteor Template Helper 中提供数据?

multithreading - Apache 2.4 没有创建我们定义的最小备用线程

.NET LINQ 查询语法与方法链

java - 如何处理Java Rest Web服务中错误的JSON数据错误: Jackson JSON Parser Unrecognized token

java - Spring 多个应用程序上下文与单个应用程序上下文在耳中

java - WebSphere + RAD + 标签库