- 博客(67)
- 收藏
- 关注

原创 java内存泄露,内存溢出
1.概念内存泄露:指程序中动态分配内存给一些临时对象,但是对象不会被GC所回收,它始终占用内存。即被分配的对象可达但已无用。内存溢出:指程序运行过程中无法申请到足够的内存而导致的一种错误。内存溢出通常发生于OLD段或Perm段垃圾回收后,仍然无内存空间容纳新的Java对象的情况(OOM)。从定义上可以看出内存泄露是内存溢出的一种诱因,不是唯一因素。内存泄露举例对象生命周期引发的内存泄露...
2019-09-24 09:50:26
180

原创 Nginx 配置websocket
1.Nginx 支持websocket的配置server {listen 80;server_name 域名;location / {proxy_pass http://127.0.0.1:8080/; // 代理转发地址 proxy_http_version 1.1;proxy_read_timeout 3600s; // 超时设置// 启用支持websocke...
2019-08-23 16:27:55
520
原创 OLAP在线实时 数据分析平台
随着业务的增长,精细化运营的提出,产品对数据部门提出了更高的要求,包括需要对实时数据进行查询分析,快速调整运营策略;对小部分人群做 AB 实验,验证新功能的有效性;减少数据查询时间,降低数据查询难度,让非专业人员可以自主分析、探查数据等。为满足业务需求,MateApp 实现了集事件分析、转化分析、自定义留存、用户分群、行这是一个典型的,分成两部分,
2024-04-09 11:23:41
866
原创 redis 的 jedis 和 letture集成 springboot
综上所述,Jedis适用于简单的、低并发的场景,使用简单直观;而Lettuce适用于高并发、复杂的场景,具有更好的性能和扩展性。选择使用哪种客户端库取决于你的具体需求和项目特点。Jedis和Lettuce是两种常用的Java客户端库,用于与Redis服务器进行通信。用的时候直接注入 Bean 就 key 使用了。
2024-03-20 17:24:42
499
原创 Java使用Microsoft Entra微软 SSO 认证接入
sp(服务提供这者)在首页做一个 button 按钮只进行 SAML 的 SSO 验证登录=》点击按钮,获取 ldp(微软)的动态访问 url=》验证账密,通过后调用 sp 提供的回调接口将邮箱信息传过来=》 sp(服务提供者)拿到邮箱获取用户的信息,进行验证,成功后,重定向到sp首页将 cookie进行写入。Microsoft Entra ID 还可帮助他们访问你的企业 Intranet 上的应用等内部资源,以及任何为你自己的组织开发的云应用。是基于云的标识和访问管理服务,可帮助员工访问外部资源。
2023-12-14 11:58:47
2285
原创 阿里云KMS 的信封加密
何为信封加密,大概意思就是一批数据可以装在一个信封里进行安全传输,何为安全传输,就是加密密钥和加密的数据是分开存储的,获取任何一个都无法进行解密操作。
2023-09-20 17:09:57
323
原创 有关 openAPI 的一些总结
然后 hearder 需要加参数Timestamp,与签名的时间戳保持一致就行,服务端到时候需要验签,再根据时间戳判断几分钟内签名有效就行。这样的做法只能说是相对安全的,对于国外节点的服务器来说,时间戳必须做转换。目前主流的 APi 的验证是:Token+sign。token 主要是进行接口安全访问的。sign 主要是保证数据的真实性。
2023-07-26 17:06:19
337
原创 关于AES 和 BASE64 的理解
AES加密算法使用相同的密钥(称为对称密钥)进行加密和解密操作,因此必须确保密钥的安全性。它将明文分成大小相等的数据块,然后对每个数据块单独进行加密。但是,ECB模式存在一些问题,因为相同的明文块会被加密成相同的密文块,这导致了一些安全性问题,例如可能泄漏信息模式和无法抵抗攻击者的重新排序攻击。这是因为Java标准库中的AES实现对于密钥长度有一定的限制,不支持超过256位的密钥。请注意,如果原始数据的长度恰好是3的倍数,则不会添加填充字符 “=”,而编码后的数据长度将与原始数据长度成正比,约为4/3倍。
2023-07-19 16:45:49
2708
原创 mysql的聚簇索引和非聚簇索引的区别
MySQL InnoDB存储引擎时,索引类型可分为,有时候也通俗的称为主键索引和普通索引。,所以MYSIAM的引擎在查询的时候非主键索引的时候特别快。
2023-07-12 17:27:22
381
原创 springboot集成实体类转换神器mapstruct
mapstruct他与BeanUtils最大的不同之处在于,其并不是在程序运行过程中通过反射进行字段复制的,而是在编译期生成用于字段复制的代码(类似于Lombok生成get()和set()方法),这种特性使得该框架在运行时相比于BeanUtils有很大的性能提升,所以在pom的依赖顺序里面,是需要先加载Lombok的依赖再加载mapstruct依赖,这样才可以正常启动导入pom<dependency> <groupId>org.projectlombok
2023-06-29 14:56:38
669
原创 macbook忘记root用户密码,如何重置密码
(1)以普通用户名登录系统,并打开terminal终端,Password:*****(当前用户的密码)成功后进入bash-3.2#的命令模式。(2)在bash-3.2#命令模式下,成功后及root密码修改完成!
2023-03-29 09:46:23
1754
原创 分布式系统RedisAtomicLong实现自增流水号
在项目中许多过这样的需求,记录留做备忘。需要创建一个递增序列,这个序列会提供给多个应用来使用,这样就需要保持序列的原子递增。
2022-08-25 10:44:31
1589
原创 关于springboot的优雅停机和健康检查配置(用于k8s服务重启)
优雅关闭正常都是会配置一定的处理时间,超过该时间没处理完,就会进行强杀。因此对于核心业务,我们还得考虑万一进行强杀时,还要考虑是否需要对业务进行补偿操作。
2022-08-16 18:06:13
4019
原创 docker login www.xxx.com 报错
docker 在远程ssh登陆时报错docker login www.xxx.com输入用户名:输入密码:出现如下错误:解决方案:
2022-08-11 13:53:50
4418
1
原创 OLTP与OLAP
参考:https://www.modb.pro/db/116013OLTP(On-line Transaction Processing)面向的是高并发低延时的增删改查(INSERT, DELETE, UPDATE, SELECT, etc…)。OLAP(On-line Analytical Processing)面向的是BI分析型数据请求,其对延时有较高的容忍度,处理数据量相较OLTP要大很多。传统意义上与OLTP对应的是MySQL等关系型数据库,与OLAP相对应的则是数据仓库。OLTP
2022-05-24 15:23:14
115
原创 Hadoop、Hive、HDFS、Hbase、KUDU、Spark之间关系
Hadoop是一个分布式计算的开源框架,包含三大核心组件:HDFS(Hadoop Distributed System分布式文件系统)、HIVE(数据仓库工具)、HBASEHDFSHDFS是Hadoop生态圈最基础的存储引擎,请注意HDFS的设计主要为大文件存储,为高吞吐量的读取和写入服务,HDFS不适合存储小文件,也不支持大量的随机读写。Hive专门处理存储在HDFS数据仓库工具,通过Hive可以使用HQL语言查询存放在HDFS上的数据。HQL是一种类SQL语言,这种语言最终被
2022-05-24 15:19:12
3829
原创 kudu的原理及java调用
hdfs与hbase数据存储的缺点目前数据存储有了HDFS与hbase,为什么还要额外的弄一个kudu呢?HDFS:使用列式存储格式Apache Parquet,Apache ORC,适合离线分析,不支持单条纪录级别的update操作,随机读写性能差。HBASE:可以进行高效随机读写,却并不适用于基于SQL的数据分析方向,大批量数据获取时的性能较差。正因为HDFS与HBASE有上面这些缺点,KUDU较好的解决了HDFS与HBASE的这些缺点,它不及HDFS批处理快,也不及HBas
2022-05-24 14:23:27
559
原创 kudu 导入/导出 数据
参考:https://blog.youkuaiyun.com/zimiao552147572/article/details/90770469导出 kudu表数据 为csv文件 impala-shell中 导出kudu表数据为csv文件,或者说是通过impala的外部映射表把kudu表数据导出为csv文件 impala-shell -q "select * from rawdata.event_wos_p1 LIMIT 100" -B --output_delimiter="," -o /home/gzp/ev
2022-05-23 10:13:34
798
原创 mysql语句实现saveorupdate操作
insert into revenue_statement(company_id, billing_year,billing_month,recharge_amount,settlement_amount,create_id,create_time,update_id,update_time) values ('197', '2021','202103',null,'1','5','2022-05-09 14:50:37','5','2022-05-09 14:50:37')on duplic
2022-05-10 10:40:32
1175
原创 mysql去重的几种方式
1. distinctselect distinct 列名 from 表名2. row_numberselect *, row_number() over (partition by 想去重的列名 order by 列名) as row_numfrom 表名where row_num = 13.group byselect 列名 from 表名 group by 列名重复量多时,GROUP BY总的处理效率比DISTINCT高,重复量低时,DISTINCT就比GROUP BY快一
2022-05-06 16:57:24
6220
原创 解决Idea GitLab Clone failed: Authentication failed for的问题
git clone项目一直报Clone failed: Authentication failed for ‘Xxxxxxx’,却又没有弹出消息框。这个是因为输入了一次错误的密码和用户名后 不再弹出修改账号信息的界面导致。查找之后在git上输入命令git config --system --unset credential.helper之后就可以弹出用户名密码输入框了(这个问题还是因为用户名密码不匹配造成的)...
2022-04-22 10:22:25
1019
原创 @Scheduled中fixedDelay、initialDelay 和cron表达式的解析及区别
注解参数区别@Scheduled注解可以控制方法定时执行,其中有三个参数可选择:1、fixedDelay控制方法执行的间隔时间,是以上一次方法执行完开始算起,如上一次方法执行阻塞住了,那么直到上一次执行完,并间隔给定的时间后,执行下一次。2、fixedRate是按照一定的速率执行,是从上一次方法执行开始的时间算起,如果上一次方法阻塞住了,下一次也是不会执行,但是在阻塞这段时间内累计应该执行的次数,当不再阻塞时,一下子把这些全部执行掉,而后再按照固定速率继续执行。3、cron表达式可以定制化执行任务,
2022-04-12 16:58:39
3366
原创 @Scheduled进行多线程配置执行
发现项目中有一个定时任务延迟6秒启动,然后死循环。(@Scheduled注解各参数详解)/** * 延迟60秒继续执行,异步执行; */ @Scheduled(fixedDelay = 6000) public void run() { log.info("init zk register"); while (true) { log.info("do something..."); T
2022-04-12 16:55:33
1784
原创 java文件上传解析
单个文件上传(直接获取MultipartFile的文件,这个fromdata的文件的key必须是excel)@PostMapping("implExcel") private BaseDto implExcel(MultipartFile excel){ User user=new User(); List<User> users = testService.implExcel(excel, user); Map map=new Ha.
2022-03-14 13:15:18
933
原创 mysql实现两列数据或者两行数据相减
注意:两行数据相减必须先转子查询,转为两列后,才能进行相减select (n.a-n.b) as cfrom (select (SELECT settlement_amount FROM `domestic_vendor_statements`where billing_month='202203') a,(SELECT settlement_amount FROM `domestic_vendor_statements`where billing_month='202204') b) as
2022-03-01 16:06:58
17286
原创 MySQL的行锁
行锁MySQL的行锁又分为共享锁(S锁)和排他锁(X锁)。一般普通的select语句,InnoDB不加任何锁,我们称之为快照读select * from test;通过加S锁和X锁的select语句或者插入/更新/删除操作,我们称之为当前读select * from test lock in share mode;select * from test for update;insert into test values(...);update test set ...;delete fr
2022-02-28 14:57:45
410
原创 mysql高级面试整理
MVCC(多版本控制)MVCC是一种多版本并发控制机制,是MySQL的InnoDB存储引擎实现隔离级别的一种具体方式,用于实现提交读和可重复读这两种隔离级别。MVCC是通过保存数据在某个时间点的快照来实现该机制,其在每行记录后面保存两个隐藏的列,分别保存这个行的创建版本号和删除版本号,然后Innodb的MVCC使用到的快照存储在Undo日志中,该日志通过回滚指针把一个数据行所有快照连接起来。如何查询慢sql如果你想查看哪些查询语句的执行效率低,可以从慢查询日志中获得信息。和错误日志、查询日志一样,慢查
2022-02-24 18:17:06
413
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人