适用于小型 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 应用程序的架构的主要内容,如果未能解决你的问题,请参考以下文章

~1s 延迟控制应用程序:这适用于 Java 吗?

WEB通用抽奖程序设计基础架构以及程序目标

KaliAWVS

好程序员Java学习路线分享SpringCloud

高性能RPC框架——Dubbo一站式快速入门

Jfinal框架是什么框架?适用于什么项目呢?