企业解决方案的体系结构

时间:2011-10-15 06:36:02

标签: database architecture cluster-computing

我将开发一个相当大的系统,需要具备大型系统的所有“特性”。该系统将位于金融领域,因此需要一些强制性的东西(99.999%,故障转移,负载平衡等)。该系统更像是一个开关,而不是一个“网络”应用程序。

我一直在进行各种研究......特别是目前的大型系统,如twitter,ebay,amazon,facebook等,但不幸的是它们大多是基于网络的。我选择了Java root,因为我对这种语言非常熟练,尽管我对任何新的东西持开放态度。

我花了几个小时在Stack溢出读到这里,我收集的一件事是没有“银弹”。系统需要根据我的需要进行微调/开发。

所以这是我目前的心态和思想......

数据库

我对Mysql 7及其集群功能印象深刻。我会创建一个几台机器的Mysql集群。然后,此群集将通过其异步主从复制复制到另一台异地计算机。 mysql集群将由mysql负载均衡器提供。 NoSQL root可能更好吗?

负载均衡

HAProxy看起来不错,但我可能会选择硬件解决方案......

应用

在玩了很多不同的AS服务器(Glassfish,JBoss和其他一些服务器)之后,我得出的结论是,j2EE限制了我引起原因问题的一些事情(参见this previous question) 。我正在寻找的是一个java框架,它使我能够模块化我的代码。基本上编写“JARS”/模块,这些模块可以分发到负载均衡并具有故障转移功能的计算机集群中。

例如 - 假设我有模块A和模块B.我希望能够在两台机器上部署两个模块或在一台机器上部署模块A而在另一台机器上部署模块A.以及将模块A负载平衡到B(如果B在一台或多台机器上)。这是通过glassfish3和EJB实现的吗?我喜欢扩展而不是扩展的想法,我宁愿在群集中拥有50台机器而不是X疯狂规格的机器(我认为是一种谷歌的心态) 我想从头做起,但重新发明轮子是我的第二选择。

缓存

我正在关注内存缓存的hazelcast,因为我对该解决方案印象最深。

任何输入,反馈,链接,关键字或指南都将非常感激:)我也不介意非免费解决方案。

编辑:我应该填写Jeremy所指出的缺失细节:

  1. By Switch我的意思是类似于PayPal
  2. 可能会有大量的卷(我无法估算)
  3. 技能和预算不起作用,因为我幸运地拥有资源。

2 个答案:

答案 0 :(得分:2)

这里的任何人几乎不可能在不理解的情况下提供有说服力的建议

  • 您正在构建的应用程序类型(“交换机”?)
  • 你为谁建造它 - 有多少人?他们如何使用它?
  • 开发团队的技能
  • 系统预算

然而,看起来你已经决定了像Amazon AWS这样的云供应商开箱即用的东西 - 松散耦合,负载均衡,高度可用的基础设施。


根据您的修改编辑:

  • 不要自己构建基础架构。其他人,如亚马逊和微软,已经解决了这个问题。特别是亚马逊的解决方案符合PCI标准,无需任何操作即可立即提供您需要的“五个九”。

  • 相反,关注应用程序将执行的操作以及它将如何可靠和可扩展地执行操作。

在这个阶段,我建议雇用几个顾问,最少几周。让他们将三个或四个替代应用程序架构组合在一起。预算$ 1000 /天/最低顾问,以便让知道他们正在谈论的人。

并且,请记住,您不会从像这样的免费网站获得明智的答案或指导。如果你真的想要建立一个“PayPal杀手”,那么你需要支付那些在这类项目中遇到过战壕的人的建议。对于技术联合创始人来说,这要么是提前顾问,要么是股权。

答案 1 :(得分:2)

你似乎太担心技术选择,not architecture。更好地关注应用程序的核心域(以DDD术语)。

另外,我不会过早关注可扩展性问题。首先建立有用的解决方案更容易,只有这样,一旦证明有用,就开始扩展。否则,您就有可能将所有资金投入到为无用应用程序构建可扩展架构中。