真实项目使用springcloudalibaba搭建高可用、可扩展系统架构设计思考

前言

由于有项目要开发,不想使用原来的旧项目代码,因此,需要设计一套全新的项目架构

背景

整个项目由客服系统、配置系统、公众号小程序后台、数据系统组成

技术选型

这里我结合自己的经验,选择了springcloudalibaba来设计系统架构,使用了springcloud5大组件如下:
网关:spring-cloud-gateway
负载均衡:ribbon、feign
熔断降级:sentinel
注册中心和配置中心:nacos

其他中间件:
数据库:mysql、redis
消息中间件:rocketmq
对象存储:minio

在这里我没有选择dubbo来做微服务调用模块,因为dubbo的接口只能在项目内使用,客户端必须得是java,无法通过网关提供接口给外部系统和前端调用,会增加项目模块,增加维护成本,因此,最终还是选择了ribbon和feign来做,编写http接口同时可以在内部使用也可以通过网关暴露出去,http通用性比较强,既省事又省力。

总体架构图

在这里插入图片描述

系统模块

!
各模块详细说明:
Gatway:系统总体入口,对公网暴露http接口
Basecenter:基础能力模块,处理用户相关数据及业务,与公众号、H5、小程序对接
Configcenter:配置系统模块,只处理配置数据,为其他系统提供配置数据的查询接口
Datacenter:运营数据中心,只处理历史数据,提供接口给其他系统写入和查询
Custcenter:只处理数据库,主要是用户权限相关,通过调用其他系统接口去查询或设置用户数据
Httpcenter:提供http接口给外部系统,不处理数据库,需要处理数据就通过接口去调用
Rocketmqcenter:处理异步数据,提供发送mq消息接口,并且消费所有消息,不处理数据库,只处理业务,数据处理通过调用其他系统的接口实现
Exportcenter:系统的出口,将所有需要调用外部的接口和文件存储放到这里,集中管理,封装起来,提供接口给其他系统调用

总结

第一次设计一套完成的项目架构,觉得是一个很好的锻炼机会,其实还是挺开心的。
现在架构代码已经写的差不多了,剩下的就是做业务开发了。
后面我会继续介绍一些项目的模块,及分享源码,觉得可以作为一个模板,每个项目都可以用。
如果有比较厉害得大牛,欢迎提点提点。

广告

需要设计新系统架构的、开发新项目的老板可以找我,
毕业设计也可以找我
微信:tp_835022460

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值