我一直在评估用于开发基于社交网络的应用程序的技术堆栈.下面是我认为非常适合这种应用程序类型的应用程序的堆栈:
GUI - ASP.NET MVC,Flash(Flex)
业务服务 - 基于Thrift的服务使用Thrift的一个优势是解决当用户群迅速增加时将来会出现的扩展问题.所有业务逻辑都可以使用REST,JSON等作为服务公开.这也允许我们在情况需要时使用基于C++或Erlang的服务.
数据库 - mySQL,CasSandara mySQL可用于存储需要持久化的数据.Cassandara将用于存储持久化数据的全局标识符.由于Cassandara通过引入更多节点也非常擅长扩展,因此这也将利用基于Thrift的服务.而且Cassandara和Thrift之间也有本土支持
缓存服务器 - Memcached
如果需要任何非脏数据,来自Business Services的任何请求将仅与Memcached通信,否则将有一些后台作业将使数据库中的缓存无效.
问题是:
Thrift是开源的Thrift是生产就绪的吗?
当应用程序(GUI)主要在ASP.NET中开发并且DB是mysql时,它是否适合选择服务层?
这里有人经历过其他任何警告吗?
这个堆栈背后的主要目标之一是轻松扩展更多节点,这也有助于我们使用Linux机箱,它将显着降低我们的成本
想请...
你没有提供有关你的数据模型的详细信息,但是如果你想尝试做类似于facebook,twitter,digg或reddit的事情,Cassandra应该是一个很好的选择,因为你知道这些公司都在使用Cassandra.
Cassandra的一个优点是你不需要一个单独的缓存层:Cassandra的内置键和行缓存,以及只需添加机器来扩展的能力,使memcached成为不必要的.