1.微服务架构优缺点

1)单体应用

开发的效率比较低,由于代码量大,项目启动缓慢,部署麻烦,后期难以维护。

2)服务拆分

分为多个小应用,提高了开发效率,降低了代码的耦合程度,不同的服务可以采用不同的语言,提高了灵活性;小的改动进行快捷部署,方便维护。

3)拆分的依据

原则就是高内聚低耦合,每个服务实现单一的功能,如订单服务,商品服务。

2.Spring Cloud Netflix和Spring Cloud Alibaba包括哪些组件,作用是什么?

Spring Cloud Netflix 组件名称 组件作用
Eureka 服务注册,已停止维护
Consul 服务注册
OpenFiegn 服务发现(Ribbon)
Config 服务配置
Hystrix 服务熔断与降级
Zuul 服务网关
GateWay 服务网关
Spring Cloud Alibaba nacos 服务注册
nacos 服务配置
Sentinel 服务熔断与降级
Seata 分布式事务

3.Nacos是CP还是AP?

nacos默认是AP,也可支持CP。CAP定义

4.Ribbon服务调用的原理?

Ribbon主要功能是服务调用和负载均衡,那么对于服务调用是如何实现的?在代码中使用的是RestTemplate,需要调用时指定请求路径和参数,其中请求路径中包含服务名。实际上在底层,它有一个拦截器,在发送请求时,会把url中的域名(也就是服务名)取出来,根据服务名在注册中心查找相应的实例列表,包括ip和端口信息,将这些数据缓存到本地,然后使用负载均衡的策略去调用服务,默认是轮询。

5.nacos注册中心原理

当服务启动时需要去注册服务时,就把自己的信息注册到注册中心,包括服务名,ip,端口等信息。

当其他服务需要调用服务时(默认自己已注册),会根据服务名在注册中心查询实例列表,并将此列表缓存到本地,然后通过ribbon进行服务的调用。

在注册和发现的过程中,nacos有心跳检测机制,nacos客户端(自己的应用)通过不断的向注册中心发送心跳,注册中心根据心跳情况来判断服务是否正常,当服务下线后,注册中心会把注册表中的这个实例删除,同时也会即使通知客户端。客户端也会定时根据服务名向注册中心拉取最新的实例列表到本地并覆盖本地缓存(底层是ribbon实现)。也就是说对于服务的感知是动态的,也是双向的。

但对于nacos,不同版本其底层实现原理是不一样的,主要区别在于1.4.x和2.x:

1.4.x

服务端是一个基于SpringBoot开发的web应用,提供了许多htpp接口。当系统启动需要去注册服务时,其内部就是去调用内部的接口。

2.x

优化了请求的方式,将http协议换为高性能的grpc远程调用,也就是说客户端和服务端会保持长连接。

SpringCloud专题面试的更多相关文章

  1. SpringCloud专题之开篇及Eureka

    声明: 本专题部分理论来自翟永超老师的<Spring Cloud微服务实战>.建议大家看原书. 开篇 微服务简单来说是系统架构上的一种设计风格,他的主旨是将一个原本独立且庞大的系统按照不同 ...

  2. 玩转SpringCloud(F版本) 二.服务消费者(1)ribbon+restTemplate

    上一篇博客有人问我,Springcloud系列会不会连载 ,大家可以看到我的标签分类里已经开设了SpringCloud专题,所以当然会连载啦,本人最近也是买了本书在学习SpringCloud微服务框架 ...

  3. 腾讯面试Android高级岗,居然被一个多线程基础面倒了?

    前言 一个在深圳从事开发五年的老友一个月前从原公司辞职后,昨天去腾讯总部面试Android高级岗,一面的时候,自我介绍后,陆陆续续问了很多问题,有着五年的从业经验很多项目开发的技术问题都回答的很通顺, ...

  4. Spring Cloud专题之二:OpenFeign

    欢迎查看上一篇博客:SpringCloud专题之一:Eureka . OpenFeign是一种声明式的webservice客户端调用框架.你只需要声明接口和一些简单的注解,就能像使用普通的Bean一样 ...

  5. Spring Cloud专题之三:Hystrix

    在微服务架构中,我们将系统拆分成很多个服务单元,各单位的应用间通过服务注册与订阅的方式相互依赖.由于每个单元都在不同的进程中运行,依赖通过远程调用的方式执行,这样就有可能因为网络原因或是依赖服务自身问 ...

  6. Spring Cloud 专题之四:Zuul网关

    书接上回: SpringCloud专题之一:Eureka Spring Cloud专题之二:OpenFeign Spring Cloud专题之三:Hystrix 经过前面三章对Spring Cloud ...

  7. Spring Cloud专题之五:config

    书接上回: SpringCloud专题之一:Eureka Spring Cloud专题之二:OpenFeign Spring Cloud专题之三:Hystrix Spring Cloud 专题之四:Z ...

  8. Spring Cloud 专题之六:bus

    书接上回: SpringCloud专题之一:Eureka Spring Cloud专题之二:OpenFeign Spring Cloud专题之三:Hystrix Spring Cloud 专题之四:Z ...

  9. Spring Cloud 专题之七:Sleuth 服务跟踪

    书接上回: SpringCloud专题之一:Eureka Spring Cloud专题之二:OpenFeign Spring Cloud专题之三:Hystrix Spring Cloud 专题之四:Z ...

  10. 这一篇文章帮你搞定Java(含Java全套资源)

    当下想学习Java开发的人越来越多,对于很多零基础的人来说,没有相关的视频教程及相关的学习线路,学起来是一件很费劲的事情,还有很多人从网上及其它渠道购买视频,这些视频资料的价格对于刚毕业的大学生来说也 ...

随机推荐

  1. Product-Mechanics: 塑料:开模+挤塑量产

    1. "业务广告"+"金属模具样品": 2. 生产设备: 3. 原料 4. 需求图:3D模型图: 5. 模具量产的成品

  2. 【转】-Java实现生产者和消费者的5种方式

    Java实现生产者和消费者的5种方式 该博客转载自​掘金​的​Java实现生产者和消费者的5种方式 1. 前言 生产者和消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一个存储空间 ...

  3. mpiCC与mpicc命令详解

    mpiCC Compiles and links MPI programs written in C++//编译链接MPI C++源程序 Description This command can be ...

  4. 国内免费CDN,就问你要不要薅羊毛?

    为了更好地适应国内用户的需求,EdgeOne之前提供的免费版服务主要是面向国外站点的,这对于国内的小伙伴们来说,使用起来确实不太方便.为了改善这一点,腾讯云近期推出了全新的国内站免费版套餐,真正做到无 ...

  5. 打造“云上超算引擎”,天翼云E-HPC服务赋能福建农林大学科研提速!

    农业是国家发展的基础命脉,推进农业科研现代化,是实现粮食安全.生态安全.生物安全的关键.近日,天翼云携手中国电信福建公司深入福建农林大学开展技术调研,精准洞察科研需求,助力该校正式开通天翼云弹性高性能 ...

  6. [深度学习] 大模型学习4-RAG技术全景解析

    在大语言模型基础知识一文中,检索增强生成(Retrieval-Augmented Generation,简称 RAG)技术作为构建大语言模型(Large Language Model,简称 LLM)应 ...

  7. MyEMS能源管理系统后台配置-组合设备管理

    MyEMS开源能源管理系统适用于建筑.工厂.商场.医院.园区的电.水.气等能源数据采集.分析.报表,还有光伏.储能.充电桩.微电网.设备控制.故障诊断.工单管理.人工智能优化等可选功能. 本文介绍My ...

  8. [笔记]KMP算法 - 上(算法详解)

    算法详解 KMP 是一种字符串匹配算法,可以在线性的时间复杂度内解决字符串的"模式定位"问题,即: 在字符串 \(A\) 中查找字符串 \(B\) 出现的所有位置. 我们称 \(A ...

  9. [题解]CF33C Wonderful Randomized Sum

    CF33C Wonderful Randomized Sum 我们可以发现,如果两区间不交叉也不会影响到结果,所以我们只需要考虑不交叉的情况即可. 我们所选择的前缀\(1\sim i\)应满足区间和最 ...

  10. css清除浮动(推荐)

    为什么要清除浮动呢? ---因为子元素设置浮动后,父级元素不能自动被撑开,影响页面布局. 解决方法有很多种,最为推荐一种,其他不多说了,一种足够. <div class='parent'> ...