随笔分类 - Springcloud 基础知识
1
Spring Cloud 是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过 Spring Boot 风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
摘要:本文在 “Springcloud基础知识(19)- Spring Cloud Alibaba Seata (五) | Nacos+Seata+Openfeign 分布式事务实例(账户服务)” 里 SpringcloudDemo05 项目基础上,创建 SeataOrder 子模块,协同 SeataSt
阅读全文
摘要:本文在 “Springcloud基础知识(18)- Spring Cloud Alibaba Seata (四) | Nacos+Seata+Openfeign 分布式事务实例(库存服务)” 里 SpringcloudDemo05 项目基础上,创建 SeataAccount 子模块。 1. 创建数据
阅读全文
摘要:我们以电商系统为例,来演示下业务系统如何整合 Seata。在电商系统中,用户下单购买一件商品,简化为 3 个服务提供支持: Order(订单服务):创建和修改订单。 Storage(库存服务):对指定的商品扣除仓库库存。 Account(账户服务) :从用户帐户中扣除商品金额。当用户从这个电商网站购
阅读全文
摘要:本文使用 “Springcloud基础知识(15)- Spring Cloud Alibaba Seata (一) | Seata 简介、事务模式、Seata Server” 里的 Seata Server 1.4.2,演示整合 Nacos 后如何使用事务分组。 1. 配置 db 存储模式 在 Se
阅读全文
摘要:1. 简介 事务分组:Seata 的资源逻辑,可以按微服务的需要,在应用程序(客户端)对自行定义事务分组,每组取一个名字。 集群:Seata-Server 服务端一个或多个节点组成的集群 cluster。 应用程序(客户端)使用时需要指定事务逻辑分组与 Seata 服务端集群的映射关系。 事务分组后
阅读全文
摘要:随着业务的不断发展,单体架构已经无法满足我们的需求,分布式微服务架构逐渐成为大型互联网平台的首选,但所有使用分布式微服务架构的应用都必须面临一个十分棘手的问题,那就是 “分布式事务” 问题。在分布式微服务架构中,几乎所有业务操作都需要多个服务协作才能完成。对于其中的某个服务而言,它的数据一致性可以交
阅读全文
摘要:1. 流量控制 任何系统处理请求的能力都是有限的,但任意时间内到达系统的请求量往往是随机且不可控的,如果在某一个瞬时时刻请求量急剧增,那么系统就很有可能被瞬时的流量高峰冲垮。 为了避免此类情况发生,都需要根据系统的处理能力对请求流量进行控制,这就是常说的“流量控制”,简称“流控”。 Sentinel
阅读全文
摘要:Sentinel 是由阿里巴巴中间件团队开发的开源项目,是一种面向分布式微服务架构的轻量级高可用流量控制组件。Sentinel 主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度帮助用户保护服务的稳定性。Sentinel 具有以下优势: (1) 丰富的应用场景:Sentinel 承接了
阅读全文
摘要:1. Nacos 配置中心 Nacos Server 还可以作为配置中心,对 Spring Cloud 应用的外部配置进行统一地集中化管理。而我们只需要在应用的 POM 文件中引入 spring-cloud-starter-alibaba-nacos-config 即可实现配置的获取与动态刷新。 从
阅读全文
摘要:Spring Cloud 本身并不是一个拿来即可用的框架,它是一套微服务规范,这套规范共有两代实现。第一代实现: Spring Cloud Netflix,第二代实现: Spring Cloud Alibaba。2018 年 12 月12 日,Netflix 公司宣布 Spring Cloud Ne
阅读全文
摘要:在 “Springcloud基础知识(9)- Spring Cloud Config (一) | 搭建 Config 服务端和客户端” 里 SpringcloudDemo03 项目基础上,我们创建了 ConfigServer 和 ConfigClient 子模块。我们修改 Gitee 上的配置文件
阅读全文
摘要:在分布式微服务系统中,几乎所有服务的运行都离不开配置文件的支持,这些配置文件通常由各个服务自行管理,以 properties 或 yml 格式保存在各个微服务的类路径下,例如 application.properties 或 application.yml 等。这种将配置文件散落在各个服务中的管理方
阅读全文
摘要:在微服务架构中,一个系统往往由多个微服务组成,而这些服务可能部署在不同机房、不同地区、不同域名下。这种情况下,客户端(例如浏览器、手机、软件工具等)想要直接请求这些服务,就需要知道它们具体的地址信息,例如 IP 地址、端口号等。这种客户端直接请求服务的方式存在以下问题: (1) 当服务数量众多时,客
阅读全文
摘要:1. Hystrix 全局降级 在 “Springcloud基础知识(6)- Spring Cloud Hystrix (一) | 服务降级” 里的 SpringcloudDemo03 项目,ServiceProviderHystrix 子模块实现了服务端服务降级, ConsumerFeign 子模
阅读全文
摘要:在微服务架构中,一个应用往往由多个服务组成,这些服务之间相互依赖,依赖关系错综复杂。例如一个微服务系统中存在 A、B、C、D、E、F 等多个服务,它们的依赖关系如下图。 请求1 请求2 请求3 | | | V V V 服务A 服务B 服务C | | | V V V 服务D <-> 服务E <-> 服
阅读全文
摘要:Feign 是 Netflix 公司发布的一种实现负载均衡和服务调用的开源组件。Spring Cloud 将其与 Netflix 中的其他开源服务组件(例如 Eureka、Ribbon 以及 Hystrix 等)一起整合进 Spring Cloud Netflix 模块中,整合后全称为 Spring
阅读全文
摘要:Spring Cloud Ribbon 是一套基于 Netflix Ribbon 实现的客户端负载均衡和服务调用工具。Netflix Ribbon 是 Netflix 公司发布的开源组件,其主要功能是提供客户端的负载均衡算法和服务调用。Spring Cloud 将其与 Netflix 中的其他开源服
阅读全文
摘要:在微服务架构中,一个系统往往由十几甚至几十个服务组成,若将这些服务全部注册到同一个 Eureka Server 中,就极有可能导致 Eureka Server 因不堪重负而崩溃,最终导致整个系统瘫痪。解决这个问题最直接的办法就是部署 Eureka Server 集群。在 Eureka 实现服务注册与
阅读全文
摘要:Eureka 一词来源于古希腊词汇,是 “发现了” 的意思。在软件领域,Eureka 是 Netflix 公司开发的一款开源的服务注册与发现组件。Spring Cloud 将 Eureka 与 Netflix 中的其他开源服务组件(例如 Ribbon、Feign 以及 Hystrix 等)一起整合进
阅读全文
摘要:注:开始阅读 Spring Cloud 系列文章之前,读者应该已经掌握了 Java 基础知识、Web 基础知识、Spring 框架、Spring MVC 和 Spring Boot。另外,本系列文章中的所有实例都是使用 IntelliJ IDEA + Apache Maven 配置和编译的,所以还需
阅读全文
1