Spring Cloud Alibaba微服务架构实战教程—01开篇说明
序言
此项目源自真实项目—— “智慧乡镇平台” 方案,笔者摘取部分需求,整理为实战案例,最终形成一个以 SpringCloud,SpringCloudAlibaba、Dubbo 等技术栈进行的微服务实战项目,本系列长达 13万字 的手把手教程,图文并茂,细节到极点,基本囊括了微服务架构中常用技能点,全面覆盖微服务中各种问题,以及解决方案,是新手入门、初中级开发自我提升的不二之选。
智慧乡镇平台架构图:
一、写作起因
1、随着最近几年系统架构的理解升级,“微服务” 一词越来越火热,很多公司架构也在转向微服务。从 单体架构、集群及垂直化架构、SOA架构,到现在火热的微服务架构
,它们之间都有着千丝万缕的联系。所以若要快速上手微服务时,最佳的方式就是实操演练,不断提升,才能在工作中游刃有余。
2、目前某度 “ Spring Cloud、微服务 ” 等关键词,资源散乱无章,不成体系的比比皆是,无法一步步的深入其中,其次,一些案例 无疾而终,且缺少相关的文档细节描述,对初学者而言,仅靠阅读文档代码,难免会一知半解,更不能深刻掌握各个组件在项目中实际应用的情况。
于是,笔者基于某真实商业项目,拆解部分需求,形成一个贴合实际场景的案例,本次教程中业务不复杂,但能将一套技术体系串连起来使用,且从头到尾配置了大量的实战图片记录,希望读者自己可以跟着动手实操,通过一步一步的操作,加深对“java微服务技术栈”的理解和使用。
二、开发流程计划
在本次案例中,笔者会最大程度的还原真实项目的开发过程,让读者对企业级开发有一定的认知和了解。其中还会提出一些日常的小思考和小技巧。
常言道,“工欲善其事,必先利其器”。一个项目,没有开发计划,则无效率和质量可言。通常在项目中,我们会建立对应的 甘特图,来衡量系统的开发进度。
甘特图(Gantt chart),又称为横道图、条状图。它是一系列与项目相关的任务和时间组合。甘特图的形式是条形图,其中横轴为时间或日期,纵轴为需要完成的任务。
经过分析,对本次项目,建立了开发流程计划甘特图,如下所示:
通过甘特图可以直观地表明计划在什么时候进行哪一些任务,及实际进展与计划的对比,这也是真实项目开发前,必做的工作之一。
三、涉及的技术栈
笔者相信不少朋友在做微服务架构时候,技术选型还会纠结 选择 Dubbo 还是Spring Cloud? 在本系列中,你会找到答案。
本案例会使用到的技术栈:
- 使用 SpringBoot、MyBatis、Redis、 MySql、RockerMQ 、JDK8,Restful 等主流技术点。
- 统一公共体系:搭建统一日志、统一响应、统一异常处理等公共统一服务。
- 注册中心:Spring Cloud Alibaba Nacos,强大的二代注册中心Nacos统一管理服务的注册。
- 远程调用:Feign,OpenFeign的方式,进行服务间的远程调用。
- 客户端负载均衡:Ribbon、OpenFeign的方式实现远程调用中的负载均衡,提高系统健壮性。
- 降级、熔断器:Spring Cloud Alibaba Sentinel,采用最新的熔断器,提高服务的高可用。
- 配置中心:Spring Cloud Alibaba Nacos,借助Nacos完成系统的统一管理服务的配置。
- 认证中心:采用JWT进行用户认证、用户鉴权和Token生成。
- 统一网关:Spring Cloud Gateway,统一网关管控微服务之间的请求入口。
- 分布式事务:Spring Cloud Alibaba Seata,分布式下多表多库的事务管理。
- 异步消息:RocketMQ,消息中间件,做分布式消息通讯。
- 链路跟踪:Skywalking,做分布式链路追踪,便于监控服务故障点。
- 分布式缓存:Redis,做基础数据缓存,从而达到系统快速响应。
- 分布式锁:Redission,乐观锁与悲观锁的使用等。
- 敏捷开发:Mybatis持久化,Mybatis-Generator 自动生成代码,Lambok 简化代码结构。
- RPC框架:Apache dubbo,结合主流应用的RPC方式,打造可拓展的系统。
- SMS短信服务:Spring Cloud Alibaba SMS,更真实贴切的系统短信验证服务等。
- 版本管理:Git 版本控制,Github 源码管理、接口幂等设计,SQL 外键关联等等技巧。
- 健康监控:Spring Boot Admin,监控系统的完整运行和异常警报预警处理。
除此之外,项目中还会对一些常见报错信息,注意事项,编码技巧,基本知识等等进行说明和科普,希望读者能跟着一起动手,走进微服务开发的大门!
共同学习,写下你的评论
评论加载中...
作者其他优质文章