Spring 中 @Valid 注解的使用
@Valid 注解的使用 @Valid是java自带的参数校验注解,在javax.validation包下 javax.validation.constraints中校验参数的注解 注解 说明 空检查 @NotNull 验证对象是否不为n...
@Valid 注解的使用 @Valid是java自带的参数校验注解,在javax.validation包下 javax.validation.constraints中校验参数的注解 注解 说明 空检查 @NotNull 验证对象是否不为n...
一、背景 先说一下,为什么要使用 Flume + Kafka? 以实时流处理项目为例,由于采集的数据量可能存在峰值和峰谷,假设是一个电商项目,那么峰值通常出现在秒杀时,这时如果直接将 Flume 聚合后的数据输入到 Storm 等分布式计算框架中,可能就会超过集群的处理能力,这时采用 Kafka 就可以起到削峰的作用。Kafka 天生为大数据场景而设计,具有高吞吐的特性,能很好地抗住峰值...
一、Flume简介 Apache Flume 是一个分布式,高可用的数据收集系统。它可以从不同的数据源收集数据,经过聚合后发送到存储系统中,通常用于日志数据的收集。Flume 分为 NG 和 OG (1.0 之前) 两个版本,NG 在 OG 的基础上进行了完全的重构,是目前使用最为广泛的版本。下面的介绍均以 NG 为基础。 二、Flume架构和基本概念 下图为 Flume 的基本架构图...
系统需要对用户输入的文本进行敏感词过滤如色情、政治、暴力相关的词汇。 敏感词过滤用的使用比较多的 Trie 树算法 和 DFA 算法。 算法实现 Trie 树 Trie 树 也称为字典树、单词查找树,哈系树的一种变种,通常被用于字符串匹配,用来解决在一组字符串集合中快速查找某个字符串的问题。像浏览器搜索的关键词提示一般就是基于 Trie 树来做的。 假如我们的敏感词库中有以下敏...
https://www.iocoder.cn/JUC/sike/ReentrantLock/ 1. 简介 ReentrantLock,可重入锁,是一种递归无阻塞的同步机制。它可以等同于 synchronized 的使用,但是 ReentrantLock 提供了比 synchronized 更强大、灵活的锁机制,可以减少死锁发生的概率。 API 介绍如下: 一个可重入的互斥锁定 Loc...
Future,FutureTask,ExecutorService… 用上FutureTask任务获取结果老少皆宜, 就是CPU有消耗. FutureTask也可以做闭锁(实现了Future的语义, 表示一种抽象的可计算的结果). 通过把Callable作为一个属性, 进而把它自己作为一个执行器去继承Runnable, FutureTask实际上就是一个支持取消行为的异步任务执行器....
pom.xml节点说明 pom.xml文件的节点元素说明: pom文件的顶级节点 object model版本,对Maven2和Maven3来说,只能是4.0.0 项目创建组织的标识符,一般是域名的倒写 定义了项目在所属组织的标识符下的唯一标识,一个组织下可以有多个项目 当前项目的版本,SNAPSHOT,表示是快照版本,在开发中 打包的方式,有jar、war、ear等 项目的...
25 张图,一万字,拆解 Linux 网络包发送过程 原创张彦飞allen开发内功修炼2021-05-12 08:28 收录于话题#开发内功修炼之网络篇30个 大家好,我是飞哥! 半年前我以源码的方式描述了网络包的接收过程。之后不断有粉丝提醒我还没聊发送过程呢。好,安排! 在开始今天的文章之前,我先来请大家思考几个小问题。 问1:我们在查看内核发送数据消耗的 CPU 时,是...
Disruptor Disruptor 术语说明: RingBuffer: 被看做Disruptor最主要的组件,然而从3.0开始RingBuffer 仅仅负责存储和更新在Disruptor中流通的数据。对一些特殊的使用场景能够被用户(使用其他数据结构)完全替代 Sequence:Disruptor 使用 Sequence 来表示一个特殊组件处理的序号,和 Disruptor 一...
SocketIO通信 传统BIO编程 网络编程的基本模型是C/S模型,也就是两个进程直接进行相互通信,其中服务端提供配置信息(绑定的IP地址和监听端口), 客户端通过连接操作向服务端监听的地址发起连接请求,通过三次握手建立连接,如果连接成功,则双方即可以进行通信 服务器端在accpet()处阻塞,每有一个新的客户端接入时,就会new 一个 线程 三次握手和四次挥手:http://b...