序言

此项目源自真实项目—— “智慧乡镇平台” 方案,笔者摘取部分需求,整理为实战案例,最终形成一个以 SpringCloud,SpringCloudAlibaba、Dubbo 等技术栈进行的微服务实战项目,本系列长达 13万字 的手把手教程,图文并茂,细节到极点,基本囊括了微服务架构中常用技能点,全面覆盖微服务中各种问题,以及解决方案,是新手入门、初中级开发自我提升的不二之选。

文章系列:

01.开篇说明
02.需求分析
03.数据库设计
04.架构设计
05.框架搭建
06.敏捷开发 自动代码生成
07.集成knife4J文档
08.生成百万测试数据
09.通用公工服务
10.集成nacos注册中心
11.openfeign远程调用
12.权重负载均衡Ribbon
13.快速失败与sentinel熔断
14.nacos配置中心
15.统一网关gateway
16.网关ip限流方案
17.redis分布式缓存
18.完善核心业务,初始化数据
19.redisson分布式锁
20.消息队列的使用
21.分布式事务
22.dubbo与springcloud使用
23.jwt鉴权中心
24.网关聚合api文档
25.防止重复提交 ,接口防刷。
26.SMS短信服务 ,发送短信业务
27.分布式定时任务
28.oss对象存储,文件上传
29.性能调优与压测,jmeter压测,性能监控
30.admin系统监控、测试与运维
31.完整的服务链路追踪
32.版本控制之同时上传到github和gitee
33.微服务的打包发布
34.项目完结与源码分享

智慧乡镇平台架构图:

实时架构的基本特性 架构实战_实时架构的基本特性

一、写作起因

1、随着最近几年系统架构的理解升级,“微服务” 一词越来越火热,很多公司架构也在转向微服务。从 单体架构、集群及垂直化架构、SOA架构,到现在火热的微服务架构,它们之间都有着千丝万缕的联系。所以若要快速上手微服务时,最佳的方式就是实操演练,不断提升,才能在工作中游刃有余。

2、目前某度 “ Spring Cloud、微服务 ” 等关键词,资源散乱无章,不成体系的比比皆是,无法一步步的深入其中,其次,一些案例 无疾而终,且缺少相关的文档细节描述,对初学者而言,仅靠阅读文档代码,难免会一知半解,更不能深刻掌握各个组件在项目中实际应用的情况。

于是,笔者基于某真实商业项目,拆解部分需求,形成一个贴合实际场景的案例,本次教程中业务不复杂,但能将一套技术体系串连起来使用,且从头到尾配置了大量的实战图片记录,希望读者自己可以跟着动手实操,通过一步一步的操作,加深对“java微服务技术栈”的理解和使用。



二、开发流程计划

在本次案例中,笔者会最大程度的还原真实项目的开发过程,让读者对企业级开发有一定的认知和了解。其中还会提出一些日常的小思考和小技巧。

常言道,“工欲善其事,必先利其器”。一个项目,没有开发计划,则无效率和质量可言。通常在项目中,我们会建立对应的 甘特图,来衡量系统的开发进度。

甘特图(Gantt chart),又称为横道图、条状图。它是一系列与项目相关的任务和时间组合。甘特图的形式是条形图,其中横轴为时间或日期,纵轴为需要完成的任务。

经过分析,对本次项目,建立了开发流程计划甘特图,如下所示:

实时架构的基本特性 架构实战_实时架构的基本特性_02


通过甘特图可以直观地表明计划在什么时候进行哪一些任务,及实际进展与计划的对比,这也是真实项目开发前,必做的工作之一。


三、涉及的技术栈

笔者相信不少朋友在做微服务架构时候,技术选型还会纠结 选择 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,监控系统的完整运行和异常警报预警处理。

除此之外,项目中还会对一些常见报错信息,注意事项,编码技巧,基本知识等等进行说明和科普,希望读者能跟着一起动手,走进微服务开发的大门!


ps : 为了保证源码不受到盗窃,将在后续章节中再提供,请谅解。