miniprogram

module
v0.0.0-...-5aa83a4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 16, 2022 License: MIT

README

miniprogram

介绍

本项目为烂诗人微信端小程序

lanshiren

二维码

lanshiren_mini

软件架构

软件架构说明

客户端

端上我们有小程序端和 Web 端,小程序端供用户访问报名系统,Web 端主要提供给管理员管理操作。这里的技术栈主要是 JS,微信的 WXML 和 WXSS (WXML 和 WXSS 主要为 UI 设计到小程序端的具体表现,JS 用于实现前端业务逻辑),以及管理端的 VUE。

接入层

接入层,我们选用开源的 Nginx,主要实现前端过来的流量控制,到后端业务层的探活以及负载均衡。选用它的主要原因是我们需要的功能基本都实现了,只要通过简单的配置就可以实现,其次是它的性能好,整体代码质量高,稳定可靠。

业务层

业务层是我们重点需要开发的层,语言选型是 Golang ,对应的 web 框架我们选择 gin,数据库客户端选择 gorm 和 redigo,日志框架 uber 的 zap。业务层主要实现了整个报名系统的业务逻辑,业务逻辑图如下。

基础设施层

系统中用到的基础设施主要就是数据库和缓存了,对于核心的数据 (如用户身份信息,线路信息),我们存储到 MySQL 中。一些非重要数据,如用户的登录的 session 信息 登录记录,可以存储在持久化缓存 Qedis。以及内存缓存 Redis 中。基础设施层都需要搭建主备容灾的环境,主挂了,可以切流继续对外提供服务。

安全模块

安全模块主要是保证系统的安全,我们在接入层使用 HTTPS 协议,登录模块使用 OAuth ,即保证安全,也可以避免了用户注册系统的流程,让小程序简单好用。

稳定性模块

稳定性模块主要包含了 Nginx 中用户访问日志,业务系统日志的管控,以及业务流量的监控,程序运行调用栈,系统负载等监控信息,同时可以操作流量切换,在后台出现故障时,可以切流到备用服务上。

数据分析模块

数据分析模块主要用于对各种用户数据进行分析,前期用户数据量较小的情况下,可以直接从基础设置层的库里面读取数据。在数据量大的情况下,需要将基础设施层的实时数据导入到 Hadoop,Spark 这样的离线计算系统中进行分析。

防归零冷备份

任何系统都可能面对极端情况下的灾难,如果所有数据丢失需要有办法重建整个系统,这就需要将数据定期冷备份到可靠的存储设备上,这里我们选择阿里云 oss 用来冷备我们的数据。

使用说明

todo:

参与贡献

我们使用 git 管理对代码进行版本管理,项目中有三个分支 (master, develop, feature), 你需要从 feature 分支 fork 出 feature_* 的新分支,开发完成后提交 megre request 到 feature 分支,如果需要进行测试可以合并到 develop 分支。

一些有用的链接

https://golang.org

https://tour.golang.org

https://dev.mysql.com/doc

https://redis.io/documentation

https://nginx.org/en/docs

https://github.com/loveyacper/Qedis

https://en.wikipedia.org/wiki/HTTPS

https://gorm.io/zh_CN/docs/index.html

https://github.com/garyburd/redigo

https://github.com/uber-go/zap

Directories

Path Synopsis
app
log

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL