remote和local 的区别

本文详细介绍了EJB中的Local和Remote接口的区别及其应用场景。Local接口用于同一JVM内部调用,性能更高;Remote接口则支持跨JVM甚至跨网络调用,但效率较低。文章还给出了几种推荐的接口设计模式。
 local是本地接口,remote是远程接口。web层调用app层使用remote接口。session bean和entity bean之间调用使用的是local接口。不用说你也明白,remote接口对性能的影响很大。所以在程序设计的时候我们尽量用loacal接口,也就是 facade模式。具体就是,web层调用app层的session bean,session bean在调用各个entity bean。就好比是打长途电话找5个人,你是准备给5个人分别通话(长途-remote)还是准备先和一人通话(长途-remote)然后在由这个人对另 外4个(短途-local)分别通知?我想你会选择第二种情况(facade模式)。 local接口可以在与ejb同一个JVM环境中调用,但是不能对它进行远程调用,假设你的web容器与所需调用的ejb不在一台服务器上,或者不 在同一个welogic server中时就不能调用local接口,在jndi查找的时候不能查找local home,而要查找remote home,也就是说需要实际进行RMI调用,而且必须提供Provider URL(例如t3://myserver:7001),而且他们返回给客户的对象也不一样,local home创建的是javax.ejb.EJBLocalObject类型,它没有继承Remote interface;而Remote home创建的是javax.ejb.EJBObject类型的,它扩展了Remote.实际上javax.ejb.EJBLocalObject型接口 没有抛出RemoteException,因为对local类型接口的调用不是RMI,所以的对local接口的调用效率要高于对remote对象的调 用,针对这点对EJB的设计提出以下建议:
1、如果你的ejb客户只可能存在于与ejb相同app server,或者说同一个JVM环境中时,你可以只生成local类型接口(包括EJBHome 与EJBObject),如果你需要在与EJB容器不同的JVM环境中调用你的EJB的话,你必须生成Remote类型的接口(包括EJBHome 与EJBObject);
2、在一般情况下建议两种类型的接口(包括EJBHome 与EJBObject)都生成,尤其是Session Bean,Entity Bean,可以只生成local类型的接口,如果想远程调用你的Entity Bean一般用Session Bean做代理。
3、如果你不是远程调用EJB的话,使用EJB时建议调用local接口,这样效率高,因为远程调用就意味着建立网络连接,效率必然不如local调用。
4、在jb7中设计EJB时,默认情况下只给你生成local类型接口,所以你需要在设计EJB时把interfaces设成:local/remote,这样的话你的EJB至少会有5个java文件
<think>好的,我现在需要回答用户关于H3C交换机中`display link-aggregation verbose`命令输出中`Local``Remote`字段的含义,以及为什么会出现这两个字段的问题。用户还提到了`NULL`,但根据之前的对话,用户可能是在提问时误输入了“null”,需要确认是否相关。 首先,回顾之前的对话,用户之前询问了`display interface bridge-aggregation``display link-aggregation verbose`命令的输出差异,特别是`Member ports`缺失`Local`/`Remote`字段的存在。我的回答已经解释了这些命令的不同视角,涉及聚合组成员状态LACP协议协商。现在用户进一步想了解这两个字段的具体含义及出现原因。 接下来,我需要明确`Local``Remote`在动态链路聚合(LACP)中的意义。根据H3C文档,`Local`通常指本端交换机的配置状态,而`Remote`指对端设备的信息。这两个字段的存在是因为LACP协议需要两端设备交换信息以协商聚合组,确保参数匹配。因此,当使用动态聚合模式时,命令输出会显示本端对端的详细信息,用于验证协商状态排除故障。 用户提到的`NULL`可能是个笔误,因为在之前的引用中讨论的是C语言中的空指针数据库中的NULL字段,与当前网络配置问题无关。因此,在回答中应专注于解释`Local``Remote`,并忽略`NULL`部分,除非用户特别说明。 需要确保回答结构清晰,分点解释,并结合示例说明。同时,生成相关问题以帮助用户深入理解。引用之前的回答中的引用标记,例如[^1],以保持一致性。 总结步骤: 1. 解释`Local``Remote`字段的定义。 2. 说明这两个字段出现的原因,即动态聚合需要LACP协议协商。 3. 提供示例输出,说明如何解读这些字段。 4. 分析可能出现的问题场景及解决方法。 5. 生成相关问题供用户进一步学习。 检查是否有遗漏点,例如是否覆盖了用户可能关心的配置错误或协商失败的情况,以及如何利用这两个字段进行故障排除。确保语言简洁,使用中文,符合用户要求的格式。</think>### 一、`Local`与`Remote`字段的含义 在H3C交换机的动态链路聚合(LACP模式)中,`display link-aggregation verbose`命令输出的`Local``Remote`字段表示**链路聚合控制协议(LACP)的协商信息**,具体定义如下: 1. **`Local`(本端信息)** - **作用**:显示本端交换机的LACP协议参数端口状态。 - **包含内容**: - 系统优先级(System Priority) - 系统ID(System ID,通常为交换机的MAC地址) - 端口操作密钥(Oper-Key,标识聚合组内端口的逻辑组) - 端口优先级(Port Priority) - 端口状态(如`Selected`或`Unselected`) 2. **`Remote`(远端信息)** - **作用**:显示对端设备(如另一台交换机)的LACP协议参数端口状态。 - **包含内容**: - 对端设备的系统优先级系统ID - 对端端口的操作密钥优先级 - 对端端口是否已激活(如`Active`或`Passive`) --- ### 二、为什么会出现这两个字段? 这两个字段的出现是因为**动态链路聚合(LACP)依赖两端设备通过协议交互完成聚合协商**。具体原因如下: 1. **协商机制需求** LACP协议要求两端设备交换参数(如系统优先级、端口优先级等),只有参数匹配的端口才能形成有效的聚合链路[^1]。`Local``Remote`字段直接反映了协商过程中两端的配置状态。 - **示例**:若本端端口优先级为100,而对端为200,可能导致端口无法激活。 2. **故障排查依据** 通过对比`Local``Remote`信息,可以快速定位以下问题: - **LACP协议未启用**:若对端未启用LACP,`Remote`字段将显示空白或异常值。 - **参数不匹配**:如系统优先级冲突、端口速率不一致等。 - **物理链路异常**:如端口未连线或光纤故障,导致无法获取对端信息。 --- ### 三、典型场景与输出示例 #### 场景1:正常协商(聚合成功) ```bash Aggregation Interface: Bridge-Aggregation1 Aggregation Mode: Dynamic Loadsharing Type: Shar Local: System Priority: 32768 System ID: 0000-1111-2222 Oper-Key: 0x1 Port Status Priority Oper-Key GigabitEthernet1/0/1 S 32768 0x1 Remote: System Priority: 32768 System ID: 0000-3333-4444 Port Status Priority Oper-Key GigabitEthernet1/0/1 Active 32768 0x1 ``` **解读**: - 两端系统优先级操作密钥(Oper-Key)一致,端口状态为`Selected (S)``Active`,聚合成功。 #### 场景2:协商失败(参数冲突) ```bash Local: System Priority: 32768 Oper-Key: 0x1 Remote: System Priority: 4096 # 优先级不一致 Oper-Key: 0x2 # 操作密钥不一致 ``` **问题定位**: - 对端系统优先级(4096)与本端(32768)不匹配,且操作密钥不同,导致聚合失败。 --- ### 四、常见问题与解决方法 #### 问题1:`Remote`字段为空或无信息 - **原因**:对端未启用LACP或物理链路断开。 - **解决**: ```bash # 检查对端交换机是否配置动态聚合 interface Bridge-Aggregation1 link-aggregation mode dynamic ``` #### 问题2:端口状态为`Unselected (U)` - **原因**:本端与远端参数(如速率、VLAN)不一致。 - **解决**: ```bash # 强制本端端口速率与对端一致 interface GigabitEthernet1/0/1 speed 1000 duplex full ``` --- ### 五、相关问题 1. 如何通过LACP系统优先级控制聚合组的主备端口? 2. 动态聚合与静态聚合在配置性能上有何区别? 3. 如何监控链路聚合的流量负载均衡效果? --- ### 引用说明 : LACP协议通过交换协议报文(LACPDU)协商聚合状态,若两端参数不匹配,端口将无法激活为`Selected`状态。 [^2]: 操作密钥(Oper-Key)由聚合组参数(如VLAN、速率)生成,参数变化会导致密钥更新,从而影响聚合组稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值