面试题--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.mzph.cn/bicheng/39942.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

博途S7-1500PLC“虚轴“编程应用

1、CODESYS如何添加虚轴 如何添加虚轴(AM400PLC)-CSDN博客文章浏览阅读164次。EtherCAT运动控制总线启用的时候,选择EtherCAT总线任务周期。选择好后,选择点击添加。https://rxxw-control.blog.csdn.net/article/details/139898985虚轴是利用软件算法实现的运动控制轨迹规划…

HarmonyOS ArkUi 官网踩坑:单独隐藏导航条无效

环境: 手机:Mate 60 Next版本: NEXT.0.0.26 导航条介绍 导航条官网设计指南 setSpecificSystemBarEnabled 设置实际效果: navigationIndicator:隐藏导航条无效status:会把导航条和状态栏都隐藏 官方…

公网IP变更自动微信通知与远程执行命令的C++开源软件

基本功能 智能公网IP变更监测与微信通知 一旦检测到公网IP地址发生变更,系统将自动通过预设的QQ邮箱(该邮箱与微信绑定,实现微信通知)发送新IP地址通知。同时,软件会即时更新本地配置文件中的IP地址及变更时间&#…

深度学习标注文件格式转换

json转xml 原始数据集文件夹中图片格式为bmp&#xff0c;标注文件为json&#xff0c;图片和标注文件放在同一个文件夹下面&#xff0c;将json转为xml格式&#xff0c;图片和标注文件分别存放在一个文件夹下面。 headstr """\ <annotation><folder>…

chatgpt工作原理

ChatGPT的工作原理主要基于深度学习技术和自然语言处理&#xff08;NLP&#xff09;领域中的Transformer模型&#xff0c;特别是GPT&#xff08;Generative Pre-trained Transformer&#xff09;模型的扩展。下面我将详细介绍其工作原理及其优势。 工作原理 预训练模型&#…

import和require的区别

import是ES6标准中的模块化解决方案&#xff0c;require是node中遵循CommonJS规范的模块化解决方案。 后者支持动态引入&#xff0c;也就是require(${path}/xx.js)&#xff0c;前者目前不支持&#xff0c;但是已有提案。 前者是关键词&#xff0c;后者不是。 前者是编译时加…

帮人安装打印机驱动踩过的坑

自从当了程序员&#xff0c;总被人认为是无所不能。安装系统&#xff0c;组装电脑都会。有啥只要跟电脑沾点边的事情都来找我。这不今天就被叫去帮人安装打印机驱动。 问题描述 以前老电脑都可以用打印机的&#xff0c;自从换新电脑后就不行了。别人可以用&#xff0c;就他的新…

HNU电子测试平台与工具2_《计算机串口使用与测量》

&#xff08;这个有留word哈哈&#xff09; 4.1 4.2 Linux 操作系统平台 一、实验目的 了解 Linux 系统文件系统的基本组织了解 Linux 基本的多用户权限系统熟练使用 ls、cd、cat、more、sudo、gcc、vim 等基本命令会使用 ls 和 chmod 命令查看和修改文件权限 二、实…

【C++知识点总结全系列 (06)】:STL六大组件详细总结与分析- 配置器、容器、迭代器、适配器、算法和仿函数

STL六大组件目录 前言1、配置器(1)What(2)Why(3)HowA.调用new和delete实现内存分配与销毁B.STL Allocator (4)allocator类A.WhatB.HowC.allocator的算法 2、容器(1)What(2)Which&#xff08;有哪些容器&#xff09;(3)序列容器&#xff08;顺序容器&#xff09;A.WhichB.array&…

计算机网络知识普及之四元组

在涉及到TCP/UDP等IP类通信协议时&#xff0c;存在四元组概念 这里只是普及使用 先来一些前置知识&#xff0c;什么是IP协议&#xff1f; IP协议全称为互联网协议&#xff0c;处于网络层中&#xff0c;主要作用是标识网络中的设备&#xff0c;每个设备的IP地址是唯一的。 在网…

Spring Boot应用的性能监控与优化

Spring Boot应用的性能监控与优化 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将探讨如何在Spring Boot应用中进行性能监控与优化&#xff0c;以提升…

【JVM排查问题】JProfiler性能分析工具连接远程服务器Docker容器中的Java服务

1、下载JProfiler https://www.ej-technologies.com/download/jprofiler/version_13 下载Windows版本以及Linux版本 Windows用于可视化、Linux用于在Docker容器中启动 2、将Linux版本的JProfiler上传到Docker容器中&#xff0c;宿主机cp命令到容器中 docker cp /home/data/s…

像学Excel 一样学 Pandas系列-创建数据分析维度

嗨&#xff0c;小伙伴们。又到喜闻乐见的Python 数据分析王牌库 Pandas 的学习时间。按照数据分析处理过程&#xff0c;这次轮到了新增维度的部分了。 老样子&#xff0c;我们先来回忆一下&#xff0c;一个完整数据分析的过程&#xff0c;包含哪些部分内容。 其中&#xff0c…

CAM350如何添加走线?

在CAM350中如何添加走线? 有时候由于PCB文件丢失或其它原因,只有GERBER文件,这时候LAYOUT工程师就只能使用CAM350在GERBER里面修改。 那在CAM350里面如何添加走线呢? 操作方法如下: 1、选择菜单栏Add 选择Line 2、在走线前,要先设置D码,就是走线的形状和宽度。必需选择…

【服务器部署】Jenkins配置前端工程自动化部署

作者介绍&#xff1a;本人笔名姑苏老陈&#xff0c;从事JAVA开发工作十多年了&#xff0c;带过刚毕业的实习生&#xff0c;也带过技术团队。最近有个朋友的表弟&#xff0c;马上要大学毕业了&#xff0c;想从事JAVA开发工作&#xff0c;但不知道从何处入手。于是&#xff0c;产…

BIOS中的设置虽然不少,但其实大部分时候只需进行一些简单的调整

序言 浏览BIOS可能会让人感到不知所措,因为要考虑的设置太多了。但是,你应该在BIOS中进行一些简单的调整,以提高系统的性能和稳定性。我们将向你展示其中的一些调整,并解释你可能想要使用它们的时间和原因。 用密码保护你的BIOS 虽然我们很小心地对用户帐户进行密码保护…

[译]Reactjs性能篇

英文有限&#xff0c;技术一般&#xff0c;海涵海涵&#xff0c;由于不是翻译出身&#xff0c;所以存在大量的瞎胡乱翻译的情况&#xff0c;信不过我的&#xff0c;请看原文&#xff5e;&#xff5e; 原文地址&#xff1a;https://facebook.github.io/react/docs/advanced-per…

JavaSE阶段面试题(一)

目录 1.int a 1, int b 1, Integer c 1, Integer d 1&#xff1b;四个区别和联系&#xff0c;以及c和d是同一个吗&#xff1f; 2.为什么重写HashCode必须重写euqals&#xff0c;两者之间的关系&#xff1f; 3.创建对象的方式有哪些 4.重写和重载的区别 5.抽象类和接口…

day02-广播机制

广播机制 广播是numpy对不同形状的数组进行数值计算的方式&#xff0c;对数组的算术运算通常在相应的元素上进行 1.如果两个数组a和b形状相同&#xff0c;即满足a.shape b.shape&#xff0c;那么a*b的结果就是a与b数组对应位相乘。这要求维数相同且各维度的长度相同 a np.a…

Windows和Linux服务器的SSL证书续订方法

在现代互联网中&#xff0c;SSL证书已经成为保障网站安全和数据隐私的必备工具。SSL证书到期后&#xff0c;服务器管理员需要及时续订SSL证书&#xff0c;以确保网站的正常访问和安全性。本文将详细介绍在Windows和Linux服务器上续订SSL证书的步骤。 生成CSR&#xff08;证书签…