Spring Boot、Spring Cloud 小结

Spring Boot

Spring Boot是一个单体应用,应用程序打成一个包。

谈一谈对Spring Boot的理解:

在初期我们都用过ssm、ssh等框架,在搭建框架过程中需要考虑各种配置文件、jar包冲突等问题,集成第三方框架也会耗费大量时间,而Spring Boot是一个轻量级可以快速集成开发的框架,能够将包通过manven继承方式合部依赖起来,快速整合第三方插件,完全采用注解方式减化XML配置,内置HTTP服务器,默认嵌入的是Tomcat,最终以java应用程序执行。

Spirng Boot优、缺点:

优点:简单、快捷、轻便、便于测试

缺点:随着业务增加叠迭, 单体应用会越来越庞大,应用越大启动时间也会越长。当单体服务出现宕机,所有功能都不能使用。

Spring Cloud

在遇到所有学习的文章里,开篇就会学习到“微服务是一种架构思想”,当我们系统架构满足这种思想,他就可以说是微服务。在具体应用项目开发时,我们用的不是微服务,我们只是用了微服务的架构思想,真正开发时,我们采用的是“分布式系统开发”。

分布式系统开发,最重要的特点:高可用、高性能、高并发。

疑问,哪什么是微服务的架构思想?

我的理解是,就是每个服务都是一个小小的服务,在自己的一个服务里,专注的做自己的一件事。

微服务就是将每个模块根据业务功能细化拆分,成为一个只做一件事的单体服务,让每个服务之间进行松耦合。每个服务都可以单独部署,当某个服务出现问题,不会影响其他服务使用,每个独立的单体都可以进行多个部署,来完成负载均衡。

微服务的优、缺点:

优点:独立布署、解耦、每个服务都可以由一个团队开发、扩展性强。

缺点:有优点,肯定也会存在一定的缺点,在具体项目应用时,微服务本身是一种架构思想,开发时采用分布式系统开发,与单体对比来说,会使项目整体结构变得更复杂。使用分布式系统开发,还会存在分布式数据库架构问题,需要考虑数据一致性问题。分布式服务布署,也会比传统布署方式要繁琐的多。

微服务比单体应用的优势:

微服务是一种架构思想,系统如果满足这种思想,我们都可以说是微服务,微服务与单体相比而言,单体应用出现宕机,导致整个服务不可用,微服务不同是,将每个业务都拆解成独力的一个个服务,服务之间进行松耦合,如果某个服务出现问题,不会影响其他服务使用,每个服务可以布署多个,来完成负载均衡。

服务与服务之间如何调用:

服务之间调用可以借助Spring Cloud Feign来完成,Feign内部整合了Ribbon和Hystrix,Feign具有客户端负载均衡和服务容错的功能。

比如:ruoyi-demo服务内部调用ruoyi-system服务提供的REST服务:

首先,Feigh在很多微服务中都需要用到,所以我们将feign依赖,引入到common公共的pom里。

然后,创建一个与common服务平级的feign-api包,用于存放每个微服务的feign模块,进行统一管理,方便各服务之前调用。

下面以ruoyi-cloud框架为例,截图目录层级:

 最后,我们创建FeignClient接口,以及如果feign失败FallBackFactory指定回退的接口。

FeignClient文件样例:

FallBackFactory文件样例:

 FeignClient属性含义:

value:指服务的名称,它是与ruoyi-demo服务配置yml里name名称是一致的,就是注册到网关里的服务名称。

 contextId:是当前这个服务的别名,如果Feign Client有多个,并且value值相同的时候,需要手动通过contextId设置别名,否出程序会抛出异常。

 fallBackFactory:指回退当前方法,如果服务调用出现异常, 我们可以指定回退方法,方法回退可以通过Throwable对像打印出异常日志,分析问题。

 注:Feign的回退功能是基于Hystrix实现的,如果想要回退方法生效,需要在yml中配置开启Hystrix。

仅供参考,希望对您有所帮助,感谢阅读。


注:本文章,是从各大网站、各位道友以及老师等处学习,自己总结做的一些笔记,不对的地方望海涵,如有问题,请及时联系。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值