从文档中不清楚为什么要在WebLogic群集中使用Unicast而不是Multicast.任何人都有使用任何一个和转移到Unicast的好处的经验?
小智 16
Unicast和Multicast之间的主要区别如下
假设现在群集中有三台服务器(MS-1,MS-2,MS-3),如果他们必须相互通信,他们必须ping(即心跳)群集主服务器通知他他还活着.
如果MS-1是主设备,则MS-2和MS-3将ping发送到MS-1
这里没有集群主服务器,每个服务器必须互相ping通,告知每个人我还活着.
因此,MS-1将ping发送到MS-2和MS-3,MS-2将ping发送到MS-1和MS-3,MS-3将ping MS-1和MS-3.
因此,如果您在多播中看到发送ping的拥塞与单播相比更多,这使得多播更加繁重,因此WLS建议使用网络中拥塞较少的单播.
希望能清除你的困惑.
小智 9
Multicast背后的原理是所有订户都收到任何消息到Multicast地址.因此MS-1只需要发送1个网络数据包来提醒所有其他集群成员其状态.这意味着状态或JNDI更新每个群集仅需要1个数据包用于Muticast,每个服务器需要1个数据包(大约)用于单播.组播也不需要"主人"选举.因此,多播可以更简单地编码并创建更少的网络流量.
那么,Multicast很棒?不必要.它使用本质上不可靠和未确认的UDP数据报,因此,如果不可靠的承载协议 - Etherent - 您的消息可能永远不会出现(解释:您脱离群集).Multicast的整个概念基于订阅,它不是正常意义上的"可路由"协议,因此默认路由器必须丢弃多播数据包或冒网络风暴.因此,所有集群成员驻留在同一网段上的历史要求.
如果您的群集跨越网络或者您丢失了太多的多播数据包,那么多播的这些缺点意味着单播是最佳选择.
Unicast over Multicast的主要优点是易于配置.Unicast使用TCP通信,这通常不需要额外的网络配置.多播使用UDP通信和多播地址,这可能需要一些网络配置并且需要额外的努力来选择要使用的地址.
Oracle A-Team发表了一篇很好的文章,深入解释了:WebLogic Server Cluster Messaging Protocols.
在WLS 12.1.2的文档中,Oracle添加了选择单播或多播的注意事项,他们建议在具有10个以上受管服务器的群集中使用多播.
根据我的个人经验,我发现Unicast可能会在大型集群中出现一些问题,主要是因为它是WLS 10.0中引入的新协议,并且仍然存在一些小问题.
这里的答案似乎与Oracle A-Team的建议相冲突.他们的建议是:
通常,A-Team的经验法则是始终建议客户使用多播,除非有充分理由说明它不可能或不可行(例如,跨越多个子网,不允许路由器传播UDP多播消息).造成这种情况的主要原因仅仅是资源短缺的效率和弹性.
完整的文章可以在这里找到.
Weblogic默认为单播,12c的文档意味着仅支持多播以确保向后兼容性:
请务必注意,尽管WebLogic Server文档的某些部分表明仅支持多播以实现向后兼容性,但这是不正确的.Oracle完全支持多播群集消息传递协议.A-team正在使用WebLogic Server产品管理来解决Weblogic Server 12c文档中的这些文档问题.
| 归档时间: |
|
| 查看次数: |
33712 次 |
| 最近记录: |