适用于小型 Web 应用程序的架构
Posted
技术标签:
【中文标题】适用于小型 Web 应用程序的架构【英文标题】:Suitable architecture for a small-scale web app 【发布时间】:2016-10-07 02:44:35 【问题描述】:我需要构建一个通常具有以下规范的 Web 应用程序:
同时有几十个用户的预期最大负载 一个简单的身份验证令牌系统,在整个生命周期内拥有大约几百个唯一用户,具有专有性质 所有用户通用的静态数据源,具有以下特点:-
几个包含数千个自定义类型元素的数组(大约有 4-5 个属性)
几个大小为千的方阵(64 位浮点数)
查询:
-
考虑到大小,我应该使用数据库来存储静态数据,还是通过从文件中初始读取来依赖内存中的数组?
我需要一个可以从流行的注册商网站购买的自定义域。我应该将网络应用托管在 Google App Engine 等云服务上,还是我所在位置的私人服务器就足够了?
网站的应用程序代码和数据的安全性非常重要(即使是用户!)。此外,我需要一个简单的登录/身份验证系统。我应该如何管理注册用户的档案?
对于用户请求的计算,我打算使用 JSON 通过 POST 请求在服务器之间传输数据。这是正确的方法吗?
背景:
Web 应用程序正在使用 Go (Golang) 作为后端和 javascript/CSS/html 作为前端构建。
我是一位精通应用程序开发人员(主要使用 C# 和 MATLAB),但这是对网络应用程序的相对“年轻”的尝试。在这一点上,我主要关心的是正确的架构。因此,如果我有任何根本性的错误,请指导我找到合适的资源。
谢谢!
【问题讨论】:
【参考方案1】:您可能最好使用数据库,您可能只需读取一些包含用户数据的文本文件就可以逃脱,但设置一些像 SQLite 这样的简约数据库非常容易。
您可能只想使用 AWS 或 Google 的东西,您的应用程序规模非常小,因此您可以轻松摆脱它们的“微型”大小节点。而且我认为这两种服务都提供某种免费等级。
正确,您需要使用包含身份验证支持的中间件,例如 gin-gonic。如果您要实施身份验证系统,您可能还需要熟悉password hashing。
是的,通常大多数 Web 请求都是使用 JSON 完成的,有时也会使用 XML。
【讨论】:
以上是关于适用于小型 Web 应用程序的架构的主要内容,如果未能解决你的问题,请参考以下文章