Streams

Kafka及周边深度了解

我怕爱的太早我们不能终老 提交于 2019-12-09 11:36:21
本文属于原创,转载注明出处,欢迎关注微信小程序 小白AI博客 微信公众号 小白AI 或者网站 https://xiaobaiai.net 或者我的CSDN http://blog.csdn.net/freeape [TOC] 0 前言 文章有点长,但是写的都挺直白的,慢慢看下来还是比较容易看懂,从Kafka的大体简介到Kafka的周边产品比较,再到Kafka与Zookeeper的关系,进一步理解Kafka的特性,包括Kafka的分区和副本以及消费组的特点及应用场景简介。 1 简介 Apache Kafka 是一个 分布式流处理平台 ,注意是平台: 发布 & 订阅,类似消息系统,并发能力强,通过集群可以实现数据总线作用,轻轻松松实现流式记录数据分布式读写 以高容错的方式存储海量流式数据 可以在流式记录数据产生时就进行处理 从上面的一个Kafka小型应用架构图可以了解Kafka周边及它的实际能扮演的角色,图中Kafka集群连接了六个数据输入输出部分,分别是 Kafka Producer 、 Kafka Connect Source 、 Kafka Streams/KSQL 、 Kafka Consumer 、 Kafka Connect Sink 。而这些数据的输入输出都可以通过Kafka提供的四个核心API组去解决(除 Kafka AdminClient API 外): Kafka

Kafka及周边深度了解

寵の児 提交于 2019-12-08 17:11:36
本文属于原创,转载注明出处,欢迎关注微信小程序 小白AI博客 微信公众号 小白AI 或者网站 https://xiaobaiai.net 或者我的CSDN http://blog.csdn.net/freeape [TOC] 0 前言 文章有点长,但是写的都挺直白的,慢慢看下来还是比较容易看懂,从Kafka的大体简介到Kafka的周边产品比较,再到Kafka与Zookeeper的关系,进一步理解Kafka的特性,包括Kafka的分区和副本以及消费组的特点及应用场景简介。 1 简介 Apache Kafka 是一个 分布式流处理平台 ,注意是平台: 发布 & 订阅,类似消息系统,并发能力强,通过集群可以实现数据总线作用,轻轻松松实现流式记录数据分布式读写 以高容错的方式存储海量流式数据 可以在流式记录数据产生时就进行处理 从上面的一个Kafka小型应用架构图可以了解Kafka周边及它的实际能扮演的角色,图中Kafka集群连接了六个数据输入输出部分,分别是 Kafka Producer 、 Kafka Connect Source 、 Kafka Streams/KSQL 、 Kafka Consumer 、 Kafka Connect Sink 。而这些数据的输入输出都可以通过Kafka提供的四个核心API组去解决(除 Kafka AdminClient API 外): Kafka

请停止编写这么多的for循环!

≡放荡痞女 提交于 2019-12-06 13:50:06
在这篇文章中,我想和你一起回到基础知识,并讨论 Java 中的 for 循环。老实说,我正在为自己写这篇博客文章,因为我也会这样做。从 Java 8 开始,我们不必在 Java 中编写太多 for 循环!我希望这篇文章将使你的代码更易于阅读和编写。 你需要 for 循环做什么? 一般地说,for 循环执行两类任务: 遍历集合 运行算法 对于算法,for 循环可能是合适的。看一下此算法,检查数字是否为三的幂: double number = 81; for(; number > 1; number /=3); return number == 1; 在这里,for 循环是合适的。这是一个非常简单的示例,你可以想象,使用更困难的算法会变得更加棘手。 对于大多数开发人员而言,在他们的日常工作中,这种情况很少。大多数时候,我们使用 for 循环遍历集合。让我们看一下该代码的一些示例。 遍历 Java 中的集合 我们首先来定义一个 List<String> 数组,并往里面插入一些元素: List<String> heroes = new ArrayList<>(); heroes.add("典韦"); heroes.add("云中君"); heroes.add("鲁班"); heroes.add("盘古"); heroes.add("大乔"); heroes.add("宫本武藏");

请停止编写这么多的for循环!

萝らか妹 提交于 2019-12-06 06:34:28
在这篇文章中,我想和你一起回到基础知识,并讨论 Java 中的 for 循环。老实说,我正在为自己写这篇博客文章,因为我也会这样做。从 Java 8 开始,我们不必在 Java 中编写太多 for 循环!我希望这篇文章将使你的代码更易于阅读和编写。 你需要 for 循环做什么? 一般地说,for 循环执行两类任务: 遍历集合 运行算法 对于算法,for 循环可能是合适的。看一下此算法,检查数字是否为三的幂: double number = 81; for(; number > 1; number /=3); return number == 1; 在这里,for 循环是合适的。这是一个非常简单的示例,你可以想象,使用更困难的算法会变得更加棘手。 对于大多数开发人员而言,在他们的日常工作中,这种情况很少。大多数时候,我们使用 for 循环遍历集合。让我们看一下该代码的一些示例。 遍历 Java 中的集合 我们首先来定义一个 List<String> 数组,并往里面插入一些元素: List<String> heroes = new ArrayList<>(); heroes.add("典韦"); heroes.add("云中君"); heroes.add("鲁班"); heroes.add("盘古"); heroes.add("大乔"); heroes.add("宫本武藏");

expdp 导出UDE-31623 ORA-31623

扶醉桌前 提交于 2019-12-06 02:50:28
问题描述: ORACLE EXADATA 12.2 4节点 一个简单的expdp导出,在之前是正常的,但是隔了一天后出现问题了,具体报错信息如下: expdp '"/as sysdba"' DIRECTORY=dir1 DUMPFILE=vat_%U.dmp logfile=vat_20190505.log VERSION= 11.2.0.4.0 SCHEMAS=VAT CLUSTER=NO exclude=STATISTICS parallel=4 UDE-31623: operation generated ORACLE error 31623 ORA-31623: a job is not attached to this session via the specified handle ORA-06512: at "SYS.DBMS_DATAPUMP", line 3326 ORA-06512: at "SYS.DBMS_DATAPUMP", line 4551 ORA-06512: at line 1 解决办法: sqlplus "/ as sysdba SYS@ora122>show parameter streams_pool SYS@ora122>select * from v$sgainfo; #其实为0 SYS@ora122>alter system set

Kafka实战(五)

谁说我不能喝 提交于 2019-12-05 23:04:32
只有顺应版本,才能成就王者不败神话 也是能否用好Kafka的关键。 不论是哪种Kafka,本质上都基于core Apache Kafka 那就来说说Apache Kafka版本号的问题 1 缘何"在乎"你这版本号 直接使用最新版本不就好了吗? 当然了!这的确是一种有效策略,这种策略并非在任何场景下都适用 如果不了解各个版本之间的差异和功能变化,怎么能够准确地评判某Kafka版本是不是满足你的业务需求呢? 因此在深入学习Kafka之前,花些时间搞明白版本演进,实际上是非常划算的一件事。 2 版本的命名 当前Apache Kafka已经更迭至2.3 很多人对于Kafka的版本命名理解存在歧义 在官网上下载Kafka时,会看到这样的版本: 于是有些同学就会纳闷,难道Kafka版本号不是2.11或2.12吗? 并不呀,前面的版本号是编译Kafka源代码的Scala编译器的版本。Kafka服务器端的代码完全由Scala语言编写,Scala同时支持面向对象编程和函数式编程,用Scala写成的源代码编译之后也是普通的“.class”文件,因此我们说Scala是JVM系的语言. > 事实上目前Java新推出的很多功能都是在不断向Scala语言靠近,比如Lambda表达式、函数式接口、val变量等 > Kafka新版客户端代码完全由Java语言编写,于是有些人展开了“Java VS Scala

ej3-0开端

自闭症网瘾萝莉.ら 提交于 2019-12-05 22:11:59
开始 编码多年,总有一些最佳实践,Java也是,比如设计模式,比如Effective Java 3 (ej3) 。 设计模式先后看过《大话设计模式》,《HeadFirst 设计模式》。而EffectiveJava3我打算阅读英语原版的,翻译过来,提高一下自己的英文阅读能力,同时也思考一下大师总结的编程最佳实践,应用到日常编码工作中。 开端从ef3作者的[宣讲PPT](https://www.yuque.com/office/yuque/0/2019/pptx/186661/1574762227798-103405a7-8cec-4953-b03c-26e8eff4150c.pptx)开始。 建议先快速看一遍ppt,不过全部是英文的,我把它翻译过来,作为我开始ej3的开始。 版本变化 变化 ej3 ej2 新增章节 一个新章节 新增规则 14条新规则 重写规则 2个重写规则 修改规则 所有规则条目彻底修改 发布日期 2017 2008 jdk版本 java9 java6 页数 366 315 使用 lambdas优先匿名类 使用匿名内部类的代码可读性和简洁性不断提高; 类型推断: Collections.sort(stringList,(s1,s2)->Integer.compare(s1.length(),s2.length())); 等价于: Collections.sort

Kafka实战(五) - 核心API及适用场景全面解析

随声附和 提交于 2019-12-04 14:35:14
1 四个核心API ● Producer API 允许一个应用程序发布一串流式的数据到一个或者多个Kafka topic。 ● Consumer API 允许一个应用程序订阅一个或多个topic ,并且对发布给他们的流式数据进行处理。 ● Streams API 允许一个应用程序作为一个流处理器,消费一个或者多个topic产生的输入流,然后生产一个输出流到一个或多个topic中去,在输入输出流中进行有效的转换。 ● Connector API 允许构建并运行可重用的生产者或者消费者,将Kafka topics连接到已存在的应用程序或者数据系统。比如,连接到一个关系型数据库,捕捉表(table) 的所有变更内容。 在Kafka中,客户端和服务器之间的通信是通过简单,高性能,语言无关的TCP协 议完成的。此协议已版本化并保持与旧版本的向后兼容性。Kafka提供多种语言客 户端。 2 Kafka API - producer Producer会为每个partition维护一个缓冲,用来记录还没有发送的数据,每个缓冲区大小用batch.size指定,默认值为16k. linger.ms为,buffer中的数据在达到batch.size前,需要等待的时间 acks用来配置请求成功的标准 send异步方法 3 Kafka API - Consumer 3.1 Simple Cnsumer

【Kafka】- KafkaStream wordcount 案例

自闭症网瘾萝莉.ら 提交于 2019-12-01 11:59:14
kafka Stream 简介 Kafka自身提供的流式数据处理工具,轻量级 案例 Wordcount package com.zhiwei.kafka.streams; import com.zhiwei.util.PropertyUtils; import org.apache.kafka.common.serialization.Serdes; import org.apache.kafka.common.utils.Bytes; import org.apache.kafka.streams.KafkaStreams; import org.apache.kafka.streams.StreamsBuilder; import org.apache.kafka.streams.StreamsConfig; import org.apache.kafka.streams.Topology; import org.apache.kafka.streams.kstream.*; import org.apache.kafka.streams.state.KeyValueStore; import java.util.Arrays; import java.util.Locale; import java.util.Properties; /** * wordcount 案例 */

expdp 导出UDE-31623 ORA-31623

穿精又带淫゛_ 提交于 2019-11-30 21:23:46
问题描述: ORACLE EXADATA 12.2 4节点 一个简单的expdp导出,在之前是正常的,但是隔了一天后出现问题了,具体报错信息如下: expdp '"/as sysdba"' DIRECTORY=dir1 DUMPFILE=vat_%U.dmp logfile=vat_20190505.log VERSION= 11.2.0.4.0 SCHEMAS=VAT CLUSTER=NO exclude=STATISTICS parallel=4 UDE-31623: operation generated ORACLE error 31623 ORA-31623: a job is not attached to this session via the specified handle ORA-06512: at "SYS.DBMS_DATAPUMP", line 3326 ORA-06512: at "SYS.DBMS_DATAPUMP", line 4551 ORA-06512: at line 1 解决办法: sqlplus "/ as sysdba SYS@ora122>show parameter streams_pool SYS@ora122>select * from v$sgainfo; #其实为0 SYS@ora122>alter system set