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

本文介绍了如何基于Golang从零开始搭建架构,初期采用Beego框架和RESTful API,结合JWT和自建登陆验证,利用ORM进行数据库操作,使用redis作为缓存,日志服务用Elasticsearch,数据缓冲用Kafka,消息推送采用米推和阿里云短信服务,数据仓库使用MaxCompute。随着架构演进,计划转向微服务,探讨微服务带来的挑战及解决方案,并讨论DevOps体系的重要性和流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

前期设计
本着大道至简的原则设计如下:
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.youkuaiyun.com/bjweimengshu/article/details/79031552
借用一下小灰灰的文章^^

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值