- 博客(61)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
原创 【工作笔记】Springboot一个比较通用的数据脱敏处理办法
个人信息中的手机号、邮箱等属于敏感数据,其中手机号需要加密存储,邮箱可以直接存储但是在获取和展示时要做脱敏处理;针对此类敏感数据, 介绍一种比较通用的脱敏方法。
2023-05-10 18:39:35
1449
原创 【工作笔记】Mysql写入报错:Incorrect datetime value: ‘1970-01-01 08:00:00‘
原因是MySQL关于时间类型的取值范围进行检查,最早时间为1970-01-01 00:00:01。算上时区的话, 那就是1970-01-01 08:00:01。所以1970-01-01 08:00:00的时间无法写入。即1970-01-01 08:00:01。建议将默认时间赋值为。
2023-04-12 13:21:44
3129
原创 【工作笔记】- maven-shade-plugin打包合并META-INF/services
Maven按照POM依赖声明的先后顺序, 只加载了第一个services文件中的内容,后面的两条都被忽略掉了,导致运行报错。之前被忽略掉的services实现类已经都被加上去了 ,再运行jar包, 恢复正常了。
2022-12-01 17:05:15
3878
1
原创 【Flink系列】开启jdbc批量写入
值得注意的是,useServerPrepStmts开启后,客户端不再对SQL预编译,也就是说上面说的SQL改写也不会发生,所以在批量写入时,把此参数关闭,或保持默认配置;使用Flink应用对流水进行计算和统计,结果一般字段较少,每条计算结果的数据量不大,如果开启批量写入,可以降低和数据库之间的网络交换次数,也可提升数据库的数据写入效率;能让服务端执行预处理语句,但默认情况下客户端每次执行完后会 close 预处理语句,并不会复用,这样预处理的效率甚至不如文本执行。,这会让客户端缓存预处理语句。
2022-11-09 16:17:01
2831
原创 【Flink系列】JDBC写入调优
使用Flink开发的应用常见实时写入,即更新每一条流水的统计结果至数据库。在生产环境下,数据库为多个应用共用,那随着Flink应用的不断新增部署,数据库的写入压力越来越大,直至Flink应用出现阻塞等待、背压的情况出现,情况更严重的情况下会导致任务checkpoint超时、重启。从以上角度出发,考虑针对一些特定场景优化Flink应用,降低写入频次,减轻对数据库的压力。
2022-11-09 14:41:08
2040
原创 【工作笔记】-Flink1.15.1:NoSuchMethodError: org.apache.commons.cli.Option.builder(Ljava/lang/String
Flink运行错误处理:NoSuchMethodError: org.apache.commons.cli.Option.builder
2022-09-01 10:34:08
975
原创 【Flink系列】- RocksDB增量模式checkpoint大小持续增长的问题及解决
背景一个使用FlinkSQL开发的生产线上任务, 使用Tumble Window做聚和统计,并且配置table.exec.state.ttl为7200000,设置checkpoint周期为5分钟,使用rocksdb的增量模式。正常情况下,任务运行一段时间以后,新增和过期的状态达到动态的平衡,随着RocksDB的compaction,checkpoint的大小会在小范围内上下起伏。实际观察到,checkpoint大小持续缓慢增长,运行20天以后,从最初了100M左右,增长到了2G,checkpoi
2022-03-31 10:28:07
7383
9
原创 【工作笔记】Linux磁盘扩充
第一步fdisk -l查看还有未被分配的磁盘。第二步fdisk /dev/vdc给磁盘做lvm分区,第一步选择n,后面默认,最后一步w写分区第三步pvcreate /dev/vdc1初始化刚才创建的分区第四步vgextend vgdata /dev/vdc1将初始化的分区加入到虚拟卷组,虚拟卷组可以通过vgdisplay来查看。第五步lvextend -L +500G /dev/ma...
2022-01-05 10:01:13
1088
原创 【工作笔记】- Hadoop Yarn异常“Container is running beyond physical memory limit” 解决
Yarn容器运行一段时间以后出现“Container is running beyond physical memory limit”的报错,容器被kill掉,任务失败。 出现此错误时, 修改yarn-site.xml文件,添加两个配置:<property> <name>yarn.nodemanager.pmem-check-enabled</name> <value>false</value></property>&
2021-09-01 19:10:55
801
1
原创 【工作笔记】-Jedis连接池配置排雷,java.net.SocketException: Broken pipe
业务中使用到了Jedis连接池,近期生产业务频繁出现“java.net.SocketException: Broken pipe”的异常堆栈信息,虽然没有影响到生产业务,但是非常烦人,打算来排除一下问题。这类问题一般是Jedis客户端与服务端之间的服务连接断开了,但是连接池没有及时检测出来,导致坏链一直保存在池中,业务从连接池中取出坏链,导致抛异常。看一下连接池的配置: JedisPoolConfig poolConfig = new JedisPoolConfig(); poolConfig.
2021-04-09 16:43:34
1423
原创 【工作笔记】- Yarn集群搭建
以下步骤在三台机器上相同操作:第一步,基础环境准备1. 创建hadoop用户,设置密码uaseradd hadooppasswd hadoop2. 下载hadoophttps://hadoop.apache.org/releases.html我这里下载的是3.1.4版本3. 上传、解压tar -xvf hadoop-3.1.4.tar4. 修改/etc/hosts 172.30.251.225 node1 172.30.251.226 node2...
2020-12-30 16:04:51
913
1
原创 【工作笔记】-Spring中bean实例创建时接收参数的几种形式
这是一篇关于spring实践中的一点小笔记。一般情况下,使用springboot, 创建对象实例时,类似以下方式: @Bean public IBusinessService payService(){ return new BusinessService(); }当以此方式创建了多个Bean时,这些Bean在内存中的组织形式可以有多种,例如创建了以下对象: @Bean public IBusinessService payService
2020-05-20 10:57:11
831
原创 【工作笔记】- Eureka Client与Server版本不匹配导致Cannot execute request on any known server错误
通过springboot集成eureka做server和client的部署,参照其他博主的文章对程序进行了配置,启动后client无法正常注册到server端,报以下错误:2020-05-15 10:57:38.034 INFO 13644 --- [freshExecutor-0] com.netflix.discovery.DiscoveryClient : Getting all instance registry info from the eureka server2020-05-
2020-05-15 16:16:45
1633
原创 【工作笔记】- Maven通过配置Profile指定不同的资源目录
项目开发过程中可能会需要区分不同开发环境的服务配置以及资源配置,例如测试环境、UAT环境、生产环境下不同的配置文件等。使用Maven的Profiles配置可以解决这一问题。一、添加目录dev、prod、uat三个环境,使用三个目录加以区分。二、添加Profiles <profiles> <profile> ...
2020-01-22 15:35:39
778
原创 【工作笔记】 - Hazelcast作为Mybatis二级缓存完全使用手册
Mybatis支持各种二级缓存实现,其中就包括Hazelcast. 我们都知道Hazelcast是一个分布式内存网格(In-Memory-Data-Grid), 但是大多数时候都被用做分布式缓存。将Hazelcast作为Mybatis的二级缓存来使用时,将其配置为stand-alone的模式,即单节点,不尝试连接到任何集群。我们分为几个步骤来做。第一步,引入Maven依赖: <...
2020-01-14 23:50:16
867
原创 【工作笔记】- linux创建用户并且挂载目录
使用命令创建一个新用户:useradd -d /home/newuser -m newuser为新建用户设置密码:passwd newuser系统将创建一个newuser目录,并且为其创建用户目录。挂载一块新的磁盘设备, 使用fdisk -l 查看设备信息:为磁盘设备添加分区(假设/dev/vdc是一个未分区的磁盘):fdisk /dev/vdc...
2020-01-13 19:52:10
2200
原创 工作笔记-linux常用指令持续更新
查询指定端口的tcp连接状态netstat -an|grep 5701 |more查看cpu架构信息lscpu查看cpu详细信息cat /proc/cpuinfo# 查看物理CPU个数cat /proc/cpuinfo | grep "physical id" | sort | uniq# 查看每个物理CPU中core的个数(即核数)cat /...
2019-12-05 11:13:51
200
原创 【Hazelcast源码笔记】一、AddressPicker
Node在创建过程中,会生成一个AddressPicker,通过AddressPicker来获取publicAddress和bindAddress. 在很多情况下,这两者包含相同的IP和端口。在某些情况下会有不同,如通过<public-address>配置指定了publicAddress或者通过MemberAddressProvider来生成了bindAddress。下面看源码:在...
2019-11-19 17:00:09
861
原创 【工作笔记】Springboot集成Redis添加密码连接"NOAUTH Authentication required"
一个很简单的问题,使用Springboot集成Redis,并且添加Auth授权,正常配置我认为是这样的:spring: redis: database: 0 url: redis://127.0.0.1:6379 password: 123456password ssl: false timeout: 1000 jedis: p...
2019-11-13 15:56:23
5790
1
原创 【工作笔记】- SUSE 11.X安装keepalived
今天想实践一下nginx+keepalived的高可用集群方案,先安装keepalived。SUSE系统离线源码安装有我很多痛苦的回忆,今天还是如此,经历漫长的找库、安装。先上传keepalived安装包:keepalived-2.0.19.tar下载链接:https://www.keepalived.org/download.html然后解压,准备源码安装configure, ...
2019-10-29 20:52:12
1237
原创 温故知新-开发简单的Java Web项目,使用Servlet处理请求并进行页面跳转
用Spring、SpringBoot用到麻木,已经忘记纯Java Web项目是怎么开发的了,大学的知识都还给了赵小薇姐姐,今天创建一个Java Web简单程序,后续将继续写Spring MVC原理及Tomcat原理。IDE环境为Spring Tool Suit,先创建一个Dynamic Web Project选择Target Runtime为Tomcat 8命名服务名,选择J...
2019-10-12 17:51:25
344
原创 工作笔记-Hazelcast安装和基本配置
服务端Hazelcast区分服务端和客户端,服务端通过hazelcast.xml文件加载配置,客户端通过hazelcast-client.xml文件加载配置。3.12版本以后支持yaml文件格式的配置,在xml和yaml文件同时存在时,优先加载xml文件。以下是hazelcast.xml文件的最小配置(yaml格式):hazelcast: instance-name: haze...
2019-09-05 00:07:09
4070
原创 工作笔记-GuavaCache源码分析
Guava CacheGuava Cache是google的java扩展包中的一个模块,主要提供缓存服务,整体实现比较简单,单模块的核心源文件不超过20个,花几个小时可以看个大概。关于Guava Cache的使用介绍可以参考github上的wiki:https://github.com/google/guava/wiki/CachesExplainedCache的实现类似Concurr...
2019-09-04 09:12:51
434
原创 工作笔记-【Hashtable】和【HashMap】,源码分析
花点时间通过读写方法对Map接口的这三个实现类做出比较:Hashtable,HashMap,ConcurrentHashMapHashtable是比较老的实现,HashMap对Hashtable做了优化,ConcurrentHashMap是HashMap的高并发实现。以Put方法为例,以下是三者的实现及部分注释。HashMapfinal V putVal(int hash, K ...
2019-09-03 00:48:35
187
原创 工作笔记-JUnit测试时,【unknown protocol: classpath】
在application.yml中使用了classpath路径的uri来获取工程中的资源文件: javax: cache: provider: org.ehcache.jsr107.EhcacheCachingProvider uri: classpath:ehcache.xml m...
2019-08-26 10:27:37
1598
原创 工作笔记-记一次Jedis连接泄露的问题及解决过程
问题追踪我使用的Jedis版本是2.9.0,通过连接池访问,在做压力测试时,发现在高并发环境下,连接泄露,连接池内的连接未能正常返还,导致"could not get resource fron pool".看使用代码: public void execute(RedisAction callback) { Jedis jedis = jedisPool.getResource...
2019-08-20 12:09:19
4315
10
原创 【CentOS】「无法为立即文档创建临时文件: 只读文件系统」的解决
原因不明,只是在某天登陆虚拟机工作的时候,按下tab自动命令补齐,就出现了此错误。使用 "df -h "命令查看文件对应的磁盘:# df -h文件系统 容量 已用 可用 已用% 挂载点/dev/vda1 99G 9.5G 85G 11% /devtmpfs 5.9G 0 5.9G 0% /devtmpfs ...
2019-07-22 16:38:51
7381
3
原创 错误java.lang.ClassNotFoundException: com.google.common.collect.ImmutableMap,巨坑
又碰到了坑。。。折腾了两三个小时,发现Maven有时候还真的是坑。今天打算玩一玩hystrix。添加了POM依赖以后,启动程序,发现报错:java.lang.ClassNotFoundException: com.google.common.collect.ImmutableMap咦?莫名其妙,仔细检查了一下发现是HystrixCommandAspect引用的一个guava包中的一个类...
2019-04-11 20:07:58
19333
1
原创 Mybatis集成:NoClassDefFoundError: org/springframework/jdbc/datasource/TransactionAwareDataSourceProxy
在使用Springboot集成Mybatis的时候,都按照手册配置好了。但是实际运行就是报错:NoClassDefFoundError: org/springframework/jdbc/datasource/TransactionAwareDataSourceProxy,真是各种试了半天,都没效。后来发现原因真的吐血。我使用的springboot-starter的版本是2.1.3,对应的默认...
2019-04-06 15:13:28
849
原创 httpClient,Certificate for ip/域名 doesn't match any of the subject altinative names: []问题处理
在做https双向认证通信类开发的时候,遇到一个问题,错误信息是:javax.net.ssl.SSLPeerUnverifiedException: Certificate for <我请求的IP地址> doesn't match any of the subject alternative names: []遇到这种情况,先查看你安装的Certificate证书的subject ...
2019-02-25 17:29:05
22847
6
原创 工作笔记-Java 泛型和泛型参数
泛型是Java1.5以后的特性,在各种开源框架的源码当中可以看到很多泛型的使用,如果不对泛型做到了如指掌的话,看源码真的会有阻碍。下面是泛型的一个简单的例子。public class GenericsDemo<T> { private T demoProp; public T getDemoProp(){ return demoProp; } public v...
2018-12-05 20:42:15
275
原创 工作笔记-IntelliJ IDEA 使用笔记(持续更新)
从eclipse转IntelliJ, 很多操作不太习惯。1.查看idea.log:工具栏help→Show Log In Finder,找到idea.log,可以查看到详细的错误日志。2.导入新的maven项目工具栏File→New→Module From Existing Sources。3. 导入时遇到错误Unsupported major.minor version 51...
2018-11-26 22:07:51
349
原创 工作笔记-Maven依赖:POM Reference
POM文件POM, Project Object Model, 项目对象模型,是Maven项目的XML表示,一个pom.xml文件可以几乎完成所有maven项目的配置。POM标签分为三大类,项目基础及依赖、项目构建、环境及资源文件。这三大类是比较普遍和重要的配置归类,除这三大类之外还有一些辅助配置,项目中接触的较少。按照顺序把三大类的配置完成了, 一个Maven项目大致上就能配置得很全面了...
2018-11-26 17:38:06
702
JAVA程序设计_具有发牌洗牌功能的纸牌游戏
2010-10-10
多线程socket编程的问题,使用BIO模式的话,一个线程只能处理一个Socket吗?
2020-02-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人