文章目录
- 课程介绍 ( 本章了解即可,可以略过)
- 1、微服务
- 2、集群&分布式&节点
- 3、远程调用
- 4、负载均衡
- 5、服务注册/发现&注册中心
- 6、配置中心
- 7、服务熔断&服务降级
- 8、API网关
- [one more thing](#one more thing)
课程介绍 ( 本章了解即可,可以略过)
1、微服务
2、集群&分布式&节点
3、远程调用
4、负戟均衡
5、服务注册/发现&注册中心
6、配置中心
7、服务熔断&服务降级
8、API网关
1、微服务
微服务
架构风格
- 就像是
把一个单独的应用程序开发为一套小服务
- 每个小服务运行在自己的进程中,
并使用轻量级机制通信,通常是 HTTP API
。 - 这些服务围绕业务能力来构建,并通过完全自动化部署机制来独立部署。
- 这些服务使用不同的编程语言书写,以及不同数据存储技术,
- 并保持最低限度的集中式管理。
简而言之:
拒绝
大型单体应用
基于业务边界
进行服务微化拆分
各个服务独立部署运行
2、集群&分布式&节点
2.1、定义
分布式
是指将不同的业务分布在不同的地方
集群
是指将几台服务器集中在一起,实现同一业务
节点
:是指集群中的一个服务器
集群是个物理形态,分布式是个工作方式
。
只要是一堆机器
,就可以叫集群
- 他们是不是一起协作着干活,这个谁也不知道;《分布式系统原理与范型》定义:"分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统"分布式系统(distributedsystem)是建立在网络之上的软件系统。
2.2、示例
京东是一个分布式系统
,众多业务运行在不同的机器,所有业务构成一个大型的业务集群。每一个小的业务,比如用户系统,访问压力大的时候一台服务器是不够的。我们就应该将用户系统部署到多个服务器,也就是每一个业务系统也可以做集群化;
分布式中的每一个节点,都可以做集群
而集群并不一定是分布式
3、远程调用
在分布式系统中,各个服务可能处于不同主机
,但是服务之间不可避免的需要互相调用
,我们称为远程调用
。
SpringCloud
中使用 HTTP+JSON 的方式完成远程调用
4、负载均衡
分布式系统中
,A服务需要调用B服务,B服务在多台机器中都存在,A调用任意一个服务器均可完成功能
。
为了使每一个服务器都不要太忙或者太闲
,我们可以负载均衡的调用
每一个服务器,提升
网站的健壮性
。
常见的负裁均衡算法:
- 轮询 :
为第一个请求选择健康池中的第一个后端服务器
,然后按顺序往后依次选择
,直到最后一个,然后循环
。 - 最小连接 :
优先选择连接数最少
,也就是压力最小的后端服务器
,在会话较长的情况下可以考虑采取这种方式。 - 散列 : 根据
请求源的IP 的散列(hash)来选择要转发的服务器
。这种方式可以一定程度上保证特定用户能连接到相同的服务器。如果
你的应用需要处理状态而要求用户能连接到和之前相同的服务器
,可以考虑采取这种方式
,
5、服务注册/发现&注册中心
A服务调用B服务,A服务并不知道B服务当前在哪几台服务器有,哪些正常的,哪些服务已经下线。解决这个问题可以引入注册中心;
如果某些服务下线,我们其他人可以实时的感知到其他服务的状态,从而避免调用不可用的服务
6、配置中心
配置中心 :用来集中管理微服务的配置信息
- 每一个服务最终都有大量的配置
- 每个服务都可能部署在多台机器上
- 我们经常需要变更配置
我们可以让每个服务在配置中心获取自己的配置
。
7、服务熔断&服务降级
在微服务架构中,微服务之间通过网络进行通信,存在相互依赖,当其中一个服务不可用时有可能会造成
雪崩效应。要防止这样的情况,必须要有容错机制来保护服务
。
7.1、服务熔断
设置服务的超时,当被调用的服务经常失败到达某个值
,我们可以开启断路保护机制
,后来的请求不再去调用这个服务
。本地直接返回默认的数据
7.2、服务降级
在运维期间,当系统处于高峰期
,系统资源紧张
,我们可以让非核心业务降级运行降级
。
降级:某些服务不处理,或者简单处理
【抛异常、返回 NULL、调用 Mock 数据、调用 Fallback 处理逻辑】。
8、API网关
在微服务架构中,API Gateway作为整体架构的重要组件,
- 它
抽象
了微服务中
都需要的公共功能
- 同时提供了
客户端负载均衡
服务自动熔断
灰度发布
统一认证
限控
日志统计
- 等
丰富的功能,帮助我们解决很多 API管理难题。
one more thing
程序员的烦恼
为激活编程软件到处找激活码(JetBrains 全家通)
- 苦于JetBrains 正版授权太贵而放弃
- 学习资料贵且不成体系而躺平
关注公众号金榜探云手
你可以获得什么?
JetBrains 最新激活码,永久更新(只供娱乐,切勿商用)
公众号回复:00cs
JetBrains 正版授权,全主题、全插件免费使用,一年一杯咖啡钱
, 公众号回复:vip
IT 技术视频共享(国内外全系列,只对粉丝开放)
付费版Idea百科全书,和Pycharm使用百科全书全部输出整理了,这些工具都掌握了对编码效率肯定是有本质上的提升,配合Github Copilot基本能让工具完成大部分开发工作,专注完成业务实现就好。
IDEA付费版使用百科全书
https://ziby0nwxdov.feishu.cn/docx/MiCfdogB4omIa9xlW50cByiGn5n
Pycharm付费版使用百科全书 https://ziby0nwxdov.feishu.cn/docx/DArFdVFQpomfUvxV7xZcCwXYn0c
废话不多说上教程:(动画教程 + 图文教程)
一、动画教程
激活 与 升级(至最新版本)
激活
升级最新版本