大家好,今天给大家介绍一个非常热门的技术,同时也是面试的时候面试官特别喜欢问的一个话题,那就是 SpringCloudAlibaba 的底层原理。
现在大家都知道,SpringCloudAlibaba 风靡 Java 开发行业,各个公司都在用这套技术,所以咱们 Java 工程师出去面试,面试官对 SpringCloudAlibaba 都搞成了面试必问选项了,但凡面试,总会有面试官问问:“兄弟,SpringCloudAlibaba 玩儿过吗?能聊聊 SpringCloudAlibaba 的底层原理吗?”
这个时候你要是一脸懵圈的说:“兄弟,我们玩儿的是 SpringCloud 啊,你后面加个 Alibaba 干什么?这东西什么时候跟阿里扯上钩了?”要是面试时你这么回答,那么恭喜你,基本上面试官应该会借口肚子疼要上厕所,然后 30 分钟就结束这场面试了。
所以说,咱们这篇文章,就是希望各位兄弟别出现上面那种 30 分钟就被迫结束面试的窘迫问题。
今天我们先一步一步的来让大家理解一下 SpringCloudAlibaba 里面都包含哪些技术组件,在系统里都是用来干什么的,然后再给大家分析一下这些技术底层的原理。
首先,假设你们公司有两个系统,咱们就假设是系统 A 和系统 B 吧,这俩系统现在的需求就是要让系统 A 可以发送一个请求给系统 B 来实现系统间的接口调用。
咱们看下面这个图:
现在有一个最大的问题,系统 A 是部署在一台服务器上的,系统 B 又是部署在另外一台服务器上的,那系统 A 怎么可能莫名其妙的就知道系统B部署在哪台机器上呢?
这就好比说,您在大马路上走着走着,看到一个美女,回家了特别想微信联系她一下,结果您都不知道她的微信号,没加过好友,凭空也没法跟美女搭讪啊!
那跟美女搭讪的正确姿势应该是什么呢?这得有一个前提,就是您有一个中间的朋友,他认识那美女有人家的微信号,这个时候你可以找那中间的朋友要到人家微信号,再根据微信号加人家美女好友,接着就可以实现无缝情感沟通啦!
开个玩笑,上面仅仅是枯燥技术文章中的一个插曲,其实对于您的系统 A 来说,这时就必须引入一个 SpringCloudAlibaba 的关键技术组件,叫做 Nacos。
大家请擦亮眼睛,这个 Nacos 是一个关键名词,一定要记住了,他的学术定位叫做“服务注册中心”。
这个 Nacos 就类似上面说的那个有美女微信号的第三方朋友,他是知道你的系统B部署在哪台机器上的,因为系统 B 在启动的时候会主动向 Nacos 服务注册中心进行服务注册,告诉 Nacos 说自己部署在哪台机器上,自己的机器 ip 地址是 172.86.76.251,自己的端口号是 20880。
大家看下图:
这个时候&#x