- 博客(15)
- 资源 (8)
- 收藏
- 关注
原创 Kafka Consumer如何实现精确一次消费数据
文章目录简介 kafka消费机制 消费时出现几种异常情况 自动提交 手动提交 精确一次消费实现 总结 简介在使用kafka时,大多数场景对于数据少量的不一致(重复或者丢失)并不关注,比如日志,因为不会影响最终的使用或者分析,但是在某些应用场景(比如业务数据),需要对任何一条消息都要做到精确一次的消费,才能保证系统的正确性,kafka并不提供准确一致的消费API,需要我们在实际使用时借用外部的一些手段来保证消费的精确性,下面我们介绍如何实现...
2020-10-28 16:34:36 2347 1
原创 kafka怎么保证数据消费一次且仅消费一次?
1.众所周知,kafka0.11.0.0版本正式支持精确一次处理语义(exactly onece semantic–EOS),Kafka的EOS主要体现在3个方面:1)幂等producer保证单个分区的只会发送一次,不会出现重复消息2)事务(transation):保证原子性的写入多个分区,即写入到多个分区的消息要么全部成功,要么全部回滚3)流式EOS:流处理本质上可看成是“”读取-处理-写入的管道“”。此EOS保证整个过程的操作是原子性。注意,只使用kafka Streams上面3中EOS...
2020-10-28 16:21:13 3276
原创 Kafka之精确一次处理语义
文章目录精确一次处理语义 幂等性实现原理精确一次处理语义 消息处理语义 最多一次(at most once):消息可能丢失也可能被处理,但最多只会处理一次 至少一次(at least once):消息不会丢失,但可能被处理多次 精确一次(exactly once):消息被处理且只会被处理一次 producer: 在0.11.0.0之前,kafka producer默认提供至少一次(at least once)语义(重试机制) kafka在0.11...
2020-10-28 16:00:09 354
原创 Flink基于Kafka-Connector 数据流容错回放机制
Flink基于Kafka-Connector 数据流容错回放机制及代码案例实战-Flink牛刀小试Flink牛刀小试系列目录Flink牛刀小试-Flink 集群运行原理兼部署及Yarn运行模式深入剖析 Flink牛刀小试-Flink Window类型及使用原理案例实战 Flink牛刀小试-Flink Broadcast 与 Accumulators 应用案例实战 Flink牛刀小试-Flink与SparkStreaming之Counters& Accumulators 累加器双向应用案
2020-10-28 15:56:08 665
原创 hive 数据倾斜、优化策略、hive执行过程、垃圾回收
文章目录1. 数据倾斜 1.1 什么是数据倾斜? 1.2 容易数据倾斜情况 1.3 产生数据倾斜的原因 1.4 不会产生数据倾斜的情况 1.5 业务场景 1.5.1 空值产生的数据倾斜 1.5.2 不同数据类型关联产生数据倾斜 1.5.1 大小表关联查询产生数据倾斜 2. hive执行过程实例分析 2.1 Hive 操作符列表 2.2 Hive 编译器的工作职责 2.3 优化器类型 2.4 hive查看执行过程...
2020-10-28 10:46:09 446
原创 hive数据倾斜优化策略
hive数据倾斜优化策略Hive数据倾斜Group By 中的计算均衡优化1.Map端部分聚合先看看下面这条SQL,由于用户的性别只有男和女两个值 (未知)。如果没有map端的部分聚合优化,map直接把groupby_key 当作reduce_key发送给reduce做聚合,就会导致计算不均衡的现象。虽然map有100万个,但是reduce只有两个在做聚合,每个reduce处理100亿条记录。 selectuser.gender,count(1) f...
2020-10-28 10:43:00 304
原创 Flink状态管理和容错机制介绍
Flink状态管理和容错机制介绍本文主要内容如下:有状态的流数据处理; Flink中的状态接口; 状态管理和容错机制实现; 阿里相关工作介绍;一.有状态的流数据处理#1.1.什么是有状态的计算#计算任务的结果不仅仅依赖于输入,还依赖于它的当前状态,其实大多数的计算都是有状态的计算。 比如wordcount,给一些word,其计算它的count,这是一个很常见的业务场景。count做为输出,在计算的过程中要不断的把输入累加到count上去,那么count就是一个state。1.2.
2020-10-28 09:54:56 172
原创 arthas现实了不停机、不发包替换了生产环境的Java代码
arthas现实了不停机、不发包替换了生产环境的Java代码线上代码热更新(动态修改上线项目代码)手动在代码中抛异常,不停机不重新发包的情况下,修改线上代码启动服务也达到我们预期异常替换代码的流程:1、jad命令将需要更改的文件先进行反编译,保存下来 ,编译器修改$ jad --source--only com.example.demo.DemoApplication > /data/DemoApplication.java1修改完以后需要将类重新加载到JVM.
2020-10-27 16:08:17 496
原创 Arthas - Java 线上问题定位处理的终极利器
前言在使用Arthas之前,当遇到 Java 线上问题时,如 CPU 飙升、负载突高、内存溢出等问题,你需要查命令,查网络,然后 jps、jstack、jmap、jhat、jstat、hprof 等一通操作。最终焦头烂额,还不一定能查出问题所在。而现在,大多数的常见问题你都可以使用Arthas轻松定位,迅速解决,及时止损,准时下班。1、Arthas 介绍Arthas是Alibaba在 2018 年 9 月开源的Java 诊断工具。支持JDK6+, 采用命令行交互...
2020-10-27 15:46:31 403
原创 Kafka网络模型
Kafka网络模型摘要:很多人喜欢把RocketMQ与Kafka做对比,其实这两款消息队列的网络通信层还是比较相似的,本文就为大家简要地介绍下Kafka的NIO网络通信模型,通过对Kafka源码的分析来简述其Reactor的多线程网络通信模型和总体框架结构,同时简要介绍Kafka网络通信层的设计与具体实现。一、Kafka网络通信模型的整体框架概述Kafka的网络通信模型是基于NIO的Reactor多线程模型来设计的。这里先引用Kafka源码中注释的一段话:相信大家看了上面的这段引文注释后
2020-10-27 10:25:35 258 1
原创 HDFS体系架构
体系架构NameNode HDFS主节点、管理员 接收客户端(命令行、Java程序)的请求:创建目录、上传、下载、删除数据 管理和维护HDFS的日志和元信息 日志文件(edits文件) 二进制文件,记录客户端所有操作,同时体现HDFS的最新状态 $HADOOP_HOME/tmp/dfs/name/current 日志查看器(edits viewer):把edits转成文本(XML)格式 hdfs oev -i edits_inprogress_00000...
2020-10-14 09:29:25 184
原创 Elasticasearch Web管理工具-Cerebro
Elasticasearch Web管理工具-Cerebrocerebro是一个使用Scala,Play Framework,AngularJS和Bootstrap构建的开源(MIT许可)elasticsearch web管理工具。需要Java 1.8或更高版本才能运行。1、安装JAVA环境tar -xzvf jdk-8u121-linux-x64.tar.gz -C /data配置环境/etc/profile文件中添加export JAVA_HOME=/data/jdk1.8.
2020-10-13 17:46:23 585
原创 Elasticsearch的快照备份 使用脚本进行快照
Elasticsearch的快照备份该文档适用于备份使用NAS的仓库类型。所有Elasticsearch集群中的服务通过挂载NAS目录来存放备份快照数据。1、创建备份仓库创建一个仓库名称:backupcurl -H "Content-Type: application/json" -XPUT http://10.10.18.10:9200/_snapshot/backup -d '{"type":"fs","settings":{"location":"/data/bak_es/
2020-10-13 17:42:19 599
原创 Heartbeat超时值
heartbeat超时值定义了RabbitMQ及其client库在多久之后认为TCP连接不可到达。这个值是在client连接RabbitMQ服务器的时候协商好的,在RabbitMQ 3.0及以上版本,broker缺省就会自动尝试进行heartbeat协商,而对于低版本则必须由client在连接时显示地请求协商。该值单位为秒,缺省是60秒。每隔timeout / 2秒发送一个Heartbeat消息帧,这个值有时被称作heartbeat interval,如果连续丢失两个heartbeats消息帧,就认...
2020-10-09 16:33:21 3159
原创 Linux日志中如何查找关键字及其前后的信息
在日常工作中,我们经常需要查看日志,比如可以通过tail命令实时查看日志,也可以通过cat等命令查看日志信息。但现在我们要讨论的是,如何从日志中通过关键字过滤出我们想要的内容,方法有多种,今天我们主要以cat命令来进行学习。假设存在日志文件hrun.log,查询的关键字为"新增用户":根据关键字查看日志点我复制cat hrun.log | grep "新增用户"根据关键字查看后10行日志点我复制cat hrun.log | grep "新增用户" -A 10...
2020-10-09 15:51:35 1728
cas +shiro集成
2018-08-01
cas客户端集成单点登录代码3
2018-07-31
cas客户端集成单点登录代码
2018-07-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人