文章分类 - Spring Cloud
摘要:一、案例演示:业务系统集成 Seata 以电商系统为例,来演示下业务系统是如何集成 Seata 的。在电商系统中,用户下单购买一件商品,需要以下 3 个服务提供支持: Order(订单服务):创建和修改订单。 Storage(库存服务):对指定的商品扣除仓库库存。 Account(账户服务) :从用
阅读全文
摘要:一、Seata 的发展历程 阿里巴巴作为国内最早一批进行应用分布式(微服务化)改造的企业,很早就遇到微服务架构下的分布式事务问题。阿里巴巴对于分布式事务问题先后发布了以下解决方案: 2014 年,阿里中间件团队发布 TXC(Taobao Transaction Constructor),为集团内应用
阅读全文
摘要:一、事务ACID说明 A(Atomic):原子性,构成事务的所有操作,要么都执行完成,要么全部不执行,不可能出现部分成功部分失 败的情况。 C(Consistency):一致性,在事务执行前后,数据库的一致性约束没有被破坏。比如:张三向李四转100元, 转账前和转账后的数据是正确状态这叫一致性,如果
阅读全文
摘要:一、sentinel熔断(部分内容摘自官网) 1.1.熔断规则说明 除了流量控制以外,对调用链路中不稳定的资源进行熔断降级也是保障高可用的重要措施之一。一个服务常常会调用别的模块,可能是另外的一个远程服务、数据库,或者第三方 API 等。例如,支付的时候,可能需要远程调用银联提供的 API;查询某个
阅读全文
摘要:一、Sentinel Sentinel 是由阿里巴巴中间件团队开发的开源项目,是一种面向分布式微服务架构的轻量级高可用流量控制组件。Sentinel 主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度帮助用户保护服务的稳定性。Sentinel 具有以下优势: 丰富的应用场景:Senti
阅读全文
摘要:一、Nacos介绍 Nacos 英文全称为 Dynamic Naming and Configuration Service,是由阿里巴巴使用 Java 语言开发的开源项目。Nacos 是一个更易于帮助构建云原生应用的动态服务发现、配置和服务管理平台(参考自 Nacos 官网)。Nacos 的命名是
阅读全文
摘要:一、SpringCloud发展史 Spring Cloud 本身并不是一个拿来即可用的框架,它是一套微服务规范,这套规范共有两代实现。 第一代实现: Spring Cloud Netflix 第二代实现: Spring Cloud Alibaba 2018 年 12 月12 日,Netflix 公司
阅读全文
摘要:一、分布式链路跟踪 微服务架构是一个分布式架构,它按业务划分服务单元,一个分布式系统往往有很多个服务单元。由于服务单元数量众多,业务的复杂性,如果出现了错误和异常,很难去定位。主要体现在,一个请求可能需要调用很多个服务,而内部服务的调用复杂性,决定了问题难以定位。所以微服务架构中,必须实现分布式链路
阅读全文
摘要:一、Spring Cloud Stream 在企业开发中,消息中间件是重要的组件之一。消息中间件主要解决应用解耦、异步消息、流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。不同的中间件其实现方式,内部结构是不一样的。如常见的RabbitMQ和Kafka,由于这两个消息中间件的架构上的不同
阅读全文
摘要:一、SpringCloud Bus 1.1.SpringCloud Bus是什么? Spring Cloud Bus 又被称为消息总线,它能够通过轻量级的消息代理(例如 RabbitMQ、Kafka 等)将微服务架构中的各个服务连接起来,实现广播状态更改、事件推送等功能,还可以实现微服务之间的通信功
阅读全文
摘要:一、目前急需解决的问题 在分布式微服务系统中,几乎所有服务的运行都离不开配置文件的支持,这些配置文件通常由各个服务自行管理,以 properties 或 yml 格式保存在各个微服务的类路径下,例如 application.properties 或 application.yml 等。 这种将配置文
阅读全文
摘要:一、为什么需要网关 在企业微服务架构中,一个项目是由多个微服务组成,这些服务有时候会部署在不同机房、不同地区、不同域名下。这种情况下,客户端(例如通过浏览器、手机、软件工具等)想要直接请求这些服务,就需要知道它们具体的地址信息,例如 IP 地址、端口号等。这种客户端直接请求服务的方式存在以下问题:
阅读全文
摘要:一、构建环境 1.1.新建cloud-provider-hystrix-payment8001 创建Maven模块 设置模块名为:cloud-provider-hystrix-payment8001 1.2.在pom.xml中引入依赖 这里直接复制即可 <dependencies> <!--hyst
阅读全文
摘要:一、概述 1.1.什么是Hystrix 分布式系统面临的问题 Hystrix 是 Netflix 团队于 2011 年开始研发。在2012年 随着Hystrix 不断发展,逐渐走向成熟,然后 Netflix 内部的许多团队都采用了它。目前在在 Netflix 上通过 Hystrix 执行数百亿个线程
阅读全文
摘要:一、前世今生 Netflix Feign 是 Netflix 公司发布的一种实现负载均衡和服务调用的开源组件。Spring Cloud 将其与 Netflix 中的其他开源服务组件(例如 Eureka、Ribbon 以及 Hystrix 等)一起整合进 Spring Cloud Netflix 模块
阅读全文
摘要:一、Ribbon是什么 Spring Cloud Ribbon 是一套基于 Netflix Ribbon 实现的客户端负载均衡和服务调用工具。Netflix Ribbon 是 Netflix 公司发布的开源组件,其主要功能是提供客户端的负载均衡算法和服务调用。Spring Cloud 将其与 Net
阅读全文
摘要:一、Consul是什么 Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,Consul的方案更"一站式",内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具(比
阅读全文
摘要:一、Zookeeper 介绍 Apache ZooKeeper 是一个开源的分布式应用程序协调组件,是 Hadoop 和 Hbase 的重要组件。是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。在微服务项目开发中 ZooKeeper 主要的角色是当做
阅读全文
摘要:一、服务注册中心Eureka 说明 服务注册中心是服务实现服务化管理的核心组件,主要用来存储服务信息,例如 服务提供者的 url 串、路由信息等。服务注册中心是微服务架构中最基础的设施之一。在微服务架构流行之前,注册中心就已经开始出现在分布式架构的系统中。比如 Dubbo 是一个在国内比较流行的分布
阅读全文
摘要:一、项目版本要求 对于后续使用版本作出规范,避免出现问题,一定要严格遵守 组件 版本 spring cloud Hoxton.SR1 spring boot 2.2.RELEASE springcloud alibaba alibaba 2.1.0.RELEASE java java8 Maven
阅读全文