我一直在评估用于开发基于社交网络的应用程序的技术堆栈。以下是我认为非常适合此应用程序类型的应用程序的堆栈:

图形用户界面 -- ASP.NET MVC、Flash (Flex)

商业服务 - 基于节俭的服务使用 节约 是为了解决未来用户群快速增长时会出现的扩展问题。所有业务逻辑都可以使用 REST、JSON 等公开为服务,这也允许我们在情况需要时使用基于 C++ 或 Erlang 的服务。

数据库 -- mysql, 卡斯桑德拉mySQL可用于存储需要持久化的数据。Cassandara 将用于将全局标识符存储到持久数据中。由于 Cassandara 也非常擅长通过引入更多节点进行扩展,这也将利用基于 Thrift 的服务。Cassandara 和 Thrift 之间也有原生支持

缓存服务器 -- 内存缓存

来自业务服务的任何请求仅在需要任何非脏数据时才会与 Memcached 通信,否则将会有一些后台作业使数据库中的缓存失效。

问题是:

  1. 开源的 Thrift 是否已做好生产准备?
  2. 当应用程序(GUI)主要在 ASP.NET 中开发并且数据库是 mysql 时,服务层选择正确的堆栈吗?
  3. 这里的人还经历过其他任何警告吗?

该堆栈背后的主要目标之一是轻松扩展更多节点,这也有助于我们使用 Linux 盒子,它将显着降低我们的成本

请思考..

有帮助吗?

解决方案

您没有提供有关数据模型的详细信息,但如果您尝试执行类似于 facebook、twitter、digg 或 reddit 的操作,Cassandra 应该是一个不错的选择,因为您知道这些公司都在使用 Cassandra。

Cassandra 的优点之一是您不需要单独的缓存层:Cassandra 的内置键和行缓存,以及仅添加机器即可扩展的能力,使得 memcached 变得不必要。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top