【问题标题】:jndi clusteringjndi 聚类
【发布时间】:2011-05-28 21:56:14
【问题描述】:

我有几个关于 JNDi 和 clustring 的问题:

  1. 部署 EJB 时,它会自动“注册”到 JNDI 中吗?

  2. 我读到,为了访问 WebSphere 的集群 EJB,我需要查找以下内容:“cell/cluster//ejb/... - “cell”概念是 Websphere 概念还是 J2EE 概念?

  3. 我有一个奇怪的需求 - 我想要集群,但不一定要使用 WebSphere - 也就是说,我有一个 WebSphere 集群:C 由服务器 A 和 B 组成,我还有另一个 websphere 服务器 D比 A 和 B 部署的应用程序,但具有相同的 SessionBean 接口,相同的 API。我希望能够创建对 EJB 的负载平衡/集群调用,并让它在 A 上执行一次,在 B 上执行一次,在 D 上执行一次。

【问题讨论】:

    标签: jakarta-ee ejb websphere jndi cluster-computing


    【解决方案1】:
    1. 没有。但这取决于 EJB 的部署描述符/注释。
    2. 这是来自 WebSphere 的一个术语 (http://itdevworld.wordpress.com/2009/05/03/websphere-concepts-cell-node-cluster-server/)。
    3. 据我所知,如果您将 EJB 部署到集群,它会自动进行负载平衡。

    【讨论】:

      【解决方案2】:
      1. 是的,EJB 在部署后始终可以通过 JNDI 进行查找。这是 EJB 规范规定的。插入它的名称是标准化的。请参阅维基百科上的 EJB-Naming and directory services
      2. “单元格”是特定于 Websphere 的。尽管 Java EE 规范,特别是 EJB 规范确实假设存在集群并设置了一些限制以使集群更容易,但令人惊讶的是,定义明确处理集群的 API 和命名标准很少(JCA 1.6 是为数不多的几个之一)想到了)。
      3. 这听起来确实很奇怪。如果我理解正确,总共只允许 3 次调用(1 到 A、1 到 B 和 1 到 D)然后所有服务都应该停止?也许你不应该想要这样的东西;)

      【讨论】:

      • 我认为他想要 WLM 循环路由。
      • 确实可以 ;) 也许它更适合作为关于负载平衡策略的单独问题的主题。
      【解决方案3】:
      1. 注册实际上是在 EJB 应用程序启动时完成的。它使用 DD 信息向 WAS JNDI 服务器注册

      2. 您所指的是完全限定的 JNDI 名称。您应该尝试不使用它,而只使用本地 JNDI 名称。为什么?完全限定名称具有特定于拓扑的信息,您不会在应用程序中使用这些信息,因为开发、测试和生产环境之间的拓扑会有所不同。本地名称空间的整个想法是隐藏各种供应商的存储方式,并使应用程序对供应商实现没有任何依赖

      3. WAS 中的集群在将同一应用程序部署到作为 hte 集群一部分的所有服务器的前提下工作。事实上,如果服务器是集群的一部分,则无法将应用程序部署到该服务器。它只能部署到集群级别,WAS 基础架构将相同的应用程序部署到所有集群成员。

      Round-robin 是可以在服务器上配置的 WLM 策略。另一种选择是为每个集群成员分配权重。

      HTH

      芒露

      【讨论】:

        猜你喜欢
        • 2018-01-18
        • 1970-01-01
        • 1970-01-01
        • 2012-04-24
        • 1970-01-01
        • 1970-01-01
        • 2019-10-29
        • 1970-01-01
        • 2014-08-27
        相关资源
        最近更新 更多