我们一直在开发一个.NET桌面应用程序,它将使用MySQL与网站集成。每个软件的客户都有一个网站。我们需要将客户的数据库与在我们的服务器中运行的对应数据库同步。我们将在每个客户的服务器中运行一个数据库。这些信息将显示在客户的网站上。
必须在短时间内进行同步。我们不希望有一个过时的网站。
我们曾考虑编写代码来实现此同步。实现稳定同步似乎是一项艰巨的任务。客户的数据库很大,在短时间内发送似乎是不切实际的。
然后我们找到了数据库复制。大!一种同步数据库的流畅方式。我们不需要对此解决方案进行硬编码!我们客户的数据库将是主数据库,我们的服务器数据库将成为主服务器。我们在同一个MySQL服务器中需要多个从服务器。 MySQL不允许它。
我们可以运行多个MySQL实例,每个客户一个实例。但我们需要为每个实例打开一个端口,这听起来不安全。
最后,我们考虑打开端口并拒绝使用防火墙进行非客户访问。
你会如何解决这个问题?我们想听听你的意见。 感谢。
答案 0 :(得分:1)
我有一个类似的程序,我使用的是CQL CE数据库/ MS SQL。我所做的是在主服务器上,我需要向客户端数据库发送更新的每个表我都放置了更新日期字段。客户端数据库将有一个表,其中包含最后一次更新数据库的日期。因此,当服务器上的某些内容发生更改时,更新日期将被置于当前日期,然后客户端程序将针对Web服务检查上次更新日期,以查看是否需要进行任何更新。
答案 1 :(得分:0)
我过去曾经想过这个。
我认为最好的选择是通过直接从客户端数据库提供Web上的数据来避免重复过多的数据存储。
在没有打开端口等的情况下,我能想到这样做的最好方法是使用长轮询或html 5套接字来提供所请求的数据。只要您的用户不希望经常查看所有数据,这将提供公平的解决方案。