目 录CONTENT

文章目录

关于Spring全家桶,分布式,和微服务

smallkun
2023-10-29 / 0 评论 / 0 点赞 / 87 阅读 / 1,941 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2023-10-29,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我删除。

先说大致介绍下spring cloud全家桶、分布式和微服务技术,以及说下它们在项目里怎么用的。

1 Spring cloud 全家桶一般分两代,第一代是eureka做服务治理,ribbon做负载均衡,hystrix做安全管理,zuul做网关,Spring cloud config做配置管理,这套技术也称之为微服务开发技术。

而现在是第二代了,是用Nacos做服务治理外带配置管理,还是用Ribbon做负载均衡,是用sentinel做安全管理,网关是Gateway,和第一代相比,组件会有不同,但这些组件依然是能提供微服务相关的服务治理负载均衡等服务。

2 而分布式组件一般是,用nginx做负载均衡和网关,用redis做缓存,用dubbo做远程调用,用kafka做消息中间件等,这种组件可以通俗地叫阿里系组件。

3 比如为了实现高并发的请求,相关请求大家可以参照秒杀或双11,不同的公司会用不同风格的组件,比如某公司用阿里系组件里的nginx做网关,用dubbo做远程调用,而另一家公司会用Spring cloud alibaba的组件实现。

有些公司甚至会混杂,比如用到spring cloud alibaba里的nacos+sentinel,同时再会引入redis消息中间件。但同一个功能不会混用组件,比如在负载均衡方面,不会混用阿里系的nginx或spring cloud alibaba方面的ribbon。

4 至于微服务,是个开发理念,至于怎么实现,没人在乎,毕竟客户是按功能付钱,不会因为软件公司用了微服务架构而多加钱。

一般来说,微服务对开发方来说,是值一个模块(即spring boot项目),只提供一个业务功能,比如只提供风控或支付功能,这个模块能单独部署,且这个功能是通过dubbo或restful请求和其他模块交互。

再说下哪类程序员在开发过程中会用到spring cloud全家桶,分布式和微服务。

1 有2年左右的java初级开发,平时做的是spring boot增删改查,哪怕是用到上述技能,顶多是用到api,比如通过api实现缓存。

2 而在真实项目里引入spring cloud全家桶或分布式组件是需要成本的,是为了解决实际的高并发问题,不得不引入,引入后第一为了应对高并发,第二是为了搭建一个便于部署维护和便于功能迭代的项目,所以这些技能,哪怕是3到5年开发经验的高级开发,顶多也是用api。

3 真正用这些组件解决和排查实际的高并发问题的,或者是用用来搭建项目架构的,一般是架构师,这些人一般需要5年或更多的项目开发经验。

说了那么多铺垫,再回到主题,说说应届生掌握spring cloud全家桶或分布式组件等技术的情况。

1 如果应届生在简历中就写会分布式,会全家桶组件,而没有任何项目经验,或者写的是xx管理系统之类的学习项目,那么顶多是会理论。

我见过太多的这样的简历,而且真是一问一个准,这些求职者往往连redis或nacos的api都未必知道,顶多说些redis能缓存,nacos能服务治理之类的话。

2 如果应届生的简历上包含商业项目,这类简历不多,但会有,比如从大三开始实习,然后再写用过全家桶和分布式组件,这我一般能信,但一般就到会用api实现功能的程度,比如会用api实现缓存,用dubbo实现远程调用。相比大多数应届生求职者,这绝对是个亮点。

前文也说了,spring cloud全家桶或分布式组件还真是一个亮点,所以最后再说下应届生(或java初级开发)该如何在面试中正确地通过spring cloud全家桶或分布式组件展示技能。

1 简历上得包含个真实项目,作为这些技术的载体,否则光说掌握了但没项目等于零。

2 不要多说,就说用到了api的级别,这就够了,比如用redis做缓存,用kafka做异步处理。

3 面试时,需要结合项目需求说,比如在实现支付功能时,多次访问了用户数据库,所以要用redis缓存,再说下spring boot里怎么用redis,无非是配置,再用RedisTemplate,这样结合业务和语法说了,面试官就信了。

4 再准备些解决过的实际问题,这方面也不用太难,比如解决过redis缓存穿透,或dubbo超时时间,这些问题哪怕对初学者来说,也不难。

5 千万别再说深了,过犹不及。同时概念方面的可以背,但面试中还真别指望靠这个打动面试官。

通过上述的准备,应届生,或初级开发能据此得到什么好处呢?

1 进一步证实自己的项目是商业项目。其实大多数应届生做不到这点,单凭此就能超过大多数的竞争者。我最近帮人辅导简历和面试,本来没面试机会的简历,我通过加入若干文字展示这点后,民面试机会就大大增加了。

2 相对于零基础,或者初级开发,能证明自己用过分布式组件的api,这在应届生里或初级开发里,绝对是个很好的加分项。

0

评论区