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详解》两文中我们详细剖析了柔性事务的第一个分支补偿型事务。在《刚性事务总结和柔性事务概述》中我们介绍过的柔性事务包含补偿型事务和通知型事务。通知型事务主要包含事务消息和最大努力通知型分布式事务两个组成。通知型事务的核心思想是
奈学:数据湖有哪些缺点?
数据湖本身是一个中心化的存储,能够存储任意规模的结构化与非结构化数据。数据湖相比数据仓库有很多的优势,但大多是在理想状态下的,一旦执行起来还有很多技术挑战。(一)数据湖的数据可能并不会真正做到实时。在业务环境下,如果把所有数据都放到数据湖里,那么从数据湖直接调用数据的过程可能比原来数据仓库更慢,因为从数据湖中提取出来的数据,依然要经过清洗实现标准化后才能更好的利用。具体能否达到需求的低时延效果,还
奈学教育《P7架构师》课程大纲
孙玄与沈剑联手全新设计,《P7架构师》融合了业界数位大咖超10年开发经验以及他们的架构师成长经验。同时,课程由一线大厂资深架构师(阿里P8+)进行主讲。业内首次将分布式架构全部技术串联,并结合大厂真实案例实践讲解,并提供基于百度、58和转转等真实案例的工业级落地代码,将后端架构技术全面系统的展现,帮助同学们从全局视角掌握分布式架构设计方法,成为一个合格的架构师。我们用名师+好课来改变世界,打破业界
奈学教育《大数据架构师》课程大纲(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
4天如何完爆Kafka源码核心流程!
Kafka 至今仍是当今大数据技术中当之无愧的王者,由于高吞吐量、可持久化、分布式、支持流数据处理等特性而被广泛应用。 这几年,大数据技术发展迅猛,其中 Kakfa 凭借高可靠、高吞吐、高可用、可伸缩几大特性,成为数据管道技术的首选。越来越多人开始使用 Kafka,对学习源码的需求也愈发强烈,原因主要有以下几个方面:1. 了解 Kafka 底层原理,从而搞懂 Kafka 高性能的实现机制