0

我工作的内部开发软件通过我们的 devexpress orm (XPO) 直接连接到我们办公室的 mysql 服务器。性能很棒。

我们正在开设另一个办事处……越野。性能:不太好。要求是两个办公室的软件都像在这个办公室一样响应迅速,并且来自一个办公室的数据可以“实时”提供给另一个办公室。

这种规模的东西对我来说是全新的。我不反对聘请一位以前做过类似事情的顾问,但我想先对这些选项有一个很好的了解。我确信这是一种常见的情况。

复制是个好主意吗?速度够快吗?够稳定吗?

如果复制不起作用,是否有解决这种情况的开发模式?

哎呀,我什至不知道如何标记这个,所以如果有人知道更好......请随时重新标记

编辑 > 有关数据的详细信息

我想,与某些企业软件相比,我们不会移动大量数据。该软件管理客户帐户、约会等,每个用户每分钟处理大约 2-5 个单独的帐户(目前为 50 个用户,计划扩展后为 200-400 个),每次更新数据。

当办公室 A 中的某人为办公室 B 中的某人创建约会时,实时方面开始发挥作用,理想情况下,该约会需要能够立即查看其详细信息(<2 分钟)。也就是说,每条记录通常每天最多变异 5 次。但这只是我的怀疑;我实际上没有任何关于我的使用统计信息。

4

2 回答 2

1

你最后的手段之一当然是确保所有繁重的工作都在后台线程中完成,这样 GUI 线程就不会被阻塞。

拥有实时数据取决于数据,我错过了一个详细的描述,例如每个请求我们谈论多少数据(即对象有多大),您的互联网连接速度有多快(可能是瓶颈? ),您控制的 mysql 服务器和其间的所有基础设施是否配置良好?数据的静态/动态程度如何,如果实时数据每天发生一次突变或每天发生无数次突变,这对于“解决方案”很重要

于 2009-06-23T19:17:20.523 回答
1

您不能在两个方向上使用异步复制,而不会产生无法解决和破坏的复制冲突。

因此,您的明显选择是使用读/写分离——让应用程序从(只读)本地数据库进行非关键读取,并将所有写入定向到主数据库。这样做的缺点是这意味着你不能立即读回你自己的写。

MySQL 复制并不完美,需要一些努力来设置和持续监控来维护;您必须经常检查从站中的数据是否相同。一些查询被错误地复制;你需要了解这些并避免它们。

于 2009-06-23T22:08:07.557 回答