我一直在政府項目中使用EJB。我在部署EJB時發現了一些服務器問題。在我的項目中工作的人已經考慮從RequestHandler & DAO之間移除EJB,並直接從RequestHandler調用DAO方法。移除EJB會提高項目的性能嗎?
我對這件事的看法是,我們甚至可以考慮從EJB項目本身具有基本框架的項目中刪除EJB!
請告知有關提高性能所需的正確解決方案,同時部署&還通知其他方式提高速度&的性能。
我一直在政府項目中使用EJB。我在部署EJB時發現了一些服務器問題。在我的項目中工作的人已經考慮從RequestHandler & DAO之間移除EJB,並直接從RequestHandler調用DAO方法。移除EJB會提高項目的性能嗎?
我對這件事的看法是,我們甚至可以考慮從EJB項目本身具有基本框架的項目中刪除EJB!
請告知有關提高性能所需的正確解決方案,同時部署&還通知其他方式提高速度&的性能。
我已經在幾個項目中大幅刪除EJB改進的性能。
對於我來說,使用EJBs是關於提高生產力和解決方案的質量,而不是擔心性能。通常情況下,性能不是一個大問題,但如果是這樣的話,你可以在硬件上投入硬件,並使用雲計算/分佈式解決方案,這比過去成本要低。即它比花更多時間開發更便宜。
檢查您是在執行遠程EJB調用還是本地EJB調用。 在項目中進行遠程調用可能會導致性能問題(如果您在本地邏輯上工作)。
無法回答沒有提供信息的問題。然而,如果你不使用ejb服務來做任何事情,你也可以擺脫它們。首先通過ejb打電話給你的道理的原因不是不可能的,那就是利用CMT,所以如果你溝通ejb,你需要通過其他方式處理交易。
一般來說,我的建議是在開始尋找答案之前試圖找出問題的實質。
取決於您正在談論的EJB。
Session Beans:有沒有對性能幾乎沒有影響。
Entity Beans:實體bean可能會對性能產生嚴重影響。我會在創建,刪除或更新呼叫時處理複雜交易的情況下使用它們(C R UD)。在我只是調用一個查詢(C R UD)的情況下,它會返回1000個記錄,我可能會切換到純JDBC。
現在很多JPA/EJB容器都很聰明,所以也許他們可以將性能問題委託給數據庫級別。
例如:如果我返回10000個客戶對象,並且每個客戶都有多個地址,那麼我可以加入EJB層中的客戶和地址對象。這可能與在數據庫級創建連接並在EJB容器足夠聰明時將數據作爲視圖返回一樣快。