面试知识储备-SpringCloud

1.为什么要出现springcloud?

单体架构

定义:传统的项目所有功能打成一个jar包就能直接部署,所有功能糅合到一起,非常简单

缺点:大公司项目某些功能的并发量大,会占用大量的资源,影响其他功能的正常运行(比如非常重要的交易功能)

微服务架构

定义:将各个功能拆分为独立项目,单独编译,拥有独立数据库

特点:高内聚低耦合

2.springcloud

提供了各种微服务组件,如果要使用的话只能用到2021的版本,否则jdk8不支持后续版本

如何拆分服务

1.独立工程 - 分开设计project 多个文件夹

2.Maven聚合 只有一个project 每个服务设为一个module

3.注册中心Nacos

服务治理的三个角色:服务提供者,服务调用者,注册中心

所有的服务都应该在注册中心注册,注册中心提供调用者多个ip地址以达到负载均衡,注册服务应每隔一段时间发送心跳续约,确保服务没有宕机

nacos是springcloudalibaba的注册服务中心,首先它是一个服务,我们需要去启动它,然后引入依赖,配置它的ip地址

服务注册

然后启动我们的单体服务,服务会自动在注册中心注册,启动多个实例时复制启动项就可以(只需要一份代码),新的启动项要放在新的端口,防止冲突

服务发现

服务发现springcloud定义了一套标准,我们通过注入discoveryclient和服务名称来调用实例列表,然后通过负载均衡算法来挑选实例,在获取实例的uri

4.简化版微服务openfeign

以上部分是nacos的原理部分,为了简化代码的书写我们引入一个新的组件openfeign和负载均衡器,然后启动openfeign

可以通过注解的方式简化以上三步

在openfeign中引入连接池可提高性能

相关推荐
风止何安啊13 小时前
为什么要有 TypeScript?让 JS 告别 “薛定谔的 Bug”
前端·javascript·面试
Ricky111zzz13 小时前
leetcode学python记录1
python·算法·leetcode·职场和发展
逆境不可逃15 小时前
LeetCode 热题 100 之 230. 二叉搜索树中第 K 小的元素 199. 二叉树的右视图 114. 二叉树展开为链表
算法·leetcode·职场和发展
wfbcg15 小时前
每日算法练习:LeetCode 15. 三数之和 ✅
算法·leetcode·职场和发展
YunQuality16 小时前
六西格玛黑带三个月拿证经验分享
笔记·职场和发展·职场·学习方法
人道领域16 小时前
【LeetCode刷题日记】242.字母异位词
算法·leetcode·职场和发展
小江的记录本16 小时前
【JEECG Boot】 JEECG Boot——数据字典管理 系统性知识体系全解析
java·前端·spring boot·后端·spring·spring cloud·mybatis
XWalnut17 小时前
LeetCode刷题 day8
算法·leetcode·职场和发展
张元清17 小时前
不用 Server Components 也能做 React 流式 SSR —— 实战指南
前端·javascript·面试
却话巴山夜雨时i17 小时前
互联网大厂Java面试:从Spring到微服务的全栈挑战
java·spring boot·redis·微服务·面试·kafka·技术栈