- 博客(15)
- 收藏
- 关注
原创 Sharding JDBC分库分表及读写分离
与将数据根据分片键打散至各个数据节点的水平分片不同,读写分离则是根据 SQL 语义的分析,将读操。#cid列的值%2+1,要么等于1就选course_1表,等于2就选course_2表。#cid列的值%2+1,要么等于1就选course_1表,等于2就选course_2表。#真实表分布,m1库的course_1或course_2的表。#真实表分布,m1库的course_1或course_2的表。#读写分离规则, m0 主库,s0 从库。#用表的cid列作为分片规则。#基于读写分离的表分片。
2023-03-23 11:52:45
280
原创 mybatis+自定义注解实现对数据库敏感字段进行加密
MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方法调用包括://语句执行拦截// 参数获取、设置时进行拦截// 对返回结果进行拦截//sql语句拦截简而言之,即在执行sql的整个周期中,我们可以任意切入到某一点对sql的参数、sql执行结果集、sql语句本身等进行切面处理。
2022-12-08 15:27:16
1728
2
原创 MAC TELENT命令找不到
1 首先执行 安装Telent 命令: brew install telnet 如果系统提示 zsh: command not found: brew ,则执行 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 序列号选择中科大(1) 原因是 未安装homebrew ...
2022-04-09 23:22:48
1443
原创 Linux下创建定时备份数据库
1 背景 线上发生过数据库误操作事件,项目组要求对生产库定时进行备份。 2 实现步骤 2.1 备份与还原数据库命令 #前提是安装了mysqldump mysqldump -u $username -p$password $database_name > $backup_dir/mydb.sql mysql -u $username -p$password $database_name < /opt/startdt/mysql-backups/mydb.sql 2.2 实现过程
2022-04-07 10:43:15
1476
原创 MAC启动项目慢的解决方法
打卡系统偏好设置->共享 修改电脑名称 修改hosts文件/etc/hosts 在localhost后面加上 电脑名称.local
2021-11-10 15:06:36
1016
原创 GIT LINUX 常用命令
Git 命令 git stash git pull git stash pop mvn clean install -Dmaven.test.skip mvn dependency:tree //撤销最近的commit git reset HEAD~ //代码还原 git reset --hard 将指定的提交commitHash,合并到当前分支 git cherry-pick 3252b2a5c9c9ecf84a2e43feaa27fa9a17c0d889 Linux tail -n
2021-11-08 17:03:06
776
原创 2021面试题
1 Java相关 1.1 反射和动态代理 反射:在运行状态中,对于任意的一个类,都能够知道这个类的所有属性和方法,对任意一个对象都能够通过反射机制调用一个类的任意方法,这种动态获取类信息及动态调用类对象方法的功能称为java的反射机制。 动态代理:就是根据对象在内存中加载的Class类创建运行时类对象,从而调用代理类方法和属性。使用Proxy和InvocationHandler两个类,并实现invoke方法 1.2 Spring的两种动态代理:Jdk和Cglib 的区别和实现 java动态代理是利
2021-10-10 22:54:47
626
1
原创 框架知识Java
1 dubbo Dubbo的服务注册与发现是如何实现的 答案要点 1)服务容器负责启动,加载,运行服务提供者。 2)服务提供者在启动时,向注册中心注册自己提供的服务。 3)服务消费者在启动时,向注册中心订阅自己所需的服务。 4)注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者 Dubbo的软负载均衡策略有哪些? 延伸题目:一致性Hash算法(或者其它算法)的原理是什么? 答案要点 1)Dubbo提供了4种均衡策略,如:Random LoadBa
2021-09-13 09:35:43
205
原创 MySQL数据库
1 MySQL复制功能 1.1复制的作用 基于语句的复制和基于行的复制两种。 复制是让一台服务器的数据与其他服务器保持同步,通过复制可以让读操作指向备库来获得更好的读扩展。 数据分布 负载均衡 备份 高可用和故障切换 MySQL升级测试 1.2复制如何进行工作 在主库上把数据更改记录到二进制文件。 备库将主库中的日志复制到自己的中继日志中。 备库读取中继日志事件,将其放到备库数据之上。 1.3 复制的原理 1、基于语句的复制 在Master上执行的SQL语句,...
2021-09-09 17:55:51
238
原创 java面试
1 Java基础 1.1 String、StringBuffer与StringBuilder之间区别 String是不可变的对象,因此在每次对String类型进行改变的时候其实都等同于生成了一个新的String对象 和String类不同的是,StringBuffer和StringBuilder类的对象能够被多次的修改,并且不产生新的未使用对象 StringBuffer字符串变量(线程安全) StringBuilder字符串变量(非线程安) 1.2ArrayList与Lin...
2021-09-08 10:04:33
208
原创 缓存的风险
1 缓存穿透 缓存穿透指查询了数据库中不存在的数据,每次查询都会先查询一级、二级缓存 在查询到最末端的数据库。 缓存穿透的原因有业务逻辑本身的问题和恶意攻击导致。 针对业务逻辑的问题:可以约定在一定时间内对返回为空的key值进行缓存,使得在一定时间内缓存只被穿透一次。 针对恶意攻击 可以使用布隆过滤器来解决。所谓恶意攻击是指请求者刻意构造数据库中肯定不存在的 Key 值,然后发送大量请求进行查询。布隆过滤器是用最小的代价来判断某个元素是否存在于某个集合的办法。如果布隆过滤器给出的判定...
2021-07-26 11:38:49
321
原创 Java锁的分类
1 锁的分类 无锁 -> 偏向锁->轻量锁(自旋锁)->重量级锁 1.1 偏向锁 当一个同步代码块中只有一个线程进行访问时,把整个同步都消除掉,标志位是01 当有另外一个线程尝试获取该锁时,偏向模式宣告结束 ...
2021-06-27 16:31:49
131
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅