如何选择后端框架和数据库?

我现在正在做一些网站架构选择的研究,研究对象是 LinkedIn 等社交网站。
LinkedIn 架构
这是在网上找到的 LinkedIn 的网站架构,我的研究主要针对其中 Profile Service 部分。从图中看到,这部分使用了单独的数据库来存储。

需要考虑到的功能包括:
1. 个人信息在好友之间的同步。一个用户对个人信息的修改必须被好友看到,即保持信息最新。
2. 个人多信息的多平台管理,包括 iOS、Android 和 Web 页面。
3. 管理好友列表,用户可以添加好友、删除好友、为好友分组、添加备注等。
4. iOS 和 Android 客户端的离线访问。App 中需要包含一部分数据,存放在 App 的内部数据库中,在离线时,用户的修改会先操作内部数据库,上线后内部数据库与服务器数据库需要同步。
5. 关系分析,包括寻找共同好友、绘制关系图等。

目前考虑到的的包括:
数据库:MySQL、MongoDB。
网站框架:Tomcat、Django、Tornado、Node.js。

我该如何选择?为什么?

补充:我做的是一个研究性质的工作,我就是需要根据场景来分析和选择所使用的东西。

阅读 18.5k
3 个回答

怎么又来一个一模一样的问题……

如果你没做过后端,直接从头学,随便抓一个来用

如果做过,那么想想之前用的东西能不能满足需求,不能就换。否则就沿用之前用过的

然后一模一样的话粘过来

总之,作为一种工程活动,写代码之前“思考”是没用的,“思路“是无法凭空诞生的。实际操作后,“总结”才能带来正确的结论。


通俗地说,题主的问题就是“我想要煮汤,大家说是用铁锅配合煤气灶还是砂锅配合天然气灶,我要煮的是萝卜排骨汤,家里有小孩,小孩平时喜欢吃肉,口味偏清淡,大家根据这个场景来帮我分析选择一下”,然后我和 @如果 同学的答案是“铁锅或者砂锅都能煮出好汤,关键要厨师的经验,如果你就是那位厨师,那赶紧煮一锅汤出来试试看吧”

要看你能招到会哪种代码的程序猿。。和你(或者老板)的喜好。空洞地谈架构,谈用哪种数据库没有意义。。架构是在解决问题中才渐渐形成的最优方案。。。

菜鸟理解,大神勿喷。

看你熟悉那种语言了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题