flink 处理实时数据的三重保障

flink 处理实时数据的三重保障 window+watermark 来处理乱序数据对于 TumblingEventTimeWindows window 的元数据startTime,endTime 和程序启动时间无关,当你指定出 window.size 时, window的startTime,end ...

flink 两个datastream实现left_join的两种方法

本文只是以left_join作为举例,right_join,full_join 等是同理的,大家可以自行扩展 1. 实验思路 1.提供两个流 nameStream: 用户名称信息从 9999 端口获取 ageStream: 有用户年龄信息 从9998 端口获取 2. 用nameStream left ...

scala case class + BeanProperty+fastjson 快速实现类的序列化与反序列化

在实际的开发中,我们往往需要定义大量的类结构,来实现面向对象式的数据管理。考虑一种场景,这种场景下单个类管理的类成员变量有很多个,我们如何实现在少量代码编写的情况先实现一个类的序列化? 1. 在Java 中要实现一个类的序列化,需要 implements Serializable ,这个类需要是 O ...

scala 命名规范

包名 规范 一般是小写字母、数字、点组成 不能以数字开头 不能使用关键字 示例 com.公司名.项目名.模块名 com.guigu.oa.model com.sina.user 类名 规范 数字、字母、下划线、美元符号组成 一般以大写字母开头 一般使用驼峰命名法 不能使用关键字 示例 Person ...

Java/Scala 中三种特殊类型的值

在Java或Scala中存在三种特殊类型的值,分别是Infinity,-Infinity,NaN,但这三个特殊值只存在于Double类型的计算过程中,对于同样形式的计算整形数据则会抛出异常如1.0/0.0 和 1/0 是不一样的r def main(args: Array[String]): Uni ...

快学scala笔记

第1章 基础 调用函数和方法 调用函数,以math包中的函数调用为例 import scala.math._ "_"相当于java中的* pow(2, 4) 返回16.0。如果是scala开头的包,可以省略scala 方法,scala中没有静态方法 与之对应的是每一个类都有一个同名的伴生对象,定义在 ...

akka-grpc - 应用案例

上期说道:http/2还属于一种不算普及的技术协议,可能目前只适合用于内部系统集成,现在开始大面积介入可能为时尚早。不过有些项目需求不等人,需要使用这项技术,所以研究了一下akka-grpc,写了一篇介绍。本想到此为止,继续其它项目。想想这样做法有点不负责任,像是草草收场。毕竟用akka-grpc做 ...

akka-typed(10) - event-sourcing, CQRS实战

在前面的的讨论里已经介绍了CQRS读写分离模式的一些原理和在akka-typed应用中的实现方式。通过一段时间akka-typed的具体使用对一些经典akka应用的迁移升级,感觉最深的是EvenSourcedBehavior和akka-cluster-sharding了。前者是经典akka中pers ...

Scala 中的约定

内容来自书籍《Scala 实用指南》3.8 Scala 中有一些约定,可以让代码简洁且易于阅读、编写。下面是这些特性的示例。 支持脚本。不是所有的代码都需要放在一个类中。如果一个脚本就能满足需求,就直 接将可执行的代码放在一个文件中,没有必要都堆在一个类中。 return 是可选的。假定最后一个求值 ...

akka-typed(8) - CQRS读写分离模式

前面介绍了事件源(EventSource)和集群(cluster),现在到了讨论CQRS的时候了。CQRS即读写分离模式,由独立的写方程序和读方程序组成,具体原理在以前的博客里介绍过了。akka-typed应该自然支持CQRS模式,最起码本身提供了对写方编程的支持,这点从EventSourcedBe ...

akka-typed(7) - cluster:sharding, 集群分片

在使用akka-typed的过程中发现有很多地方都简化了不少,变得更方便了,包括:Supervision,只要用Behaviors.supervise()把Behavior包住,很容易就可以实现这个actor的SupervisorStrategy.restartWithBackoff策略了。然后集群 ...

kka-typed(5) - cluster:集群节点状态监视

akka-cluster对每个节点的每种状态变化都会在系统消息队列里发布相关的事件。通过订阅有关节点状态变化的消息就可以获取每个节点的状态。这部分已经在之前关于akka-cluster的讨论里介绍过了。由于akka-typed里采用了新的消息交流协议,而系统消息的发布和订阅也算是消息交换,也受交流协 ...

akka-typed(4) - EventSourcedBehavior in action

前面提到过,akka-typed中较重要的改变是加入了EventSourcedBehavior。也就是说增加了一种专门负责EventSource模式的actor, 最终和其它种类的actor一道可以完美实现CQRS。新的actor,我还是把它称为persistentActor,还是一种能维护和维持运 ...

akka-typed(2) - typed-actor交流方式和交流协议

akka系统是一个分布式的消息驱动系统。akka应用由一群负责不同运算工作的actor组成,每个actor都是被动等待外界的某种消息来驱动自己的作业。所以,通俗点描述:akka应用就是一群actor相互之间发送消息的系统,每个actor接收到消息后开始自己负责的工作。对于akka-typed来说,t ...

akka-typed(1) - actor生命周期管理

akka-typed的actor从创建、启用、状态转换、停用、监视等生命周期管理方式和akka-classic还是有一定的不同之处。这篇我们就介绍一下akka-typed的actor生命周期管理。 每一种actor都是通过定义它的行为属性behavior形成模版,然后由对上一层的父辈actor用sp ...