首页 >> 牛刀云小程序开发教程 >> 第2篇 开发模式 >> 技术架构

12.1 架构概述

在动手开发之前,需要先了解一下牛刀云的技术架构整体技术架构如图12-2所示,分为前端页面、微服务网关、微服务、存储和主机等5个方面。对于开发者而言,需要开发的只有前端页面中的小程序语言和微服务中的自定义服务两部分。

前端
页面

 

小程序

公众号

APP

……

JavaScript
WeUI

开发时

小程序语言

运行时

小程序

H5React

Hybrid APP
Cordova

 

 

 

 

 

 

 

 

 

微服务
网关

API Gateway

Kong

路由

身份验证

鉴权

黑白名单

流量控制

……

 

 

 

 

 

 

 

 

微服务

通用数据服务
DBRest

短信服务SMS

自定义服务

存储对象代理服务
Storage

用户账号和认证服务UAA

……

Maven
Spring MVC
Spring data
Java
php
Nodejs
Python

 

 

 

 

 

 

 

 

存储

数据库(PostgreSQLMySQL、……)

对象存储(Minio、……)

 

 

 

 

 

 

 

 

 

主机

阿里、腾讯等云主机、私有云主机

 

12-2  牛刀云技术架构

 

    牛刀云的前端页面采用小程序语言开发,实现一次开发,多端任意部署。可以部署为小程序、公众号和APP。通过将小程序语言转化为H5 + React,实现浏览器运行,因此可以部署到公众号中。再通过使用Hybrid APP + Cordova插件的方式,生成独立APP,直接安装在手机上。前端页面代码采用JavaScript最新国际标准ECMAScript2015,前端页面样式集成WeUI样式库,达到同微信原生应用视觉体验一致的效果。

牛刀云的后端采用微服务架构,每个微服务可以独立部署、运行和升级。微服务之间在结构上是“松耦合”的,但在功能上表现为一个统一的整体。从而有效的拆分应用,实现敏捷开发和部署。目前已提供的微服务包括:用户账号和认证服务UAA、短信服务SMS通用数据服务DBRest和存储对象代理服务Storage。在牛刀云中可以自定义服务,牛刀云使用Maven进行项目管理,使用Spring MVC实现MVC框架,使用Spring Data访问数据库支持多种开发语言,包括JavaphpNodejsPython等(目前只支持Java)。

微服务网关是微服务架构标准化服务的模式。微服务网关定位为应用系统服务接口的网关,区别于网络技术的网关,但是原理是一样的。微服务网关统一服务入口,可方便实现对平台众多服务接口进行管控,对访问服务的身份认证、功能调用的业务鉴权、流量与并发控制。使用Kong 作为管理工具,还可以安装其它插件。

在存储方面,支持数据库存储和对象存储。数据库支持PostgreSQLMySQL等数据库,还支持通过配置连接外部数据库,支持连接PostgreSQLMySQLOracleSQLServer四种数据库。对象存储目前支持Minio,用于存储大容量非结构化的数据,例如图片、视频和日志等文件

    在部署方面,不仅支持阿里、腾讯等云主机,还支持私有主机。