当前位置: 首页 > news >正文

面试题--SpringCloud

SpringCloud

 SOA 和微服务的区别?(必会)

谈到 SOA 和微服务的区别, 那咱们先谈谈架构的演变

1. 集中式架构 项目功能简单, 一个项目只需一个应用, 将所有功能部署在一起, 这样的架构好处是减 少了部署节点和成本. 缺点: 代码耦合,开发维护困难

2. 垂直拆分架构 当访问量逐渐增大,单一应用无法满足需求,此时为了应对更高的并发和业务需求,我 们根据业务功能对系统进行拆分

优点:  系统拆分实现了流量分担,解决了并发问题  可以针对不同模块进行优化, 方便水平扩展,负载均衡,容错率提高 缺点:  系统间相互独立,会有很多重复开发工作,影响开发效率

3.分布式服务 当垂直应用越来越多, 随着项目业务功能越来越复杂, 并非垂直应用这一条线进行数据 调用, 应用和应用之间也会互相调用, 也就是完成某一个功能,需要多个应用互相调用, 这就 是将功能拆完来完成的分布式架构.

优点: 将基础服务进行了抽取,系统间相互调用,提高了代码复用和开发效率 缺点: 系统间耦合度变高,调用关系错综复杂,难以维护.

服务治理架构 SOA SOA 

面向服务的架构 当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调 度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的资 源调度和治理中心(SOA)是关键, 而最初的服务治理基石是 Dubbo 服务治理

以前分布式服务的问题?

 服务越来越多,需要管理每个服务的地址, 调用关系错综复杂,难以理清依赖关系  服务过多,服务状态难以管理,无法根据服务情况动态管理 SOA 服务治理架构的优点:  服务注册中心,实现服务自动注册和发现,无需人为记录服务地址  服务自动订阅,服务列表自动推送,服务调用透明化,无需关心依赖关系  动态监控服务状态监控报告,人为控制服务状态

SOA 服务治理架构的缺点: 服务间依然会有依赖关系,一旦某个环节出错会影响较大(容错机制)  服务关系复杂,运维、测试部署困难,不符合开发-运维一站式维护的思想

微服务

前面说的 SOA,英文翻译过来是面向服务。

微服务,似乎也是服务,都是对系统进行 拆分。因此两者非常容易混淆,但其实缺有一些差别: 微服务的特点:

 单一职责:微服务中每一个服务都对应唯一的业务能力,做到单一职责.

 微:微服务的服务拆分粒度很小,例如一个用户管理就可以作为一个服务。每个服 务虽小,但“五脏俱全”。

 面向服务:面向服务是说每个服务都要对外暴露 Rest 风格服务接口 API。并不关心 服务的技术实现,做到与平台和语言无关,也不限定用什么技术实现,只要提供 Rest 的接口即可。

 自治:自治是说服务间互相独立,互不干扰  团队独立:每个服务都是一个独立的开发团队,人数不能过多。

 技术独立:因为是面向服务,提供 Rest 接口,使用什么技术没有别人干涉

 前后端分离:采用前后端分离开发,提供统一 Rest 接口,后端不用再为 PC、 移动段开发不同接口

 数据库分离:每个服务都使用自己的数据源

 部署独立,服务间虽然有调用,但要做到服务重启不影响其它服务。有利于持 续集成和持续交付。每个服务都是独立的组件,可复用,可替换,降低耦合, 易维护. 基于 docker 容器是开发.

SpringCloud 是什么?(了解)

SpringCloud 是一系列框架的集合,集成 SpringBoot,提供很多优秀服务:服务发现 和注册,统一配置中心, 负载均衡,网关, 熔断器等的一个微服务治理框架.

SpringCloud 的优势?(了解) 

因为 SpringCloud 源于 Spring,所以它的质量,稳定性,持续性都是可以保证的。  SpringCloiud 天热支持 SpringBoot 框架,就可以提高开发效率,能够实现需求。  SpringCloud 更新很快,后期支持很给力。  SpringCloud 可以用来开发微服务。

http://www.lryc.cn/news/391455.html

相关文章:

  • Qt windeployqt 打包的Qt动态库介绍
  • WordPress付费进群V2主题,多种引流方法,引私域二次变现
  • 【Linux】性能分析器 perf 详解(三):kmem、mem
  • 微信小程序怎样跳转页面?
  • 针对SVN、GIT版本管理工具进行源代码加密保护
  • js条件引用
  • 帝国CMS(EmpireCMS)漏洞复现
  • DP:解决路径问题
  • Halcon OCR字符识别(极坐标转换,字符识别)
  • 【管理咨询宝藏139】某大型快消集团公司多渠道销售管理体系方案
  • 大模型提问中包括时间的实战方案
  • 【算法】(C语言):堆排序
  • ffmpeg下载/配置环境/测试
  • C# 异步编程详解(Task,async/await)
  • qt结合vs2022安装
  • Kafka集群部署(手把手部署图文详细版)
  • 阿里Qwen2-72B大模型已是开源榜的王者,为什么还要推出其他参数模型,被其他模型打榜?
  • 7.基于SpringBoot的SSMP整合案例-表现层开发
  • 【server】3、注册中心与配置中心
  • 【大数据】—量化交易实战案例(海龟交易策略)
  • 014-GeoGebra基础篇-快速解决滑动条的角度无法输入问题
  • Diffusion模型的微调和引导
  • 零基础学MySQL:从入门到实践的完整指南
  • 澳蓝荣耀时刻,6款产品入选2024年第一批《福州市名优产品目录》
  • Frrouting快速入门——OSPF组网(一)
  • 记录通过Cloudflare部署属于自己的docker镜像源
  • 波动方程 - 在三维图中动态显示二维波动方程的解就像水面波澜起伏
  • yum命令提示 错误:rpmdb: BDB0113 Thread/process 4153/139708200269632
  • 欢乐钓鱼大师游戏攻略:在什么地方掉称号鱼?云手机游戏辅助!
  • 什么是构造函数?Java 中构造函数的重载如何实现?