- 博客(137)
- 资源 (30)
- 收藏
- 关注
转载 Java操作ElasticSearch,实现SimHash比较文章相似度
最后是ES查询逻辑,根据传入的SimHash,先使用ES找到至少一组SimHash相等的文档,然后在Java代码中比较剩下三组是否满足要求。说干就干,以下是我的实现代码,基于网上已有的算法进行了一些修改,总之给大家抛砖引玉了,如果有做的不好的地方还请大家指出。3、需要查询一篇文章的相似文章时,根据文章ID查到SimHash值,再去ES查询匹配的其它文章ID,不过这里。4、需要查询一篇文章的相似文章时,根据文章ID,查询结果表,找到相似文章。总之我把我的思路分享给大家,可能我代码写的比较烂,还请大家指点。
2024-02-04 20:17:57
647
转载 详解设备指纹核心算法
随着系统的不断更新迭代,加之与黑灰产的对抗逐渐白热化,各种作弊手段和工具的出现,设备上的各种参数都可以被篡改和伪造,通过一键抹机,变成一台新的设备,这就影响了对设备唯一标识的效果。稳定性计算逻辑是通过采集到的数据,构建多维度的设备画像,每次设备重新上报数据后,通过算法匹配到最相近的设备,如果找到则使用找到的设备指纹,反之则生成新的设备指纹。首先,就算法更新而言,日常的异常数据的检测仅靠应用是不够的,需要离线仓库定期分析当前的数据,对出现的异常特征可以及时发现并提取出来,然后反馈给线上进行算法优化。
2024-02-01 22:13:49
262
原创 记一次生产问题---Zookeeper之Watcher监听事件丢失分析
生产环境两个人前后一秒分别操作,一个人新增参数,一个人修改规则。侦测引擎子系统未读取到参数缓存,报空指针异常。侦测引擎 参数、规则、事件 在后管配置,配置后通过zookeeper监听机制,侦测引擎子系统去刷新缓存。
2023-12-20 21:04:27
161
原创 又一个kafka老大难问题--消费一段时间开始堆积
于是上该集群查看所有consumer,该集群上除了我这个消费组为zk方式(基于zk记录offset)消费,其他消费组均为kf方式(基于consumer_offset记录位移)。接到需求需要消费一个新集群kfk(版本0.11.0.0)的一个topic的消费。于是手动调整消费线程处罚rebalance,观察发现又可以消费了。但是过了1天又开始积压。将消费方式修改为 kf方式,测试环境模拟抛出生产级别数据测试,么有出现积压。如果你也遇到kfk消费者处理性能很好,但是仍然存在堆积的情况,不妨试试换一种消费方式。
2023-08-26 12:48:11
267
原创 Kafka某Topic的部分partition无法消费问题
今天同事反馈有个topic出现积压。于是上kfk管理平台查看该topic对应的group。发现6个分区中有2个不消费,另外4个消费也较慢,总体lag在增长。查看服务器日志,日志中有rebalance 12 retry。Exception,之后改消费线程停止。于是分析代码,将每个处理逻辑加上耗时日志,分析发现又是hbase写入耗时达到3秒。于是将hbase写入开关关闭。重新运行后,消费正常。
2023-06-04 21:33:08
3693
原创 记一次kafka堆积问题
今日下午收到短信告警有个topic的lag数100w,上生产环境查看kafka'集群消费组性能,lag数确实达到了100多w,而且各partition的lag还在增加。于是将对应war日志修改为INFO级别打印kfk处理各步骤的耗时,发现hbase写入性能异常,单条写入耗时达到1000ms 导致topic中消息无法及时消费,导致了积压。需要对consumer程序处理的各步骤进行分析定位,找出具体影响点,才能解决问题。联系hbase集群运维人员,经过定位是批量任务大量写入小文件,导致hbase集群性能异常。
2023-06-04 21:03:09
297
原创 mysql load data infile含有自动增量主键
网上很容易找到lmysql load data infile 如:load data infile '/tmp/20230525/xx01db_xxData.txt' into table temp_updateprd_data fields terminated by ',' ,但是如果id为自增主键则执行报错。二、 登陆额度数据库服务器,并将个人网贷提供的两个数据文件上传至/tmp/20230525/目录,并导入到临时刷数表中。输入密码(xxxxx123456;登陆mysq root用户。
2023-05-23 15:34:00
613
原创 【算法】最容易懂得的红黑树
红黑树是一个平衡的二叉树,但不是一个完美的平衡二叉树。虽然我们希望一个所有查找都能在~lgN次比较内结束,但是这样在动态插入中保持树的完美平衡代价太高,所以,我们稍微放松逛一下限制,希望找到一个能在对数时间内完成查找的数据结构。这个时候,红黑树站了出来。
2023-04-25 10:21:26
2647
1
原创 由一次fullgc引起的RPC调用超时
公司的联机RPC服务是一个类似Dubbo的服务,默认是的垃圾回收器是CMS。一天上游系统说发现多笔调用我们RPC服务超时。于是根据对方提供信息查看日志,发现请求虽然在合理时间处理完了。但是开始处理时间和上游业务系统请求时间存在时间差,相差10秒左右。于是查看服务日志,发现有一个节点日志有30秒左右没有输出日志。然后查下gc日志,发现了这个时间点发生了一次30秒左右的fullgc。进而分析了历史fullgc记录,发现服务10天左右发生一次fullgc,每次时间在15秒。因为堆内存设置了4G,这个f
2023-04-22 10:09:24
219
原创 自己实现springioc源码(2)-解决循环依赖问题
/单例对象,就存放半成品类型public static Map singletonObjects = new HashMap();其实使用一级缓存也可以搞定,但是可是放到多线程的环境中,可能就会出现空指针问题。线程1刚把半成品a放入到缓存中,还未来得及将b注入进去。此时线程2直接在缓存中获取到了a,在尝试调用其所依赖的b的任何方法时,就会出现空指针异常。
2023-03-26 21:06:20
123
原创 Spring容器启动初始化步骤简单介绍
前面文章已经介绍如何自己实现一个简单的springIoc容器。那么下面来了解spring是如何做的。Spring的启动主要包括register() 注册配置类 BeanDefinition 到容器 和 refresh()加载或者刷新容器中的Bean 两个步骤。
2023-03-18 11:32:44
197
原创 记录一次生产应用启动后发生多次FullGc的解决过程
昨天生产发布完后,收到告警短信5分钟内FullGc次数大于2次。当时一脸懵,应用上线前做过压力测试,没测出jvm fullgc问题啊。所以按照告警时间去查日志,发现基本为spring初始化动作。后面过了半个小时也没有收到告警,基本猜测是meta区的问题下面是定位过程。
2023-03-17 17:44:14
917
原创 自己动手实现简单spring事物源码
我们先说第一个问题,因为是我们自己模拟,所以关于切点的定义我们就设置的尽量简单一些,不妨就直接指定某个包下的所有类。对于第二个问题,我们也不做的过于复杂,在方法执行前开启事务,在方法执行后提交事务并关闭连接,所以我们需要定义一个环绕通知。同时,我们也需要将连接跟事务同步,保证事务中的所有SQL共用一个事务是实现事务管理的必要条件。基于此,我们开始编写代码。通知要实现什么功能?实际需要事务管理的类。
2023-03-09 10:02:35
114
原创 手写Spring(一)实现简单IOC
2. Spring容器,就是Spring帮忙管理类(JavaBean),我们先写一个简单的单例容器,Bean的配置写在配置文件(applicationContext.properties)中,要根据名字获取一个bean,就需要用到工厂,当工厂被实例化时,就会用资源加载器,去反射创建bean(也就是beanDefinition),然后存入beanDefinitionMap。1.IOC:控制反转,将 bean的对象交给 spring容器来管理。2.DI:依赖注入,解决对象之间的依赖关系。
2023-03-04 16:32:42
150
原创 面试前必须要知道的Redis面试题
今天来分享一下Redis几道常见的面试题: 如何解决缓存雪崩? 如何解决缓存穿透? 如何保证缓存与数据库双写时一致的问题? 一、缓存雪崩1.1 什么是缓存雪崩?回顾一下我们为什么要用缓存(Redis):为什么要缓存现在有个问题,如果我们的缓存挂掉了,这意味着我们的全部请求都跑去数据库了。如果缓存挂掉了,全部请求跑去数据库了在前面学习我们都知道Redis不可能把所有的数据都缓存起来(内存昂贵且有限),所以Redis需要对数据设置过期时间,并采用的是
2022-04-27 19:15:04
226
原创 使用redis实现幂等
以上幂等性数据库建立唯一性索引,可以保证最终插入数据库的只有一条数据 token机制,每次接口请求前先获取一个token,然后再下次请求的时候在请求的header体中加上这个token,后台进行验证,如果验证通过删除token,下次请求再次判断token 悲观锁或者乐观锁,悲观锁可以保证每次for update的时候其他sql无法update数据(在数据库引擎是innodb的时候,select的条件必须是唯一索引,防止锁全表) 先查询后判断,首先通过查询数据库是否存在数据,如果存在证明已经请求..
2022-04-10 22:22:53
1907
原创 Redis 分布式锁实现
谈起redis锁,下面三个,算是出现最多的高频词汇:setnxredLockredissonsetnx其实目前通常所说的setnx命令,并非单指redis的setnx key value这条命令。一般代指redis中对set命令加上nx参数进行使用, set这个命令,目前已经支持这么多参数可选:SET key value [EX seconds|PX milliseconds] [NX|XX] [KEEPTTL]当然了,就不在文章中默写Api了,基础参数还有不清晰的,可以蹦到官网。
2022-04-10 10:09:27
255
转载 阿里为什么不用zookeeper做服务发现?
来源以及完整的文章:阿里巴巴为什么不用 ZooKeeper 做服务发现?-阿里云开发者社区注册中心需求分析及关键设计考量接下来,让我们回归对服务发现的需求分析,结合阿里巴巴在关键场景上的实践,来一一分析,一起探讨为何说 ZooKeeper 并不是最合适的注册中心解决方案。注册中心是 CP 还是 AP 系统?CAP 和 BASE 理论相信读者都已经耳熟能详,其业已成了指导分布式系统及互联网应用构建的关键原则之一,在此不再赘述其理论(CAP以及BASE理论),我们直接..
2022-03-18 22:53:49
274
原创 peer bpmn-js@“^3.x || ^4.x || ^5.x || ^6.x || ^7.x“ from bpmn-js-properties-panel@0.37.6 报错解决
peer bpmn-js@"^3.x || ^4.x || ^5.x || ^6.x || ^7.x" from bpmn-js-properties-panel@0.37.6
2022-02-05 22:06:11
2568
1
原创 nodejs环境安装
使用vue,安装nodejs是基础,记录一下安装步骤1.下载下载地址:https://nodejs.org/en/download/2.安装:1.下载完之后,双击打开:cancel继续2.点击next开始安装3.选择"接受按钮",cancel进行下一步4.选择安装路径5.安装你需要的模式6.开始安装install7.完成finish安装完之后打开终端 window+Rcmd 回车;输入命令:“node -v” 查看版本号C:\Users\1811197
2022-02-03 10:31:02
844
原创 Caused by:java.lang.NoSuchMethodException:xxx.xxx.类名.<init>()
调用 cls.newInstance()方法时报错:Caused by:java.lang.NoSuchMethodException:xxx.xxx.类名.<init>()xxxxxx这是因为xxx.xxx.类名类写了有参构造,那么一定要写上无参构造。如果一个类没有写有参构造,那么无参构造可以不写。类默认有无参构造,可以不写。...
2021-12-15 10:16:34
663
原创 Committing is not possible because you have unmerged files.解决
idea上提交代码报错,Committing is not possible because you have unmerged files.本地的push和merge会形成MERGE-HEAD(FETCH-HEAD), HEAD(PUSH-HEAD)这样的引用。HEAD代表本地最近成功push后形成的引用。MERGE-HEAD表示成功pull后形成的引用。可以通过MERGE-HEAD或者HEAD来实现类型与svn revet的效果。解决:1.将本地的冲突文件冲掉,不仅需要reset到MERGE.
2021-11-24 14:14:54
4004
原创 linux(rh6.3)下nodejs(14.17)环境安装出错
[root@csidisssitapp16 bin]# ./npm -vnode: /lib64/libc.so.6: version `GLIBC_2.16' not found (required by node)node: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by node)node: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by no.
2021-09-10 11:29:29
680
原创 JAVA Ftpclent将一个FTP中的文件直接上传到另一个FTP
JAVA Ftpclent将一个FTP中的文件直接上传到另一个FTP,支持多文件。修改多文件时,输出流第二次为空问题解决Docker环境中storeFileStream 为空的问题.由于是片段代码,大家拿去时考虑异常处理。有问题可以留言咨询。import org.apache.hadoop.hbase.shaded.org.apache.commons.net.ftp.FTPClient;public class FtpUtil { public static String rea
2021-09-09 11:53:17
1116
原创 linux部署nodejs环境
首先去https://nodejs.org/en/download/current/下载选Linux Binaries (x64) 64bit版本然后、上传到linux相关路径下,一般是/usr/local/,并执行如下命令 xz -d node-xxxx.tar.xz ---将tar.xz解压成tar文件 tar -xvf node-xxxx.tar ---将tar文件解压成文件夹 mv node-xxx node ----改文件夹的名字,改成node装完后验证...
2021-09-02 22:16:21
173
原创 Command execution failed.:Cannot run program “npm“
[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:3.0.0:exec (exec-npm-install) on project streamx-console-webapp: Command execution failed.:Cannot run program "npm" (in directory "E:\Flink\code\streamx-main\streamx-console\streamx-conso.
2021-08-17 22:33:02
2466
原创 Flink的几种监控方案以及对比
目录1,利用 API 获取监控数据2,reporter 去上报监控数据,比如 JMXReporter、PrometheusReporter、PrometheusPushGatewayReporter、InfluxDBReporter、StatsDReporter 等1,利用 API 获取监控数据利用 Flink UI 提供的接口去定时获取到监控数据,相关 Rest API 可以查看官网链接:rest-api-integration2,reporter 去上报监控数据,比如 JMXR.
2021-08-17 11:35:30
1277
原创 Flink集群部署模式对比
1. Session模式该模式下,作业共享集群资源,作业通过Http协议进行提交。在Flink 1.10版本中提供了3种会话模式:Yarn会话模式、K8s会话模式、Standalone。Standalone模式比较特别,Flink安装在物理机上,不能像在资源集群上一样,可以随时启动一个新集群,所有的作业共享Standalone集群,本质上就是一种Session模式,所以不支持Per-Job模式。在Session模式下,Yarn作业提交使用yarn-session.sh脚本,K8s作业提交使用ku
2021-08-11 10:12:55
1241
原创 为什么我要选择 Spark on K8s?Spark On K8S与Spark On YARN方案相比之劣势
目前,存算分离的方案相对已经比较成熟,容器化方案还处于探索和小规模应用阶段,以 Spark 为例,方案大体上分为 2 种:一种是 Spark Standalone,该方案仅对大数据系统做容器化部署改造,得益于容器轻量化、更细粒度的算力管理、任务隔离等特点,可以将主机划分成更多小颗粒的任务单元,使主机资源利用率更高,同时兼顾用户原有的使用习惯。但此方案需要提前分配固定的容器数量,并保持容器的持续运行,无法对容器进行动态管理,资源的利用率虽然有所提升,但仍存在浪费。另一种是 Spark On Kub
2021-08-09 09:44:28
656
转载 DataStream的各类算子的介绍
读完Flink原理、实战与性能优化 这本书后,对各类算子的联合使用还不是很清楚。看到这篇文章写得比较清晰于是转载出来。一、Map:对数据进行逐个遍历,常用作对数据集内数据的清洗和转换input.print(); SingleOutputStreamOperator<Tuple2<String, Integer>> map = input.map(new MapFunction<String, Tuple2<String, Integer>>() ..
2021-07-08 10:17:35
604
原创 Flink数据源DataSource读取的几种方式
case class SensorReading( id: String, timestamp: Long, temperature: Double )object SourceTest { def main(args: Array[String]): Unit = { // 创建执行环境 val env = StreamExecutionEnvironment.getExecutionEnvironment env.setParallelism(1) // 1..
2021-04-18 16:41:21
664
手机imsi号归属地库
2020-07-17
mongodb集群安装配置.rar__123
2019-11-28
gcc离线安装
2018-01-16
db2jcc.jar
2017-11-10
用Python写网络爬虫PDF&源码
2017-09-24
sql必知必会
2007-11-20
head first design patterns电子版本(第2部分)
2007-06-14
head first design patterns电子版本(第1部分)
2007-06-14
head first design patterns中文版
2007-06-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人