本文内容
前言
Seata 有四种事务模式,分别是 AT、TCC、Saga 和 XA,每种模式各有优缺点,适用的数据库也不同。本文将介绍 Seata 默认、常用的 AT 模式。
在学习分布式事务原理前,确保你已经对本地事务 ACID 原则,事务隔离级别、日志和锁等知识有一定的了解。
前言
Seata 有四种事务模式,分别是 AT、TCC、Saga 和 XA,每种模式各有优缺点,适用的数据库也不同。本文将介绍 Seata 默认、常用的 AT 模式。
在学习分布式事务原理前,确保你已经对本地事务 ACID 原则,事务隔离级别、日志和锁等知识有一定的了解。
单体应用被拆分成微服务应用,原来的三个模块被拆分成三个独立的应用,分别使用三个独立的数据源,业务操作需要调用三个服务来完成。例如,用户购买商品的业务逻辑,整个业务逻辑由 3 个微服务提供支持:
Sentinel 是面向分布式的 流量治理 组件,主要以流量为切入点,从 流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护 等多个维度来帮助开发者 保障微服务的稳定性。
流量控制:任意时间到来的请求往往是随机不可控的,而系统的处理能力是有限的。我们需要 根据系统的处理能力对流量进行控制。Sentinel 作为一个调配器,可以根据需要 把随机的请求调整成合适的 “形状”:
Nacos 即 Naming and Configuration Service,是一个动态服务注册与发现、配置管理和服务管理的平台。
Nacos 的关键特性包括:
SpringCloudAlibaba 简称 SCA,官网:https://sca.aliyun.com/zh-cn/
SpringCloudAlibaba 致力于提供 微服务开发的一站式解决方案。此项目 包含开发分布式应用服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。
前言
在微服务架构中,系统的 可用性 是非常重要的,为了避免高并发下服务的崩溃,通常会使用 熔断、限流、降级 等措施。本文就先来讲解服务熔断是什么,它是如何提高系统的可用性的,服务出现抖动了怎么办?
前言
当通过注册中心获取到了某个服务的可用节点列表后,就可以对节点发起请求了。
但是,这个列表中一般都 包含了多个节点,那客户端应该选择哪一个呢?这就需要引入 负载均衡 了。
前言
想要构建微服务、注册服务,首先要解决的是 服务提供者如何发布服务,服务消费者如何引用服务。即 上一章 中所讲的 服务的接口名是什么?传递的参数是什么?返回值是什么?和一些接口描述信息等。
回顾一下,常见的服务发布和引用的方式有 RESTful API、XML 配置和 IDL 文件(Interface Definition Language)三种。
我们定义好服务后,如何让调用者知道该服务的地址呢?也就是怎么知道该服务部署到哪台服务器上的?这就需要引入一个第三方了,即 服务注册与发现中心。
前言
在前面两篇文章中,讲解了什么是微服务,何时进行服务拆分,拆分后会到来什么问题等。
这篇文章将带你走进微服务架构,看看它的各个组成部分,主要的几个基本组件如下:
一次微服务之间的调用流程如下:
在服务调用过程中:
微服务架构的模块图:
前言
上一篇文章中讲解了什么是微服务,微服务的演进。那么我们应该 在什么时候进行服务的拆分,如何拆分?拆分后会到来哪些问题,如何解决?这些都是微服务需要考虑的问题。
虽然现在微服务、容器化非常火爆,但并不意味着我们的每个项目都直接无脑使用微服务架构,需要根据项目实际的体量来选择。