架构从零搭建003-golang架构规划

戚奇略
2023-12-01

基于基本原则,架构方面正好够用就是最好的,禁忌过度设计,但要想好后续的平稳扩展方案

前期设计
本着大道至简的原则设计如下:
web端使用Beego框架,且使用restful风格的API
登陆token验证,本打算使用JWT,但我还是喜欢自建
数据库操作使用ORM
缓存使用redis
日志服务使用elaticsearch
数据缓冲kafka
消息推送:米推
短信推送:阿里云
数据仓库:maxcompute

我也是刚用golang,为了快速搭建我使用了beego。
有人说golang不是面向对象的,beego做的特别像JAVA的MVC面向对象的框架,这与golang面像函数试编程的思路有冲突。
关于这点我想说一下,MVC是设计模式,它不是JAVA专有的,也不是面向对象的语言专有的,golang中的interface与struct配合起来甚至可以更灵活的完成多态、继承、封装。
在我的github上有使用golang实现的一些常用的设计模式:
https://github.com/arno99x/go_study/tree/master/pattern
golang语法很灵活,可以挖掘出更多、更优雅的写法

后期设计
搬家至微服务,让模块间偶合更少,团队更敏捷,扩展更容易
微服务是企业应用不断扩大的必然产物,它便众多的服务管理起来更加的方便,让越来越多的服务加入到服务群中变成了现实,当然对公司技术团队也有更多的要求,但使用微服务也要解决一些问题:服务发现、apigateway、配置中心、服务监控、日志追踪、熔断、负载均衡、安全等等一系列的问题,后面我会在微服务系列文章中带大家一一探讨

devops设计
从某种程度上来说,这一套方案算是一个成熟IT企业的基石和标配了,尤其是互联网公司,所以你在用的时候先问问公司或其它部门是不是已经有了?是否可以复用?毕竟建设这个需要花费不少时间。
devops体系生态中包括的东西很多,主要分为两类,自动化集成(CI)和自动化部署(CD)
整个体系流程中包括了代码检查、自动化测试、 代码集成、部署、安全管理、策略管理、监测。。。等。
什么是devops呢?它为什么会存在,又有哪些恩怨情仇在里面呢?
下面分享一个IT公司的小故事给大家,一看便知devops的重要性
https://blog.csdn.net/bjweimengshu/article/details/79031552
借用一下小灰灰的文章^^

 类似资料: