- 博客(60)
- 收藏
- 关注
原创 mock测试类方法内部一new的对象如何操作
注解,其中xxx.class 为你要测试的类。比如你你写了一个 入下 然后你要测试XXX.A的方法 所以 你要在注解把xxx.class 加上。1 在mock 类上 增加。
2024-08-23 09:46:15
2068
1
原创 关于java 8 低版本使用okhttp 在容器中问题
在容器中部署低版本的java8 比如1.0.2 版本使用okhttp 请求的时候千万要注意使用方式很有可能造成内存泄漏问题。
2024-06-12 13:42:13
714
原创 flink operator 任务自动扩容失败
报错信息:No busyTimeMsPerSecond metric available for cbc357ccb763df2852fee8c4fc7d55f2. No scaling will be performed for this vertex。解决: 查看source 或者sink 是否使用了过期的 api 比如 需要用env.fromsource() 还有kakfa 消费值用kakfasource.builder 方式。
2024-03-05 17:10:41
427
原创 flink operator 1.7 更换日志框架log4j 到logback
1 消除基础flink框架log4j 添加logback jar。
2024-02-20 15:52:56
818
原创 Flink on k8s之historyServer
HistoryServer可以在Flink 作业终止运行(Flink集群关闭)之后,还可以查询已完成作业的统计信息。Flink 任务停止后,JobManager 会将已经完成任务的统计信息进行存档,History Server 进程则在任务停止后可以对任务统计信息进行查询。作业运行中historyserver是没有信息的,作业终止后history service才会查询到相关信息。这里需要挂在Historyserver的pvc,并配置Historyserver的归档路径到pvc挂载路径。
2024-02-05 15:14:37
1826
原创 flink operator 拉取阿里云私有镜像(其他私有类似)
目前对k8s 刚刚接触1周所有对podTemplate 还是不太了解 目前这个配置时可用的 在pod 中拉取惊醒引用 鉴权。secret type = docker-registry 这个是固定值不需要动。aliyun-docker-registry 为你的secret 取的固定名称。注意命名空间指定你使用的 我的命名空间是flink。–docker-server 就是你私库地址。–docker-username 登录名称。–docker-password 登录密码。
2024-01-20 01:28:45
1065
2
原创 flink 1.18 sql demo
flink 1.18 sql demo 更换flink-table-planner 为 flink-table-planner-loader pom.xml <dependencies> <!-- https://mvnrepository.com/artifact/org.apache.flink/flink-table-api-java-uber --> <dependency> <groupId&
2024-01-15 16:55:31
1297
原创 flink 1.18 sql gateway /sql gateway jdbc
2-1 启动gateway 之前先启动一个flink session ./bin/yarn-session.sh -d2-2 启动命令 :2-3 查看日志观察是否启动成功:查看日志出现这个条信息就证明已经找到了flink session applicationId[图片]可以观察到 yarn-properties-yarn 文件中存在一个session applicationId 这个applicationId是覆盖关系当启动多个session 的时候 这里只保存最新创建的那个。
2024-01-15 16:53:32
1986
原创 elasitcsearch管道应用 加工字段
需求 根据 字段 1 和字段2来加工字段3 当 字段 1 2 没有值 的时候不加工 并且字段四 是固定只。
2023-07-11 20:44:53
444
原创 关于 antd-vue ui 组件 Modal 弹窗 加载渲染 eacharts 问题
1 visible 是弹窗的判断调较 增加watch 来监控 这个字段的状态只要有值修改 就会触发这个。2 触发后 执行 下面的方法 加载echarts 就OK 了。而 watch 和created 等 同一级。
2023-05-18 17:10:58
591
原创 关于java 程序运行在容器中频繁被杀
测试 8个 kafka 数据 发送打满 大概总qps 2400多 cpu 占用 400% 基本满了 因为是容器 设定 4 核心 但是发现 内存疯狂增长 几秒就oom了 被容器杀死了,查看堆内内错发现GC健康 而且 老年代 基本都没怎用 为什么还会oom 然后就开启了漫长的gc日志查看 哎都是泪啊。目前临时解决 方案 java 设置堆内。突然灵光一闪 哎 java 的内存除了堆内还一堆堆外 然后一看 真的因为堆外 哎一言难进 所以java 不知道自己在容器中。
2023-04-17 19:25:10
488
1
原创 datax es更新 覆盖问题
在官网晚上 发现 没有关于actionType 的 介绍 默认是index 所有更改 为 updata 后 测试数据 使用 文本 id 关联 跟新发现不会被覆盖 只会跟新 写入的值 测试环境;1 问题: 最近发生了一个线上事故。hive2es 以前是用 elasticsearch 提供hive-es.jar 写入速度太猛cpu占用太累害 然后更换了datax 写入数据。大概8000万条 然后发现更新的数据 被覆盖了 只有跟新后的标签 导致 使用es-hive.jar 重新导入。
2023-04-12 20:37:59
881
1
原创 JPA的动态查询
前几天 使用 jpa 连接 pg 库来开发一个模块 发现这个玩意 平时挺好用 但是涉及到一些复杂一点的动态查询 咱也不多说直接上 代码 然后一点点 解释 首先 使用jpa 的dao层都需要 去继承一个接口来实现curd 第一步 省略。。 创建一个 model 第二步 dao层 public interface OperatorDao extends JpaRepository<OperatorPO, String>, JpaSpecificationExecutor<OperatorP
2022-01-11 17:49:21
3006
3
原创 flink 时态表 Join
package com.cn.sql.joins.temporaljoins; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org.apache.flink.table.api.bridge.java.StreamTableEnvironment; /** * 时态表 Join * 1 Syntax 语法 * SELECT [column_list] * FROM tab
2021-11-15 15:03:35
2650
原创 Flink 双流 合并join 操作 connect
package com.cn.stream.joins; import org.apache.flink.api.common.functions.MapFunction; import org.apache.flink.api.common.serialization.SimpleStringSchema; import org.apache.flink.api.common.state.ValueState; import org.apache.flink.api.common.state.Val.
2021-11-10 17:54:51
1645
原创 Flink 1.12 JOINS<文件连接器 filesystem>
1 Left Join 普通 Orders.txt 2020-04-15 08:05,4.00,supplier1 2020-04-15 08:06,4.00,supplier2 2020-04-15 08:07,2.00,supplier1 2020-04-15 08:08,2.00,supplier3 2020-04-15 08:09,5.00,supplier4 2020-04-15 08:11,2.00,supplier3 2020-04-15 08:13,1.00,supplier1 2020-0
2021-11-08 18:13:39
320
原创 flink1.12 stream windows-top-n
窗口 top-N flink 1.12 package com.cn.stream; import org.apache.flink.api.common.eventtime.WatermarkStrategy; import org.apache.flink.api.common.functions.AggregateFunction; import org.apache.flink.api.common.functions.MapFunction; import org.apache.flin.
2021-11-08 15:14:26
1973
原创 flinksql--windowtop-N <flink 1.12或者1.14>
窗口 top-N flink 1.12 package com.cn.sql; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org.apache.flink.table.api.bridge.java.StreamTableEnvironment; /* * 开窗 分组-top-N sql Demo * 示例: 2020-04-15 08:05:00,4.00,A,supp.
2021-11-04 16:26:01
1023
原创 redis 应用
redis一 String (字符)常用命令实现案例二 hash (散列类型 )常用命令实现案例三 set (集合)常用命令实现案例四 zset (有序集合)常用命令实现案例五 list(列表)常用命令实现案例六 bitmap(位图)常用命令实现案例七 hyperLogLog(统计)常用命令实现案例八 GEO(地理)常用命令实现案例九 stream(没人用)功能 一 String (字符) 常用命令 1:set 添加一个值 2: get 获得一个值 3: mset 添加一组值
2021-10-19 15:08:36
166
原创 java类的初始化 顺序
我们面试java 尤其 是初中级的时候 这种执行顺序的题 是最多的 这个东西如果想要搞明白 就得 明白 底层 是如何 运作的 执行初始化的 集中情况 < init>方法 1 大家 都知道 在写java 代码的时候都会有一个构造器 就算不写 也会系统默认一个 无参构造器 那么这个构造器 到底是什么的呢 首先看一下 类加载的几个步骤 1 装载: 引导类加载器 扩展类加载器 系统类加载器 2 链接: 验证 准备 解析 3 初始化 而第三步 初始化 就是 我们 平时代码 里面的构造器
2021-10-03 20:11:14
228
原创 i++与 ++i
直接上图 public void sw(){ int a=0; a=++a; System.out.println(a); } public static void main(String[] args) { int a=0; a=a++; System.out.println(a); } 这里 有一个 点是 自增 是在在局部变量表里面 发生的 计算不在 操作数栈 中 所以
2021-09-28 15:18:32
148
原创 AQS(抽象的同步队列)
锁 -》 Synchronized 和 Lock Synchronized 是用户态 到内核太的操作保证 原子操作的重量级锁 虽然此锁进行了优化 但是 始终是对性能有很大的影响 Lock 通过CAS + AQS 来在代码层面的上的加锁 思想是 将所有线程 组合为双向链表的同步队列 然后在队列里面根据FIFO(first in first out )原则 进行 而公平和非公平 就是 在队里抢锁的时候是否有权限 去插队到 队列之前去执行 当 上一个线程 执行完成 释放锁 unlock 后 非公平锁 就
2021-09-27 10:37:11
161
原创 java 原子类型
1 CAS -.CompareAndSwap 比较和交换 原子类 底层实现的基本思想 这个操作是cpu 级别的 指令 cmpxchg 什么意思 就是我们以前 一个线程 带着自己 和 自己的从主内存拷贝的数据 通过加工 产出的期望值 就是 我想要得到的数据写入主内存 会先看看 主内存和 手里的 拷贝的 原始数据是否相等 如果是就写入 如果不相等 就返回false 通过这一条 再加上我们的volatile 操作 就可以 使线程在自旋的同时不停的去获取 拷贝里面的数据 而进行计算这样就防止了 由于 volati
2021-09-21 13:01:41
401
原创 Happens-before(先行发生原则)
二 :细节规则 Happens-before一:总体思想二 :细节规则1 次序规则2 锁定规则3 volatile规则4 传递规则5 线程启动规则6 线程中断规则7 线程终止规则8 对象终止规则 一:总体思想 1 在逻辑上 的发生 一定是顺序的比如 对于一个变量 是先赋值 然后再去读 2 再不用考虑逻辑性 的前提下 指令重排 提高性能是被允许的 二 :细节规则 1 次序规则 次序规则就是我们所说的 逻辑上的规则 确立父子关系 一个赋值 一个取值 赋值一定要再取值 之前 发生 2 锁定规则 意思 一个线程先
2021-09-18 16:22:46
235
原创 java 线程等待和唤醒(三种实现方式)
1 synchronized 等待 wait 唤醒 notify唤醒 还有一个 notifyAll 唤醒全部 2 ReenTrantLock lock.newCondition await() 等待 singal() 唤醒 上面两个等待和唤醒有一个问题 是就是 要求顺序性和 必须加锁 比如 第一个线程 没有锁第二个线程也可以使用唤醒方法还不会抛出异常 但是 问题是 在运行编译的时候会报错 同时 在 等待和唤醒的顺序上也不能 搞混 如果 唤醒 先于等待 执行也会抛出异常 3 LockSupport 这里有
2021-09-17 09:44:18
4426
原创 线程中断 实现的三种方式
线程中断 优雅退出 实现逻辑1 static volatile boolean flag = false; 添加一个volatile 修饰符 提示这个 boolean 类型 在其中一个线程修改后另一个线程能感知到 static volatile boolean flag = false; 实现逻辑2 static AtomicBoolean flagAtom=new AtomicBoolean(); 使用原子操作 实现逻辑三中断 void-> interrupt boolean-> isI
2021-09-15 14:30:02
594
原创 java 锁
1 synchronized : 在启动程序的时候会有 管程 启动 MONITOR 这个是为什吗 我们 给所有对象都能加锁 我们 底层有一个基类object 在 底层对应 这个objectmonitor.cpp 这里面 保存的 当前线程的锁 可重入锁 等信息所有 我们 可以加锁 1) 悲观锁 : 每次操作都加上synchronized 2) 可重入锁(递归锁): 隐式的可重入锁 就是在递归调用加锁后不会死锁 3) 锁加在普通方法上的时候相当于把对象加锁 即: 在这个 类中 加锁的方法都会被加锁
2021-09-14 17:14:48
188
原创 Springframework源码构建
Springframework源码构建源码下载环境准备编译环境 源码下载 源码的下载 我们国内首推gitee 我可以 直接在gitee直接下载或者以zip包的形式的但是 这样不灵活在 不能允许我们 修改 然后我们可以克隆 github 上的源码到我们本地仓库 gitee 或者阿里的 都可以 1 导入代码库 2 url导入 1) 选择 URL 导入 2) 将github 上的地址 粘贴上去 然后点击确定等待 导入 3 克隆 https 将源码放入本地 环境准备 准备 gradle 这玩意真tm难用
2021-08-24 23:04:33
308
原创 23种设计模式(白话篇章 )
23种设计模式前言开闭原则隔离接口迪米特依赖倒置单一里式替换创建模式 (单例懒汉式饿汉式原型浅克隆深克隆建造者工厂简单工厂(Log)可以参考一下 LoggerFactory(SLF4J)抽象工厂结构模型适配器代理静态代理/装饰者动态代理JDK动态代理cgilb动态代理桥接外观模式组合模式行为模式后续更新 前言 理解设计模式对今后写业务和学习框架源代码有很大的作用,但是设计模式又非常的抽象和晦涩难懂 所以一般在第一次学习的时候可以有一个初步的印象大概知道是干什么的 然后 有哪些组成即,然后再工作一段时间后再回
2021-08-19 16:30:06
490
原创 elasticsearch 指标聚合 (aggretationmetric)
{"size":"0", "aggs": { "profit": { "scripted_metric": { "init_script" : "state.transactions =[]", "map_script" : "state.transactions.add(doc['operatedate.keyword'].value.substring(0,4))",
2021-08-12 12:50:24
375
原创 es 过滤属跟属性 后文档命中 的嵌套字段 聚合 求和
{ "size": 0, "query": { "term": { "字段": "过滤条件" } }, "aggregations": { "prpl": { "nested": { "path": "嵌套表" }, "aggregations": { "prp": {
2021-07-21 10:58:35
935
原创 JVM 学习日记(二)运行时数据区(栈)
运行时数据区 一 · PC寄存器 PC寄存器是非常小的一个空间速度非常快 他的主要功能是记录执行引擎要执行栈指令在栈空间的行号 高速执行引擎下一步改执行那条命令 二 · 栈 栈空间不涉及JVM的垃圾回收 栈只有进栈和出栈两个操作并且遵循着先进后出原则。栈里面主要是一个一个栈帧 其中每个栈帧就是一个java代码的一个方法 并且PC 寄存器和栈 是线程私有 在方法体内部 也就是一个栈帧内 一个局部变量的创建和销毁 并没有抛出 是线程安全的。 栈的主要结构: 1)局部变量表 ,2)操作数栈,3)动态链接
2021-07-07 12:03:46
167
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅