本文目录如下:
一、微服务基础知识
什么是微服务架构?
微服务架构
就是根据业务
拆分软件模块
,每个模块
单独运行
,每个模块本身是
单体
。
服务拆分 有哪些注意事项?
- 1.不同微服务,
不要重复开发
相同业务。- 2.微服务
数据独立
,不要访问其它微服务的
数据库
。(
一个微服务
对应
一个数据库
)- 3.微服务可以将
自己的业务
暴露为
接口
,供其它微服务
调用
。
什么是分布式集群?
分布式系统
: 若干个程序部署在若干台不同的计算机上,它们通过
网络
协作完成一个服务。
集中式集群
: 相同的程序, 在本机部署了多次, 有了
Docker
后这很轻松。
分布式集群
: 若干个程序在
不同的计算机
上部署了
多次
。(强调
容灾能力
)
分布式的 CAP 原则?
CAP原则
: 指的是在一个分布式系统中,
一致性
(Consistency)
、
可用性
(Availability)
、
分区容错性
(Partition tolerance)
。
CAP原则
指的是: 这三个要素最多只能
同时实现两点
,不可能
三者兼顾
。
什么是 服务降级 与 服务熔断?
服务降级
:
超时
:当下游的服务响应过慢,上游服务主动停掉一些不太重要的业务,加快
响应速度
。
程序运行异常
:当
下游的服务
因为某种原因
不可用
,
上游
主动调用本地的一些
降级逻辑
,加快
响应速度
。
服务熔断
:
- 不调用该
失败的服务
,直接返回,
快速释放资源
。
微服务 中如何实现 远程调用?
- 基于
RestTemplate
发起的
http请求
实现
远程调用
。
http请求
做
远程调用
是与语言无关的调用,只要知道对方的
ip、端口、接口路径、请求参数
即可。
REST 和 RPC 远程调用有什么区别?
二、Spring Cloud基础知识
Spring Cloud 是什么?
Spring Cloud
是
一系列框架
的集合。 它利用
Spring Boot
简化了
分布式系统
的开发。
组件 – Spring Cloud 哪几个组件比较重要?
Nacos
:
注册中心
: 主管
服务的发现
与
相互调用
。
Feign
:
服务远程调用
Ribbon
:
负载均衡器
Spring Cloud Gateway
:
服务网关
Spring Cloud Config
:
配置中心
组件 – 为什么要使用这些组件?
组件 – Ngnix 和 Ribbon 有什么区别?
Nginx
是
客户端
所有请求统一交给
Nginx
,由
Nginx
进行实现
请求转发
,属于
服务器端负载均衡
。
Ribbon
是从
Eureka注册中心
上获取
服务注册信息列表
,缓存到本地,然后在
本地
实现
轮询负载均衡
策略。
Nginx
适合于
服务器端实现负载均衡
比如
Tomcat
。
Ribbon
适合与在微服务中
RPC远程调用
实现
本地服务负载均衡
,比如
Dubbo
、
SpringCloud
中都是采用
本地负载均衡
。
Ribbon 负载均衡的原理?
版权声明:本文为affluent6原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。