自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

风起尘落的博客

共同学习,共同进步

  • 博客(164)
  • 资源 (3)
  • 收藏
  • 关注

原创 凤凰架构阅读记录-三(分布式算法)

世界上只有一种共识协议,就是 Paxos,其他所有共识算法都是 Paxos 的退化版本。

2023-07-03 20:52:01 182

原创 凤凰架构--阅读记录二

隔离级别与mvcc的关系

2023-03-12 18:57:43 268 1

原创 凤凰架构阅读记录

凤凰架构

2023-03-06 18:50:39 145

原创 idea扫描过时方法

idea扫描过时方法

2023-02-28 17:03:34 352

原创 @TableField不生效

@TableField

2023-02-09 15:26:07 985

原创 MQ如何避免消息堆积

产生原因:生产速率大于消费速率解决方式1.增加消费者节点2.消费者设置批量获取消息,减少网络传输的次数。rocketMq消费者设置:consumer.setConsumeMessageBatchMaxSize(10);//每次拉取10条

2022-03-01 21:28:05 336 1

原创 List对象转map, jackJson

Map<Long, AchievementConfiguration> configurationMap = configurationList.stream().collect(Collectors.toMap(AchievementConfiguration::getId, t->t,(k1,k2)->k2));

2022-01-10 14:52:16 419

原创 Arthas + JRebel 提高开发效率

前言之前所谓十倍提高效率,也是有场景限制的,并不会原本需要 10 个小时的任务,突然 1 个小时就能完成了。这里指的是,本地使用 Spring 环境开发时,通过这套方法,可以随时调用任意方法,不需要反复重启,不需要编写入口代码(如 HTTP 入口),不需要等待 XXL-JOB 的任务调度。在这些场景下,会提高十倍效率一点也不为过。准备工作安装 JRebelJRebel 可以使得大部分代码修改,如新增接口、类、方法时均可无需重启,热加载变更代码。安装 JRebel and XRebel for I

2021-10-11 15:57:45 541

原创 Aware懒加载失效

实现了Aware接口的方法,如果开启了全局懒加载会注入失败。实现aware接口的方法只有在spring容器启动时会加载一些 特殊逻辑,普通的懒加载不会加载这些逻辑。invokeAwareInterfaces

2021-09-17 16:10:59 192

原创 通过上下文获取HttpServelet对象

((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();

2021-07-21 18:59:44 183

原创 打印sql日志

@Component@Slf4jpublic class SQLLogFilter extends FilterEventAdapter { @Override public boolean statement_execute(FilterChain chain, StatementProxy statement, String sql) throws SQLException { return super.statement_execute(chain, statem

2021-07-20 17:04:32 1031

原创 mybatisplus设置字段为空仍然更新

mybatisplus设置字段为空仍然更新@TableField(updateStrategy= FieldStrategy.IGNORED)private Long transitionsSkinStatusId;

2021-07-14 16:30:40 862

原创 ThreadLocal使用

场景:同一个线程,不同的类之间的变量传递。public class StrokeUtil { private static ThreadLocal<ConcurrentHashMap<String, Long>> strokeThreadLocal = new ThreadLocal<>(); public static void remove(){ strokeThreadLocal.remove(); }

2021-07-05 19:14:22 102

原创 @Transactional事务传播分析

1.场景一:两个service类ClassAServiceImpl ,ClassBServiceImpl;A类的testA调用B类的testB方法,A类中testA方法添加事务注解并且调用B类的testB方法时添加try catch,分析testB方法是否添加事务注解对程序的影响。 A类:@Servicepublic class ClassAServiceImpl implements IClassAService { private final IClassBServ...

2021-05-14 19:37:41 2723 1

原创 redisson文档

redisson使用文档地址:https://www.bookstack.cn/read/redisson-wiki-zh/Redisson%E9%A1%B9%E7%9B%AE%E4%BB%8B%E7%BB%8D.mdredis支持命令文档地址:http://doc.redisfans.com/index.htmlRedis命令和Redisson对象匹配列表文档地址:https://github.com/redisson/redisson/wiki/11.-Redis-commands-mapping

2021-04-26 19:17:26 1712

原创 RocketMq broker,queue选择源码分析

1.启用broker故障延迟源码:public MessageQueue selectOneMessageQueue(final TopicPublishInfo tpInfo, final String lastBrokerName) { // 默认为false,代表不启用broker故障延迟 if (this.sendLatencyFaultEnable) { try { // 随机数且+1 .

2021-03-26 14:37:34 613

原创 rocketMq架构设计

2021-03-26 14:32:17 97

原创 maven依赖冲突查询

使用idea下载插件maven helper

2021-01-21 18:36:49 193

原创 dump日志分析工具

mat :不需要安装eclipse,独立运行https://www.eclipse.org/mat/downloads.php

2021-01-19 20:25:10 1361

原创 apollo没有读取到最新配置

1. 使用了@ConfigurationProperties获取值而不是使用@value @ConfigurationProperties如果需要在Apollo配置变化时自动更新注入的值,需要配合使用EnvironmentChangeEvent或RefreshScope2. 多个命名空间配置相同的key,value导致apollo客户端一直读的是其中一个配置,其他key,value就算是发生了变化也读取不到。...

2020-12-18 11:10:22 3358

转载 三色标记的漏标问题及处理

什么是三色标记三色标记是在cms和g1中使用的垃圾追踪算法 黑色 从GCRoots开始,已扫描过它全部引用的对象,标记为黑色 灰色 扫描过对象本身,还没完全扫描过它全部引用的对象,标记为灰色 白色 还没扫描过的对象,标记为白色 所以,从GCRoots开始,顺着一直向下扫描,用可达性分析算法,最后所有的白色对象,都是垃圾对象,可以回收三色标记的漏标问题我们采用一个最简单的模型,只有三个对象 某个状态下,黑色->灰色->白色 如果

2020-12-14 13:56:52 1492 1

转载 Https原理及流程

我们知道,HTTP请求都是明文传输的,所谓的明文指的是没有经过加密的信息,如果HTTP请求被黑客拦截,并且里面含有银行卡密码等敏感数据的话,会非常危险。为了解决这个问题,Netscape 公司制定了HTTPS协议,HTTPS可以将数据加密传输,也就是传输的是密文,即便黑客在传输过程中拦截到数据也无法破译,这就保证了网络通信的安全。密码学基础在正式讲解HTTPS协议之前,我们首先要知道一些密码学的知识。明文: 明文指的是未被加密过的原始数据。密文:明文被某种加密算法加密之后,会变成密文,从而确保原

2020-12-14 13:38:41 101

原创 redis数据结构及其应用场景

1.String2.list3.hash4.set 数据结构:集合,无序,去重 5.sort set

2020-12-03 18:42:46 250

原创 navicat12步骤

1.选不要打开navicat2.打开破解软件3.patch选择navicat.exe路径4.打开navicat进行后续步骤

2020-12-03 09:25:32 348

原创 spring容器加载流程

2020-11-27 10:35:58 265

原创 mysql 事务,日志,mvcc,锁详细分析

一:mysql事务1.事务特性 原子性 : 实现原理(undo log) 一致性 : 实现原理( redo log) 隔离性 : 持久性 : 实现原理 (redo log)2. 事务隔离级别读未提交:一个事务可以读取到另一个事务未提交的修改。这会带来脏读、幻读、不可重复读问题。(基本没用)读已提交:一个事务只能读取另一个事务已经提交的修改。其避免了脏读,但仍然存在不可重复读和幻读问题。可重复读(mysql 默认隔离级别):同一个事务中多...

2020-11-26 16:55:29 350

转载 互联网项目中mysql应该选什么事务隔离级别

引言开始我们的内容,相信大家一定遇到过下面的一个面试场景面试官:“讲讲mysql有几个事务隔离级别?”你:“读未提交,读已提交,可重复读,串行化四个!默认是可重复读”面试官:“为什么mysql选可重复读作为默认的隔离级别?”(你面露苦色,不知如何回答!)面试官:"你们项目中选了哪个隔离级别?为什么?"你:“当然是默认的可重复读,至于原因。。呃。。。”(然后你就可以回去等通知了!)为了避免上述尴尬的场景,请继续往下阅读!Mysql默认的事务隔离级别是可重复读(Repeatable

2020-11-25 11:35:48 177

转载 MySQL的log日志文件

MySQL的那些log日志文件一、binlog日志binlog其实在日常的运维开发中是听得很多的,因为很多时候数据库数据的更新就是依赖binlog日志的。比如我们的数据保存在数据库中,现在我们有新的数据写入,或者有数据被更改致使数据库发生变更,而用户检索出来数据是走搜索引擎的,为了用户能搜到最新的数据我们需要把引擎的数据也改掉。总之就是:数据库变更,搜索引擎也需要变更,于是我们就会监听binlog的变更,如果binlog变更了。那么我们就需要将变更写入到对应的数据源中什么是binlog?

2020-11-24 18:06:00 947

转载 深入理解MySQL锁类型和加锁原理

前言MySQL索引底层数据结构与算法 MySQL性能优化原理-前篇 MySQL性能优化-实践篇1 MySQL性能优化-实践篇2 MySQL锁与事物隔离级别前面我们讲了MySQL数据库底层的数据结构与算法、MySQL性能优化篇一些内容。以及上篇讲了MySQL的行锁与事务隔离级别。本篇再重点来讲讲锁类型和加锁原理。首先对mysql锁进行划分:按照锁的粒度划分:行锁、表锁、页锁 按照锁的使用方式划分:共享锁、排它锁(悲观锁的一种实现) 还有两种思想上的锁:悲观锁、乐观锁。 InnoDB

2020-11-24 10:02:17 258

原创 wait,notify源码实现分析

1. wait,notify都是锁对象来调用的,一个锁对象会维护两个队列,一个是等待队列(存放调用wait方法的线程),一个是就绪队列(等待获取锁的线程的对象),等待队列的线程是无法参与锁竞争的,只有调用notify/notifyall 后可以把等待队列的线程移到就绪队列中,然后才能参加锁竞争。openjdk c++源码分析:路径:openjdk\hotspot\src\share\vm\runtime\objectMonitor.hpp ObjectMonitor() { _head

2020-11-23 14:08:19 540

原创 二叉树前序遍历

1.建立TreeNode类:public class TreeNode { public int val; public TreeNode left; public TreeNode right; public TreeNode(int val){ this.val = val; }}2.前序遍历:/** * @author oulei * 二叉树前序遍历 -- 根左右 */public class PreOrderTr.

2020-11-20 09:29:05 169

原创 LockSupport实现线程交替打印

public class AlternatePrint { public static Thread a = null; public static Thread b = null; public static void main(String[] args) { lockSupport(); } public static void lockSupport(){ char [] dataOne = "123456".t.

2020-11-20 09:25:19 745

转载 RocketMQ保证消息不丢失

分别从Producer发送机制、Broker的持久化机制,以及消费者的offSet机制来最大程度保证消息不易丢失从Producer的视角来看:如果消息未能正确的存储在MQ中,或者消费者未能正确的消费到这条消息,都是消息丢失。 从Broker的视角来看:如果消息已经存在Broker里面了,如何保证不会丢失呢(宕机、磁盘崩溃) 从Consumer的视角来看:如果消息已经完成持久化了,但是Consumer取了,但是未消费成功且没有反馈,就是消息丢失从Producer分析:如何确保消息正确的发送到了Bro

2020-11-06 15:18:52 524

转载 mq要如何处理消息丢失、重复消费?

如果要你实现一个支付宝向余额宝转账的功能,比如:账户a从支付宝转出5000余额宝转入5000,该怎么做呢?可能有些人会说,这还不简单,直接上图支付宝先给账户a减5000,调用余额宝的接口给余额宝的账号b加5000。用这种方式正常情况下是可以的,如果出现以下问题该怎么办呢?调用余额宝api时网络失败了 调用余额宝api时网络超时了 如果余额宝api业务逻辑比较复杂,耗时比较长,用户需要长时间的等待才有结果,用户体验不好有人说:如果调用余额宝api时网络失败了,对接口进行重试不就可以解

2020-11-05 11:28:39 1891

转载 mvcc实现原理

1 什么是MVCC MVCC全称是:Multiversion concurrency control,多版本并发控制,提供并发访问数据库时,对事务内读取的到的内存做处理,用来避免写操作堵塞读操作的并发问题。 举个例子,程序员A正在读数据库中某些内容,而程序员B正在给这些内容做修改(假设是在一个事务内修改,大概持续10s左右),A在这10s内 则可能看到一个不一致的数据,在B没有提交前,如何让A能够一直读到的数据都是一致的呢? 有几种处理方法,第一种:...

2020-11-03 19:48:43 3756

原创 分布式配置中心实现原理

1.程序应用读取云端分布式配置中心配置文件(通过长连接实现 -- 应用会和配置中心建立长连接)2.程序应用读取配置文件配置信息并加载到jvm内存和本地硬盘中3.当分布式配置中心配置文件发生变化时(通过比较版本号或者加密后的md5) ,将变化通知程序应用,然后程序应用重新拉取配置文件信息。...

2020-10-21 19:29:17 723

原创 mysql查看锁表情况与解决锁

1.查看那些表被锁住了:show OPEN TABLES where In_use > 0;2.查询正在进行的事务:SELECT * FROM information_schema.INNODB_TRX3.删除长时间没有释放的事务kill 线程id

2020-10-20 11:47:22 2388

转载 集合框架图

2020-10-20 10:39:54 232

转载 mysql中的回表查询与索引覆盖

了解一下MySQL中的回表查询与索引覆盖。回表查询要说回表查询,先要从InnoDB的索引实现说起。InnoDB有两大类索引,一类是聚集索引(Clustered Index),一类是普通索引(Secondary Index)。InnoDB的聚集索引InnoDB聚集索引的叶子节点存储行记录,因此InnoDB必须要有且只有一个聚集索引。1.如果表定义了PK(Primary Key,主键),那么PK就是聚集索引。2.如果表没有定义PK,则第一个NOT NULL UNIQUE的列就是聚集索引。

2020-10-11 16:15:28 281

转载 为什么String要设计成不可变的?

这是一个老生常谈的话题(This is an old yet still popular question). 在Java中将String设计成不可变的是综合考虑到各种因素的结果,想要理解这个问题,需要综合内存,同步,数据结构以及安全等方面的考虑. 在下文中,我将为各种原因做一个小结。1. 字符串常量池的需要字符串常量池(String pool,String intern pool, String保留池) 是Java堆内存中一个特殊的存储区域, 当创建一个String对象时,假如此字符串值已经存在.

2020-10-10 17:37:36 176

distributed.sql

rbac权限模型的表结构,包括用户表,角色表  用户角色表,权限表,角色权限表。其中用户角色表和角色权限表是两张关联表。

2020-01-20

mysql-5.7.21-linux-glinbc-64下载地址

mysql-5.7.21-linux-glinbc-64,liunx下安装

2019-09-25

基于QT的QQ聊天(实现文件传输,消息记录在数据库的保存)

实习客户端的登录,消息记录在数据库的保存,历史消息记录的查看,文件图像传输

2018-06-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除