分布式的基础概念

微服务

微服务架构风格,就像是把一个单独的应用程序开发为一套小服务,每个小服务运行在自己的进程中,并使用轻量级机制通信(各微服务之间需要交换数据等),为了减少通信效率,通常是HTTP API,这些服务围绕业务能力来构建,并通过完全自动化部署机制来独立部署。
简而言之:拒绝大型单体应用,基于业务边界进行服务微化拆分,各个服务独立部署运行。

集群&分布式&节点

集群是个物理形态,分布式是工作方式。
分布式是指将不同的业务分布在不同的地方。
集群是指将几台服务器集中在一起,实现同一业务。
分布式中的每一个节点,都可以做集群,而集群并不一定就是分布式的。
节点:集群中的一个服务器。

远程调用

在分布式系统中,各个服务可能出于不同主机,但服务之间不可避免的需要相互调用,我们称为远程调用
SpringCloud中使用HTTP+JSON的方式完成远程调用。

负载均衡

分布式系统中,A服务需要调用B服务,B服务在多台机器中都存在,A调用任意一个服务器均可完成功能。
不要让服务器太忙或者太闲
常见的负载均衡算法:轮询、最小连接、散列

服务注册/发现&注册中心

A服务调用B服务,A服务并不知道B服务当前在哪几台服务器有,哪些正常的,哪些服务已经下线,解决这个问题引入注册中心。

配置中心

每一个服务都有大量的配置,并且每个服务都可能部署在多台机器上。我们经常需要变更配置,我们可以让每个服务在配置中心获取自己的配置。
配置中心用来集中管理微服务的配置信息

服务熔断&服务降级

服务熔断(被动)
设置服务的超时,当被调用的服务经常失败到达某个阈值,我们可以开启断路保护机制,后来的请求不再去调用这个服务。本地直接返回默认的数据。
服务降级(主动)
当系统处于高峰期,可以让非核心业务降低运行。

API网关

在微服务架构中,API Gateway作为整体架构的重要组件,它抽象了微服务中都需要的公共功能,同时提供了客户端负载均衡,服务自动熔断,灰度发布,统一认证,限流流控,日志统计等丰富的功能,帮助我们解决很多API管理难题。

你可能感兴趣的:(分布式的基础概念)