【问题标题】:Tibco RV send and listen parameters confusedTibco RV 发送和监听参数混淆
【发布时间】:2023-07-27 13:42:02
【问题描述】:

您好,我是 Tibco RV 的新手。看完 Tibco Rendezvous Concept 后,我​​还是对传输参数感到困惑:服务、网络、守护进程。

所以从概念上讲,每台机器上只运行一个守护进程。所以在使用 tibrvsend 时:

tibrvsend -service 2323 -network "someIPAddress" -daemon "myDaemon" MESSAGE

这是否意味着我正在使用本地主机上的端口 2323,通过守护进程 myDaemon(可能在远程)向网络 comeIPAddress 发送消息?

使用 tibrvlisten 时:

tibrvListen -service 2323 -network "someIPAddress" -daemon "myDaemon"

这是否意味着我正在使用任何可用端口、本地主机上的任何可用守护程序来监听来自 myDaemon 的端口 2323 的消息,这些消息发布到 someIPAddress 网络?

另一个问题是,《Tibco RV Concept》一书中提到,同一个服务不能绑定到两个网络。它是否仅适用于生产者机器(因为我们没有为侦听器机器指定端口)?所以如果我们这样做会发生错误:

tibrvsend -service 2323 -network "net1" MESSAGE

tibrvsend -service 2323 -network "net2" MESSAGE

同时(连续做应该没问题吧?)

但对于听众来说:

tibrvlisten -service 2323 -network "net1"

tibrvlisten -service 2323 -network "net2"

应该没问题吧? (否则意味着生产者需要知道彼此的端口号以避免冲突)

如果我完全搞砸了这些概念,你能用例子解释一下吗?

【问题讨论】:

    标签: messaging tibco tibco-rv


    【解决方案1】:

    Service:是一个udp端口,基于udp协议的TRDP(Tibco Reliable Data-gram Protocol)。

    守护进程:RVD 进程使用的 tcp 端口。应用程序通过 TCP 端口与 RVD 进程通信。 RVD 使用 TCP 端口接收消息并通过 udp 端口​​发送出去

    network : E类IP地址,多播IP地址

    【讨论】:

      【解决方案2】:

      所以从概念上讲,每台机器上只运行一个守护进程

      您可以在一台机器上运行多个守护程序,但这不是必需的。您可以通过改变服务和网络参数来访问单个守护程序上的多个逻辑总线。

      守护进程是在您的机器上运行以处理 Rendezvous 消息传递的实际进程。您的客户端将使用 daemon 参数连接到此守护程序。例如。默认值 tcp:7500 将访问本地机器上的 7500 端口上的守护进程,而 tcp:server.domain.com:8000 的值将访问远程机器 (server.domain.com) 上端口 8000 上的守护进程。

      示例:如果您执行tibrvlisten -daemon tcp:8000,您会注意到在侦听端口 8000 的机器(Windows 上的 rvd.exe,Unix 上的 rvd)上启动了一个新进程。

      服务和网络参数又是多播参数(参见http://en.wikipedia.org/wiki/Multicast)。为简化起见,您可以将这些视为相当抽象的值,具有两个重要方面:

      • 消息的生产者和消费者应配置为使用相同的网络/服务对
      • 您不应为多个网络重复使用服务,因为这种冲突会导致问题。

      关于 Rendezvous 要记住的另一件事是多播消息由同一子网上的所有机器接收。如果您需要向其他子网发送消息,您应该考虑使用 Rendezvous Routing Daemons (RVRD)。

      【讨论】: