- 博客(121)
- 资源 (1)
- 收藏
- 关注

原创 分布式开发最全的解决方案
分布式ID雪花算法算法原理:每家算法各有不同:百度:只支持雪花算法,组件已无人维护。滴滴:只支持数据库后端,适合对id有高可用需求。美团leaf:号段模式和雪花算法,适合 多场景的分布式id。SnowFlake算法的优点:(1)高性能高可用:生成时不依赖于数据库,完全在内存中生成。(2)容量大:每秒中能生成数百万的自增ID。(3)ID自增:存入数据库中,索引效率高。SnowFlake算法的缺点:依赖与系统时间的一致性,如果系统时间被回调,或者改变,可能会造成id冲突或者重复。Sn
2022-03-09 14:24:36
1456

原创 并发编程文章集合
1. 线程的生命周期和使用2. 线程安全与锁的理解和使用3 .volatile关键字的原理,作用,使用4 .java内存模型最详细的理解5. JMM中的happen-before规则6. Synchronized的使用及原理理解7. JUC并发包之 Lock详解8. JUC并发包之ReentrantLock原理详解9. 5分钟理解ConcurrentHashMap的原理和应用场景...
2020-12-11 22:06:30
123
原创 为什么做数据质量
2、为简化操作流程和概念,我们可以保留规则,任务的概念,将条目和规则的配置合并一起,减少操作流程。3、基础设施不稳定,高可能节点的失效导致数据的读写功能失效导致数据异常。1、添加稽核质检任务,来发现问题,确保数据的完整性,一致性,准确性等等。1、业务系统变更:包括表结构变更,源系统环境的变更,数据格式异常等。3、通过智能预警,确保任务的按时产出,延迟或者异常时候报警。4、针对数据的重要性,可以划分数据等级,可加快恢复速度。2、数据开发的bug,数据任务变更导致数据异常。4、数据迁移中的异常。
2023-09-06 16:11:42
201
原创 docker下安装db2
参考文档:https://blog.youkuaiyun.com/J_Anson/article/details/131128511。
2023-09-04 16:43:49
195
原创 docker安装在linux下的docker安装操作步骤完整版
关闭Docker服务:docker service docker stop / docker systemctl stop docker。进入容器:docker attach 容器ID或docker exec -it 容器ID /bin/bash,推荐使用后者。重启Docker服务:systemctl restart docker / service docker restart。启动(新)容器:docker run -it ubuntu /bin/bash。
2023-09-04 15:17:09
515
原创 linux 配置java 环境变量以及出现问题-bash: /opt/java/jdk1.8.0_381/bin/java: Permission denied
1、上传jdk至/usr/local/下, 或者自己制定的目录下。再次 Java -version,就成功了!在/etc/profile中最后增加。4、重新加载环境变量文件。
2023-08-25 15:29:46
1012
原创 本地代码链接git服务器
C:\chuanyi\program\workspace_b\data-message.git\ 处的项具有子项,并且未指定 Recurse 参数。[Y] 是(Y) [A] 全是(A) [N] 否(N) [L] 全否(L) [S] 暂停(S) [?请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。rm : 无法删除目录 C:\chuanyi\program\workspace_b\data-message.git\,因为该目录不为空。所在位置 行:1 字符: 1。
2022-09-23 17:36:07
610
原创 Redis 单线程为什么还能这么快?
Redis 单线程为什么还能这么快?因为它所有的数据都在内存中,所有的运算都是内存级别的运算,而且单线程避免了多线程的切换性能损耗问题。正因为 Redis 是单线程,所以要小心使用 Redis 指令,对于那些耗时的指令(比如keys),一定要谨慎使用,一不小心就可能会导致 Redis 卡顿。Redis 单线程如何处理那么多的并发客户端连接?Redis的IO多路复用:redis利用epoll来实现IO多路复用,将连接信息和事件放到队列中,依次放到文件事件分派器,事件分派器将事件分发给事件处理器。.
2022-02-22 18:03:02
309
原创 Redis list的数据类型 是 普通的双向链表 还是 双向循环链表?
Redis的5种数据结构,根据存储的数据类型和容量大小,都有2种不同的底层数据结构来存储。List数据类型,如果元素个数不超过512,且每个元素均小于64 bytes,用ziplist存储。其它情况用普通的双向链表存储。Redis 的列表相当于 Java 语言里面的 LinkedList,注意它是链表而不是数组。这意味着 list 的插入和删除操作非常快,时间复杂度为 O(1),但是索引定位很慢,时间复杂度为 O(n),这点让人非常意外。 当列表弹出了最后一个元素之后,该数据结构自动被删除,内存被回收。
2022-02-22 17:32:23
1180
原创 shell脚本基本命令demo
1.helloword.sh#!/bin/bash# 注意:"="号两边不能有空格,因为个人习惯问题,我就总喜欢在等号两边加上空格demo="hello world"# 在终端输出变量demo,也就是hello worldecho $demo2.Array.sh#!/bin/bash# 一对括号表示是数组,数组元素用“空格”符号分割开。a=(1 2 3 4 5)###### 获取 ######echo "获取"a=(1 2 3 4 5)# 用${#数组名[@或*]} 可以
2022-01-19 20:32:20
497
原创 Linux文件系统与常用操作命令
1 Linux文件系统1.1 Linux文件系统简介在Linux操作系统中,所有被操作系统管理的资源,例如网络接口卡、磁盘驱动器、打印机、输入输出设备、普通文件或是目录都被看作是一个文件。也就是说在LINUX系统中有一个重要的概念:一切都是文件。其实这是UNIX哲学的一个体现,而Linux是重写UNIX而来,所以这个概念也就传承了下来。在UNIX系统中,把一切资源都看作是文件,包括硬件设备。UNIX系统把每个硬件都看成是一个文件,通常称为设备文件,这样用户就可以用读写文件的方式实现对硬件的访问。1.
2022-01-19 20:06:31
396
原创 CountDownLatch的使用
当某项工作需要由若干项子任务并行地完成,并且只有在所有的子任务结束之后(正常结束或者异常结束),当前主任务才能进入下一阶段,CountDownLatch工具将是非常好用的工具,并且其所提供的操作方法还是线程安全的。try { final CountDownLatch latch = new CountDownLatch(factorIndexList.size()); //多线程执行同步任务 for (String factorIn
2021-12-28 17:26:09
221
原创 本地redis启动
1、进入redis安装目录:2、shipt +右键 打开shell命令框3、执行命令:.\redis-server.exe .\redis.windows.conf
2021-12-23 17:04:57
1208
原创 Java线程池如何合理配置核心线程数
线程数的设置的最主要的目的是为了充分并合理地使用 CPU 和内存等资源,从而最大限度地提高程序的性能,因此让我们一起去探索吧!首先要考虑到 CPU 核心数,那么在 Java 中如何获取核心线程数?可以使用 Runtime.getRuntime().availableProcessor() 方法来获取(可能不准确,作为参考)在确认了核心数后,再去判断是 CPU 密集型任务还是 IO 密集型任务:CPU 密集型任务:比如像加解密,压缩、计算等一系列需要大量耗费 CPU 资源的任务,大部分场景下都是纯
2021-12-08 15:23:38
1889
原创 Spring 定时任务 corn的写法
https://www.ycbbs.vip/?p=7009●星号(*):可用在所有字段中,表示对应时间域的每一个时刻,例如,*在分钟字段时,表示“每分钟”;●问号(?):该字符只在日期和星期字段中使用,它通常指定为“无意义的值”,相当于点位符;●减号(-):表达一个范围,如在小时字段中使用“10-12”,则表示从10到12点,即10,11,12;●逗号(,):表达一个列表值,如在星期字段中使用“MON,WED,FRI”,则表示星期一,星期三和星期五;●斜杠(/):x/y表达一个等步长序列,x为起
2021-12-03 13:23:17
591
原创 合并其他分支代码到自己的分支
此案例为合并master分支代码到dev-lp分支1.切换到dev分支git checkout master2.拉取分支代码git pull3.切换至自己的分支git checkout dev-lp4.合并master到dev-lp分支代码git merge dev-lp5.提交代码git push
2021-11-24 16:01:46
264
原创 ON DUPLICATE KEY UPDATE
<insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="true" > insert into compet_investstar_rank( sendercomp_id, apply_no, businsys_no, auth_id, open_id, income_ratio_tot...
2021-08-10 17:00:15
109
原创 在tortoiseSVN上将trunk的代码merge到branch上去
1.进入branch项目的目录2.右键选择merge3.下一步4.选择trunkcommit
2021-06-21 13:56:47
379
原创 <if test=““></if> test是数字时候条件是判断失效问题
问题:test使用 test="pageFristItem != null and pageFristItem !=’ ’ " 只有字符串可以,如果test里面参数是数字,就不失效了,处理办法:使用 ‘数字’.toString()就可以解决。代码: <if test="pageFristItem != null and pageFristItem !='' and pageLastItem != null and pageLastItem !='' and pageLastItem !=
2021-06-07 20:13:37
851
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人