微服务开发(五) Spring Cloud 开发综合案例实践(一)

目录

一.概述

二.技术交底

三.架构设计

四. Spring Cloud最佳实践

1.创建项目

2. 使用MyBatis-plus生成代码

3.设置项目模块相关配置

五.总结


一.概述

        从Mybatis,到Spring Boot,再到Spring Cloud实际谈的都不是代码怎么写,而是框架怎么设计.

        MyBatits做了数据的持久化,实现了dao层的分离,将dao的结构与SQL语句分解成接口与XML文件,实现了程序与SQL语句的解耦.

        Spring Boot简化了Spring的操作,个人认为是将面向接口编程的概念更加的深化了,通过灵活的配置实现接口与类的关联,而不再需要通过类来实例化接口,使得dao,service,controller三者之间的关系更加的松散,结构更加的灵活.

        Spring Cloud的出现解决了分布式部署的问题,具体来说它实现了将原本一个整体的程序,拆分成多个模块,并且将模块做成服务,添加了服务治理中心(eureka-server),网关(gateway)这些模块.一个模块可以有多个服务的实例,每个实例都在eureka-server进行注册,续约,下线.由网关管理每个服务的访问,并使用openfeign进行各服务之间的调用.

        想象一下既然要把一个项目使用Spring Cloud框架拆解成若干个服务,那么必然不是一个小型的项目,显然会需要考虑各服务之间的访问量和出错情况.实际上引入Spring Cloud之后,项目的内部结构和关系变得更加的复杂,这是必然的,但是这种复杂度换来的却是我们的程序的扩展性,效率性更好.当时各服务出现问题的情况也必然出现,所以又引入了熔断器(Resilience4j).

        熔断器通过断路器,限速器,舱壁隔离等组件实现服务模块功能上的健壮性,在分布式部署中,面对访问量的增加,使用Resilience4j有效的管理服务的访问与流量之间的相互作用.

        由于这些技术的使用关键的不是代码,而是项目的搭建,所以本文要做的事情就是使用上面的这些框架搭建一个项目雏形.

在这之前可以先阅读前面几篇文章:

微服务开发(一) Spring Cloud 到底是什么?_flame.liu的博客-CSDN博客

微服务开发(二) :Spring Cloud:OpenFeign 服务调用与网关_flame.liu的博客-CSDN博客

微服务开发(三) Spring Cloud 网关gateway_flame.liu的博客-CSDN博客

微服务开发(四) Spring Cloud 与熔断器(Resilience4j)_flame.liu的博客-CSDN博客

二.技术交底

        本文除了上面提到使用SSM,Spring Boot,Spring Cloud之外,还将使用下面的这些技术:

  • mysql:数据库
  • redis:作为程序的缓存
  • mybatis-plus: 生成SSM开发的dao,service,controller,减少前期代码的编写
  • Spring doc: 作为spring boot API的文档工具,并且作为简单的方法测试.
  • vue3: 作为前端展现. 当然在本篇文章中会弱化此项.

编译工具用到的有:idea,VS Code,Navicat for MySql,RedisDesktopManager

三.架构设计

        项目架构的设计就像建一栋楼盘的图纸一样非常的重要,如果你是搭一间二层楼的房子,这个图纸的重要性可能不大,但是如果你是用Spring Cloud做开发,显然这将会是一栋30多层的建筑,如果图纸设计错误,造成的后果可能就是推倒重来,所以,项目前期的架构设计非常的重要,我尝试用一张图来描述这个项目的架构.

      在这个图中我们可以看到以下几点:

        1.在整个工程中是以模块的形式搭建的项目,包含这几个模块

                1) common模块,包含

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值