【问题标题】:Java - Observer/Observable in a distributed application?Java - 分布式应用程序中的观察者/可观察者?
【发布时间】:2013-03-09 19:22:33
【问题描述】:

我想在分布式应用程序中实现观察者模式。 即应用程序实例中的数据库发生了某些事情,并且应该通过套接字将通知发送到另一个实例,以便第二个实例将从数据库中重新加载数据。 我应该使用:

a) java 中的观察者/可观察类

b) 一种基于事件的方法,例如,在按下按钮时添加事件侦听器,然后通过套接字发送通知

c)任何其他想法/选项

我想知道哪种方法最理想

附:我正在一个连接到 MySQL 数据库的摇摆应用程序中工作。一切都在本地主机上(不用于生产目的)。

【问题讨论】:

  • 你的平台是什么?你在使用应用服务器吗?可以使用 JMS 服务器吗...?
  • 如果observer和observable在两个不同的JVM中,并且通过socket进行通信,你打算怎么给observable添加observer呢?最佳方法是使用 JMS 主题之类的内容。
  • @AmirPashazadeh 刚刚添加了更多细节(附言段落)
  • 如果您使用基本套接字,请确保将每条消息排队,以便它们按顺序读取。否则,线程可能会在完成第一条消息之前完成第二条消息的读取。

标签: java sockets observer-pattern


【解决方案1】:

如果您使用 Socket 路由,我建议您创建另一个 Java 应用程序来充当服务器和代理来管理连接流量。基本上,让该应用程序创建一个 ServerSocket 并绑定到一个端口。然后,您所有现有的 JVM 实例都可以与它建立客户端连接。基本上是一个迷你客户端-服务器架构。当服务器从任何客户端接收到事件通知时,它可以将消息重新广播给其他所有客户端。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-02
    • 2013-03-05
    • 2016-02-20
    • 2023-04-10
    • 2013-02-12
    • 1970-01-01
    • 2011-06-09
    相关资源
    最近更新 更多