我有一个软件网络项目,它使用大量的bean来处理不同的事情。示例项目1使用Beans 1和Project 2使用Bean 2和Project 3使用bean 3,beans 2和beans 1.因此,旧的队友只使用一个项目中的所有bean(Netbeans Beans用于实体和会话)
就像这样
全EJB
+ ----项目1的EJB
+ ----项目2的EJB
+ ----项目3的EJB
+ ----项目4的EJB
+ ----项目5的EJB
他们加入了网络项目这个EJB的大项目。所有项目都使用All-EJB,所以我认为性能会非常糟糕。我正在使用带有JSF和primefaces的glassfish服务器3.1.2和Java EE 6,我认为为每个项目拆分EJB将提高性能,并且只为每个项目使用特定的EJB。或者我错了吗?
答案 0 :(得分:1)
项目1-5是否一直在运行?
如果是,那么通过将EJB模块拆分为多个模块,您不太可能看到更好的性能,并且实际上可能会使启动性能稍差,因为EJB容器中每个模块的开销必然会有一些(可能是微不足道的)。 / p>
如果没有(并且项目1-5的某些子集可能正在运行),那么如果您可以避免从EJB加载不需要的EJB模块,那么您可能会看到(可能忽略不计的)启动性能改进,方法是将EJB模块拆分为多个容器将需要处理的元数据较少。
我想不出为什么在运行时(在EJB模块启动之后)会出现性能差异的原因,但是就所有性能考虑而言,唯一可以确定的方法是测量。
当然,拆分EJB模块可能还有其他可维护性优势。我认为这些比分离EJB模块的性能要好得多。