跳至主要內容
Seata AT 模式
本文内容

前言

Seata 有四种事务模式,分别是 AT、TCC、Saga 和 XA,每种模式各有优缺点,适用的数据库也不同。本文将介绍 Seata 默认、常用的 AT 模式。

在学习分布式事务原理前,确保你已经对本地事务 ACID 原则,事务隔离级别、日志和锁等知识有一定的了解。


AruNi_Lu大约 9 分钟微服务架构SpringCloudAlibaba
Seata 入门
本文内容

1. 分布式事务问题

单体应用被拆分成微服务应用,原来的三个模块被拆分成三个独立的应用,分别使用三个独立的数据源,业务操作需要调用三个服务来完成。例如,用户购买商品的业务逻辑,整个业务逻辑由 3 个微服务提供支持:

  • 仓储服务:对给定的商品扣除仓储数量。
  • 订单服务:根据采购需求创建订单。
  • 帐户服务:从用户帐户中扣除余额。

AruNi_Lu大约 15 分钟微服务架构SpringCloudAlibaba
Sentinel 入门
本文内容

1. 什么是 Sentinel

Sentinel 是面向分布式的 流量治理 组件,主要以流量为切入点,从 流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护 等多个维度来帮助开发者 保障微服务的稳定性

流量控制:任意时间到来的请求往往是随机不可控的,而系统的处理能力是有限的。我们需要 根据系统的处理能力对流量进行控制。Sentinel 作为一个调配器,可以根据需要 把随机的请求调整成合适的 “形状”


AruNi_Lu大约 18 分钟微服务架构SpringCloudAlibaba
Nacos 入门
本文内容

1. 什么是 Nacos

Nacos 即 Naming and Configuration Service,是一个动态服务注册与发现、配置管理和服务管理的平台。

Nacos 的关键特性包括:

  • 服务发现和服务健康监测
    • Nacos 支持基于 DNS 和基于 RPC 的服务发现。服务提供者使用 原生SDKOpenAPI、或一个独立的Agent TODO注册 Service 后,服务消费者可以使用DNS TODOHTTP&API查找和发现服务。
    • Nacos 提供对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求。还提供了统一的健康检查仪表盘,帮助您根据健康状态管理服务的可用性及流量。
  • 动态配置服务
    • 动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。
    • 动态配置消除了配置变更时重新部署应用和服务的需要,让配置管理变得更加高效和敏捷。
    • Nacos 提供了一个简洁易用的UI (控制台样例 Demo) 帮助您管理所有的服务和应用的配置。
  • 动态 DNS 服务
    • 动态 DNS 服务支持权重路由,让您更容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单DNS解析服务。

AruNi_Lu大约 13 分钟微服务架构SpringCloudAlibaba
SpringCloudAlibaba 概览
本文内容

1. SpringCloudAlibaba 是什么

SpringCloudAlibaba 简称 SCA,官网:https://sca.aliyun.com/zh-cn/

SpringCloudAlibaba 致力于提供 微服务开发的一站式解决方案。此项目 包含开发分布式应用服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。


AruNi_Lu大约 2 分钟微服务架构SpringCloudAlibaba
熔断 - 如何防止抖动
本文内容

前言

在微服务架构中,系统的 可用性 是非常重要的,为了避免高并发下服务的崩溃,通常会使用 熔断、限流、降级 等措施。本文就先来讲解服务熔断是什么,它是如何提高系统的可用性的,服务出现抖动了怎么办?

1. 什么是服务熔断?


AruNi_Lu大约 7 分钟微服务架构服务熔断限流与降级
常见负载均衡算法
本文内容

前言

当通过注册中心获取到了某个服务的可用节点列表后,就可以对节点发起请求了。

但是,这个列表中一般都 包含了多个节点,那客户端应该选择哪一个呢?这就需要引入 负载均衡 了。

1. 负载均衡有什么用?


AruNi_Lu大约 12 分钟微服务架构负载均衡
什么是服务注册与发现
本文内容

前言

想要构建微服务、注册服务,首先要解决的是 服务提供者如何发布服务,服务消费者如何引用服务。即 上一章 中所讲的 服务的接口名是什么?传递的参数是什么?返回值是什么?和一些接口描述信息等

回顾一下,常见的服务发布和引用的方式有 RESTful API、XML 配置和 IDL 文件(Interface Definition Language)三种。

我们定义好服务后,如何让调用者知道该服务的地址呢?也就是怎么知道该服务部署到哪台服务器上的?这就需要引入一个第三方了,即 服务注册与发现中心


AruNi_Lu大约 11 分钟微服务架构服务注册与发现
初探微服务架构
本文内容

前言

在前面两篇文章中,讲解了什么是微服务,何时进行服务拆分,拆分后会到来什么问题等。

这篇文章将带你走进微服务架构,看看它的各个组成部分,主要的几个基本组件如下:

  • 服务描述;
  • 注册中心;
  • 服务框架;
  • 服务监控;
  • 服务追踪;
  • 服务治理。

一次微服务之间的调用流程如下:

  1. 服务提供者 按照一定格式的服务描述,向注册中心注册服务,声明自己能提供哪儿服务以及服务所在的地址是什么,完成服务发布;
  2. 服务消费者向注册中心发起请求,查询要调用服务的地址,然后 按照约定好的通信协议发起请求 即可得到结果;

在服务调用过程中:

  • 服务的请求耗时、调用次数等指标会被服务追踪组件记录下来,用于故障问题的定位;
  • 如果发现请求量过大、出现调用失败等情况,则将通过服务降级、熔断、重试等服务治理手段保证系统的可用性。

微服务架构的模块图:

img


AruNi_Lu大约 8 分钟微服务架构基础
服务如何拆分
本文内容

前言

上一篇文章中讲解了什么是微服务,微服务的演进。那么我们应该 在什么时候进行服务的拆分,如何拆分?拆分后会到来哪些问题,如何解决?这些都是微服务需要考虑的问题。

1. 什么时候应该拆分服务?

虽然现在微服务、容器化非常火爆,但并不意味着我们的每个项目都直接无脑使用微服务架构,需要根据项目实际的体量来选择。


AruNi_Lu大约 5 分钟微服务架构基础
2