随笔分类 -  Java

Java相关。
摘要:OpenFeign拦截器 在微服务中比较常见的场景:前端带了JWT令牌请求服务A,在服务A中使用Feign远程调用服务B、服务C等,A、B、C都接入了Spring Security;此时就会存在这样的需求,如服务A调用服务B、C时不带有JWT令牌就会出现服务调用失败,无法通过服务B、C鉴权认证; 此 阅读全文
posted @ 2022-09-10 19:34 AiFly 阅读(642) 评论(0) 推荐(0)
摘要:Antlr(Another Tool for Language Recognition)为开源的语法分析器,可以将输入的内容自动生成语法树;开发者可以使用它自定义自己的领域语言,只需创建语法规则文件,使用Antlr根据该规则文件生成相对应的类,再这些类的基础上我们可以用于实现自己的功能;Antlr4 阅读全文
posted @ 2022-05-25 18:24 AiFly 阅读(1261) 评论(0) 推荐(1)
摘要:最近在Linux下开发Go程序,发现一个奇怪的问题,在读取Linux系统信息时读到了空字符,导致了程序异常。在ASSIC中十六进制0为字符NUT,表示为空字符NULL。但这个字符在不同的编程语言、不同的运行环境中却有着不一样的呈现,如果换一个角度看,空字符也就是无字符也就能解释ASSIC空字符没有显 阅读全文
posted @ 2021-07-10 10:09 AiFly 阅读(1709) 评论(0) 推荐(0)
摘要:CEP(Complex Event Processing)复杂事件处理,这里的复杂事件指的是业务规则的复杂, 随着互联网、物联网技术的发展现在传感器装得越来越多,目前实时流数据业务处理越来越广,业务规则也越来越复杂。 可以说CEP就是一种基于事件的数据流分析技术,它通过过滤、聚合、关联、状态、时序等 阅读全文
posted @ 2021-04-21 00:19 AiFly 阅读(1229) 评论(0) 推荐(0)
摘要:MongoSpark为入口类,调用MongoSpark.load,该方法返回一个MongoRDD类对象,Mongo Spark Connector框架本质上就是一个大号的自定义RDD,加了些自定义配置、适配几种分区器规则、Sql的数据封装等等,个人认为相对核心的也就是分区器的规则实现;弄清楚了其分析 阅读全文
posted @ 2020-06-27 21:28 AiFly 阅读(1058) 评论(0) 推荐(0)
摘要:  重复造轮子,这里使用重新打包生成一个基于Docker的Hadoop镜像;   Hadoop集群依赖的软件分别为:jdk、ssh等,所以只要这两项还有Hadoop相关打包进镜像中去即可; 配置文件准备 1、Hadoop相关配置文件:core site.xml 阅读全文
posted @ 2019-11-25 08:09 AiFly 阅读(1720) 评论(0) 推荐(0)
摘要:前面主要介绍了AVL的基本概念与结构,下面开始详细介绍AVL的实现细节; AVL树实现的关键点 AVL树与二叉搜索树结构类似,但又有些细微的区别,从上面AVL树的介绍我们知道它需要维护其左右节点平衡,实现AVL树关键在于标注节点高度、计算平衡因子、维护左右子树平衡这三点,下面分别介绍; 标注节点高度 阅读全文
posted @ 2019-05-25 11:43 AiFly 阅读(225) 评论(0) 推荐(0)
摘要:二叉搜索树(Binary Search Tree)为非线性结构 ,树与链表一样为动态数据结构也可称二叉搜索树为多个链表所组成实现的,由于二叉搜索树性能比较高所以属于比较常用的数据结构;二叉搜索树每个节点除了Key外还存在指向左子树的Left节点与指向右子树的Right节点,如左或右子树不存在则该节点 阅读全文
posted @ 2019-02-24 16:27 AiFly 阅读(196) 评论(0) 推荐(0)
摘要:数组为线性数据结构 ,通常编程语言都有自带了数组数据类型结构,数组存放的是有个相同数据类型的数据集; 为什么称数组为线性数据结构:因为数组在内存中是连续存储的数据结构,数组中每个元素最多只有左右两个方向有相邻的元素;数组中的每个元素都有一个索引(或称下标)标识,这个索引在编程语言中通常都是从0开始, 阅读全文
posted @ 2018-11-25 15:09 AiFly 阅读(434) 评论(0) 推荐(0)
摘要:日志复制可以说是Raft集群的核心之一,保证了Raft数据的一致性,下面通过几张图片介绍Raft集群中日志复制的逻辑与流程; 在一个Raft集群中只有Leader节点能够接受客户端的请求,由Leader向其他Follower转发所有请求日志,并且有那么两条规则:Leader不删除任何日志、Follo 阅读全文
posted @ 2018-08-27 07:47 AiFly 阅读(537) 评论(0) 推荐(0)
摘要:图解Raft领导者选举,这里通过五张图来解答Raft选举的全过程; Raft集群各个节点之间是通过RPC通讯传递消息的,每个节点都包含一个RPC服务端与客户端,初始时启动RPC服务端、状态设置为Follower、启动选举定时器,每个Raft节点的选举定时器超时时间都在100 500毫秒之间且并不一致 阅读全文
posted @ 2018-07-24 07:53 AiFly 阅读(750) 评论(0) 推荐(0)
摘要:死锁 应该可以说是并发编程中比较常见的一种情况,可以说如果程序产生了死锁那将会对程序带来致命的影响;所以排查定位、修复死锁至关重要; 我们都知道死锁是由于多个对象或多个线程之间相互需要 对方锁持有的锁而又没有释放对方所持有的锁,导致双方都永久处于阻塞状态 ; 如上图所示,线程1持有对象1的锁、线程2 阅读全文
posted @ 2018-06-19 07:29 AiFly 阅读(400) 评论(0) 推荐(0)
摘要:Kafka Monitor 为Kafka的可视化管理与监控工具,为Kafka的稳定运维提供高效、可靠、稳定的保障,这里主要简单介绍Kafka Monitor的相关功能与页面的介绍; Kafka Monitor v0.1 主要功能有: Kafka基本信息仪表盘、broker列表、topic列表、当前消 阅读全文
posted @ 2018-02-22 18:43 AiFly 阅读(1587) 评论(0) 推荐(0)
摘要:在Kafka中应用了大量的 延迟操作 但在Kafka中 并没用使用JDK自带的Timer或是DelayQueue用于延迟操作,而是使用自己开发的DelayedOperationPurgatory组件用于管理延迟操作,Kafka这类分布式框架有大量延迟操作并且对性能要求及其高,而java.util.T 阅读全文
posted @ 2017-08-25 07:46 AiFly 阅读(1813) 评论(0) 推荐(0)
摘要:RSAP RASP是Gartner公司提出的一个概念,称: 程序不应该依赖于外部组件进行运行时保护,而应该自身拥有运行时环境保护机制; RASP 就是 运行时应用自我保护 (Runtime application self protection)的缩写,正如RASP字面意思一样,这是运行在 运行时 阅读全文
posted @ 2017-06-26 07:40 AiFly 阅读(1250) 评论(0) 推荐(0)
摘要:前段时间在想Kafka怎么监控、怎么知道生产的消息或消费的消费是否有丢失,目前有几个开源的Kafka监控框架这里整理了下,不过这几个框架都有各自的问题侧重点不一样; 1、Kafka Monitor 2、Availability Monitor for Kafka 3、Kafka Web Consol 阅读全文
posted @ 2017-01-24 09:45 AiFly 阅读(1654) 评论(0) 推荐(0)
摘要:本篇文章就要根据源码分析 SparkContext 所做的一些事情,用过Spark的开发者都知道SparkContext是编写Spark程序用到的第一个类,足以说明SparkContext的重要性;这里先摘抄SparkContext源码注释来 简单介绍介绍SparkContext,注释的第一句话就是 阅读全文
posted @ 2016-08-21 09:28 AiFly 阅读(6191) 评论(0) 推荐(1)
摘要:矩阵为线性代数中的重点,而矩阵运算就是矩阵的基础,这篇文章主要是回顾矩阵运算; 矩阵基本运算:加法、减法、数乘、乘法、转置等 矩阵加法 矩阵加法规则为每个矩阵对应的元素相加,当且仅当两个矩阵具有相同的维数矩阵加法才有定义; 1、加法规则 示例 矩阵减法 矩阵减法规则与矩阵加法相同也是对应元素上的数做 阅读全文
posted @ 2016-04-17 15:24 AiFly 阅读(1226) 评论(0) 推荐(0)
摘要:Spark执行不少操作时都依赖于 闭包函数 的调用,此时如果闭包函数使用到了外部变量驱动程序在使用行动操作时传递到集群中各worker节点任务时就会进行一系列操作: 1、驱动程序使将闭包中使用变量封装成对象,驱动程序序列化对象,传给worker节点任务; 2、worker节点任务接收到对象,执行闭包 阅读全文
posted @ 2016-02-27 20:22 AiFly 阅读(1877) 评论(0) 推荐(0)
摘要:虽然JVM有着Scala 、Groovy 、Clojure 等依赖于JVM的函数语式语言,但直到Java8才算是java正式支持**函数式编程**; Java8中加入了Lambda的支持标志着Java正式加入了混合式编程语言(支持命令式编程与函数式编程)的行列;像C#、Python都是同时支持... 阅读全文
posted @ 2015-08-05 22:20 AiFly 阅读(431) 评论(0) 推荐(0)