一.引入
单体架构在 中小企业内部用的是非常多的,当 业务不复杂, 团队规模不大的时候,单体架构比微服务架构具有 更高的生产率
单体架构
当 业务比较复杂, 并发量比较大, 团队规模扩大的时候, 就需要引入微服务架构了,它比单体架构具有 更高的生产率, 可以 节省成本 , 解决高并发 , 项目重启 等问题
比如说:
一个商城项目需要升级, 需要增加一个api接口,单体架构的话,就需要 修改框架routers文件, 然后 重新发布,部署 ,这个时候应用就需要 进行重启 ,重启之后才会进行服务,这时如果有一个用户正在进行付款操作,这时候项目却在重启,这个时候就会出现 丢单 的情况,给用户以及业务人员带来不必要的麻烦;
还有就是:
当并 发量比较大 的时候,需要 扩展服务器 ,实现 负载均衡, 这样的操作是对 整个网站进行优化 ,会 增加运维成本 ,这时候就 有必要 使用 微服务 ,当并发量比较大的时候,可以找出是哪个模块的并发量较大,就可以 针对 这个模块进行 优化 ,因为使用微服务的话,每个模块都是 独立的 .比如:前端 登录操作(验证码服务) 的 并发量比较大 ,就可以针对登录模块(验证码服务)微服务进行优化,多部署几个登录模块(验证码服务)微服务,还比如: 订单模块服务 并发量比较大,就可以多部署几台订单模块服务集群操作,这样可以很好的实现高并发,以及节约硬件成本
另外的一个好处就是:
当使用了微服务的时候,项目的升级也很好处理,单体架构的话,需要 修改框架routers文件, 然后 重新发布,部署 ,这个时候应用就需要 进行重启 ,重启之后才会进行服务,而微服务的话,只需新增一个微模块服务功能,项目现存的功能不受影响
二.方案
商城微服务架构的第一种方案
商城微服务架构的第二种方案
[上一节][golang gin框架] 38.Gin操作Elasticsearch创建索引、修改映射、数据CURD以及数据分页