分布式事务精华总结篇
- 总述 -咱们前面分别对分布式事务的几个分支:XA、2PC、3PC、TCC、Saga、事务消息、最大努力事务进行的详细介绍。本篇作为分布式事务设计的收尾篇,讲对前面的内容查缺补漏和总结,最后对市面的一些开源框架做一些介绍。- 查缺补漏 -1. 补偿型事务柔性事务分补偿型事务和通知型事务
Kafka 消息丢失与消费精确一次性
消息丢失的场景如果Kafka Producer使用“发后即忘”的方式发送消息,即调用producer.send(msg)方法来发送消息,方法会立即返回,但此时并不能说明消息已经发送成功。消息发送方式详见初次邂逅Kafka生产者。如果在消息过程中发生了网络抖动,那么消息就会丢失;或发送的消息本身不符合要求,如大小超过Broker端的承受能力等(消息太大的情况在生产中实际遇到过,最后通过在发送前将消息
分布式柔性事务之最大努力通知事务详解
一、概述咱们今天聊聊分布式事务系列中的最后一个方案:最大努力通知事务。最大努力通知事务的主流实现仍是基于MQ来进行事务控制。最大努力通知事务和事务消息都是通知型事务,主要适用于那些需要异步更新数据,并且对数据的实时性要求较低的场景。最大努力通知事务主要用于外部系统,因为外部的网络环境更加复杂和不可信,所以只能尽最大努力去通知实现数据最终一致性,比如充值平台与运营商、支付对接、商户通知等等跨平台、跨
Kafka面试题——20道Kafka知识点
本篇给大家总结了20道Kafka知识点或者说面试题,持续更新中...1.kafka的3个关键功能?发布和订阅记录流,类似于消息队列或企业消息传递系统。以容错的持久方式存储记录流。处理记录流。2.kafka通常用于两大类应用?建立实时流数据管道,以可靠地在系统或应用程序之间获取数据构建实时流应用程序,以转换或响应数据流3.kafka特性?消息持久化高吞吐量扩展性多客户端支持Kafka Streams
分布式柔性事务之事务消息详解
- 消息详解 -一、概述在 《柔性事务之TCC详解》 和《柔性事务之Saga详解》两文中我们详细剖析了柔性事务的第一个分支补偿型事务。在《刚性事务总结和柔性事务概述》中我们介绍过的柔性事务包含补偿型事务和通知型事务。通知型事务主要包含事务消息和最大努力通知型分布式事务两个组成。通知型事务的核心思想是通过MQ来通知其他事务参
奈学:数据湖和数据仓库的区别有哪些?
储存方面:数据湖中数据为非结构化的,所有数据都保持原始形式;存储所有数据,并且仅在分析时再进行转换。数据仓库就是数据通常从事务系统中提取,在将数据加载到数据仓库之前,会对数据进行清理与转换。数据组织形式:数据湖就是捕获半结构化和非结构化数据。而数据仓库则是捕获结构化数据并将其按模式组织。用途:数据湖的目的就是数据湖非常适合深入分析的非结构化数据。数据科学家可能会用具有预测建模和统计分析等功能的高级
了解概率知识,概率作为机器学习的底层逻辑
1. 随机随机是我们进行概率推导的基石之一。我们的统计学中经常说一枚硬币抛正面的概率是50%,就是基于每次抛硬币都是随机事件。真随机” 和 “伪随机”的区别:真随机在真随机中,每一个事件都是相互独立、服从真随机分布的,不受其他事件的发生而改变。伪随机我们程序员都知道,程序给定条件,得到的是确定的结果。所以我们编写的Math.random()肯定不是真随机,而是伪随机。代码底下无秘密,我们看下自带r
奈学教育《大数据架构师》课程大纲(1)
第一阶段:分布式协调组件第一单元掌握ZooKeeper的核心设计1. ZooKeeper生态体系结构2. ZooKeeper总体架构设计3. ZooKeeper读写请求流程深度剖析第二单元掌握ZooKeeper服务端源码流程1. ZooKeeper启动流程源码深度剖析2. Master选举算法源码深度剖析3. 服务端通信模型源码深度剖析第三单元掌握ZooKeeper客户端源码流程1. 客户端启动流
奈学教育《百万架构师》课程大纲(1)
第一阶段:基础架构设计与实践之道篇第一单元通过架构演进掌握架构设计核心思维模式智能互联网之总体架构设计(上)第二单元通过架构演进掌握架构设计核心思维模式智能互联网之总体架构设计(下)第三单元掌握高可用架构设计基本原则智能互联网之核心技术实践篇(上)第四单元掌握核心技术之分布式资源哲学本质和思维智能互联网之核心技术实践篇(中)第五单元掌握网关/分布式锁的哲学本质和场景Balance案例(一)企业级分
江帅帅:精通 Spring Boot 系列 06
Spring Boot 文件的上传下载说真的,在 Spring Boot 实现文件下载,真的是方便到让我颤抖。Java 中实现文件上传可以用两个组件:CommonMultipartResolver 和 StandardServletMultipartResolver。Spring Boot 在 web 模块中集成了 Spring MVC ,文件上传这块儿的支持是可以通过即插即用的 Multipar
江帅帅:精通 Spring Boot 系列 05
Spring Boot 处理 JSON 数据JSON 是目前主流的前后端数据传输方式,当 Controller 中返回的是一个 Java 对象或 List 集合时,Spring Boot 将自动把它转换成 JSON 数据。Spring Boot 中内置了 JSON 解析功能,当你在项目中,添加了 spring-boot-starter-web 模块之后,即可看到默认包含 Jackson 解析器,也
分布式柔性事务的TCC方案
- 起源 -TCC概念由Pat Helland于2007年发表的一篇名为《Life beyond Distributed Transactions:an Apostate’s Opinion》的论文提出, 在该论文中,TCC还是以Tentative-Confirmation-Cancellation命名。正式以Try-Co
江帅帅:精通 Spring Boot 系列 04
1. Web 开发的支持使用 Spring Boot 实现 Web 开发更加便捷了,因为直接依赖 spring-boot-starter-web 模块即可支持 Web 开发,此模块预定义了 Web 开发中常用的依赖包,还有内嵌的 Tomcat 作为默认 Web 容器。2. Thymeleaf 模板引擎目前,多数企业级应用开发中都支持前后端分离,但还有少数离不开视图层技术,Spring Boot 提
江帅帅:精通 Spring Boot 系列 03
1. 关闭指定的自动配置通过上面的 @EnableAutoConfiguration 注解就能根据指定的依赖,自动进行配置。但如果你想关闭某一项自动配置,就需要使用 @SpringBootApplication 下的 exclude 参数来设置。比如,我想关闭 DataSource,代码具体如下:1@SpringBootApplication(exclude = {DataSo
江帅帅:精通 Spring Boot 系列 02
1 @SpringBootApplication 注解Spring Boot 的启动类,也就是入口类,需要使用 @SpringBootApplication 注解来标注。在启动类中,我们的 main 方法就是 Java 应用程序的入口方法。@SpringBootApplication 是一个组合注解,具体源码如下:其中,比较重要的三个注解是:@SpringBootConfigu
江帅帅:精通 Spring Boot 系列 01
1、Spring Boot 概述Spring 框架,作为一个非常优秀的轻量级容器,在企业级项目开发中非常受欢迎,但它在使用期间需要整合众多第三方资源,都会导致配置过于臃肿,这也是令大家非常头疼的问题。Spring Boot 的出现,就是为了让大家更方便去使用 Spring 框架进行开发,它基于“约定优于配置(COC)”的设计理念,它实现了自动化配置解决方案,包括自动配置第三方资源,从而简化了 Sp
Kafka零数据丢失的配置方案
这两年大数据行业发展前景较好,行业工程师薪资高、人才少、竞争压力小,很多人也因此想要转型成为大数据工程师,但也正是因为行业新、人才少,很多技术解决方案也是缺少很优质的答案。今天,我给大家详细剖析一个大数据工程师面试中的高频面试题——Kafka是如何保证数据零丢失的?如果要想保证Kafka数据不丢, 要从Kafka的三个地方入手:生产者、服务端和消费者。生产者01 / API使
大中台模式下如何构建复杂业务核心状态机组件
大中台战略下,中台将公司业务的公共能力下沉,并采用更加合理、可复用的架构和技术来实现这些基础能力。在电商行业内,将面临货物的采购、商品上架、交易发生、订单状态变化、客服介入等大量状态维护。每个状态之间具有很强的逻辑关联关系,比如:退款操作在发货前和发货后将是完全不同的流程,如图1订单退款流程。图1 退款流程图由此可见,对于复杂状态的管理是一个业务依赖,需求多变的场景。在公司初创期,可以采用硬编码方
Apache Spark有哪些局限性
Apache Spark是行业中流行和广泛使用的大数据工具之一。Apache Spark已成为业界的热门话题,并且如今非常流行。但工业正在转移朝向apache flink。Apache Spark简介Apache Spark是为快速计算而设计的开源,闪电般快速的集群计算框架。Apache Spark扩展了MapReduce模型,以有效地将其用于多种计算,包括流处理和交互式查询。Apache Spa
五分钟学会Elasticsearch查询代理设计
Elasticsearch(ES)是一款基于Lucene的开源分布式搜索引擎。由于其稳定、可靠、快速、安装使用方便等优良特性,目前在业界已广泛使用。ES用途主要分两个方向:分布式实时文件存储 以及 分布式实时分析搜索引擎。一、为什么需要查询代理屏蔽复杂的DSL某二手交易平台使用ES,主要用来支持商品、用户等(以下统称文档)的搜索和分析。ES为查询功能提供了基于Json的完整Qu