本文并非原创,是本人为了将自己的学习过程落地,在网络上收集文章,并结合自己的理解整理而成。行文若有错漏之处,希望各位看官不吝指出。
一 分布式基础概念
集群是个物理形态,分布式是个工作方式。
集群:集群是一组相互独立的、通过高速网络互联的计算机。其实就是将互相联通的独立计算机视为一个组合,这个组合就叫集群。
分布式:多个系统协同合作完成一个特定任务的系统
远程调用:在分布式系统中,各个服务可能处于不同主机,但是服务之间不可避免的相互调用,我们成为远程调用
springcloud中使用HTTP+JSON的方式完成远程调用
本项目使用基础组件一览
SpringCloud Alibaba-Nacos 注册中心(服务发现/注册)≈Eurka
SpringCloud Alibaba-Nacos 配置中心(动态配置管理)≈SpringCloud Config
SpringCloud-Ribbon 负载均衡
SpringCloud-Feign 声明式HTTP客户端(调用远程服务)?此处应该为OpenFeign
SpringCloud Alibaba-Sentinel 服务容错(限流、降级、熔断)≈Hystrix
SpringCloud-Geteway API网关(webflux编程模式)≈Zuul
SpringCloud-Sleuth:调用链监控
SpringCloud Alibaba-Seata 原Fescar,即分布式事务解决方案
二、Nacos Discovery Nacos作为注册中心
服务注册/发现&注册中心
A服务调用B服务,A服务并不知道B服务当前在哪几台服务器有,那些是正常的,那些服务已经下线。解决这个问题可以引入注册中心。
配置中心用来几种管理微服务的配置信息。