自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CarryBest的博客

全栈之路

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

原创 关于三方系统对接-------使用MQ落地生产方案

关于三方系统对接以及MQ落地方案。

2023-09-08 09:56:22 66

原创 Spring Boot 兼容Redis、Redisson单机和哨兵模式

【代码】Spring boot 配置redis、redisson单机和哨兵模式。

2023-08-24 13:35:52 36

原创 Windows环境MySql主从同步、读写分离的搭建(Linux类似)

主服务器 ip:192.168.50.97从服务器 ip:172.28.4.244同步测试用的数据库scheme:carry-middleware。

2023-04-28 14:35:46 23

原创 MySQL InnoDB存储引擎

MySQL InnoDB存储引擎MySQL InnoDB存储引擎。

2023-04-19 15:04:08 18

原创 MySQL undo log

mysql undologmysql undolog

2023-03-30 10:56:25 22

原创 MySQL binlog

MySQL中的外键是什么、有什么作用

2023-03-24 11:12:29 13

原创 Java对象结构

java对象结构(偏向锁、jvm、锁升级)java对象结构(偏向锁、jvm、锁升级)

2023-02-22 10:29:56 27

原创 使用MAT分析生产线上OOM问题

java线程池如何合理配置核心线程数java线程池如何合理配置核心线程数

2023-02-16 10:21:06 57

原创 Redis和MySQL如何保持数据一致性(最终一致性)?

Redis和MySQL如何保持数据一致性?

2023-02-16 09:47:12 28

原创 系统架构整理

常用整理

2023-02-13 17:30:17 43

原创 MySQL MVCC

mvccd多版本并发控制

2023-02-09 14:39:36 23

原创 MySQL redo log

Mysql redo logMysql redo log

2022-04-28 15:39:23 9

原创 Mybatis 源码 MappedStatement原理

Mybatis在sping boot 启动的时候,会自动装配,其中包含重要的属性,Configuration里面的MappedStatement,封装了xml里面的所有select|insert|update|delete信息。本文以mybatisplus为例MybatisPlusAutoConfiguration首先加入mybatisplus的依赖后,sping boot找到com.baodidou.mybatisplus.autoconfigure包下面的META-INF/spring.fa

2022-04-26 19:16:31 1648

原创 手动实现自旋锁

实现自旋锁的方法主要是死循环+CAS,借鉴AtomicInteger原子类public final int getAndAddInt(Object var1, long var2, int var4) { int var5; do { var5 = this.getIntVolatile(var1, var2); } while(!this.compareAndSwapInt(var1, var2, var5, var5 + va...

2022-04-24 17:44:50 15

原创 java读写锁的作用

Java读写锁,也就是ReentrantReadWriteLock,其包含了读锁和写锁,其中读锁是可以多线程共享的,即共享锁,而写锁是排他锁,在更改时候不允许其他线程操作。读写锁底层是同一把锁(基于同一个AQS),所以会有同一时刻不允许读写锁共存的限制。解决读大于写的情况涉及并发问题,一般都有公共资源,俗称线程操纵资源类,新建资源(模拟缓存),缓存一般有3个方法,设置缓存、获取缓存、情况缓存。class MyCache { private static Map<String, .

2022-04-24 17:22:17 21

原创 Spring三级缓存解决循环依赖

我们都知道Spring中的BeanFactory是一个IOC容器,负责创建Bean和缓存一些单例的Bean对象,以供项目运行过程中使用。创建Bean的大概的过程: 实例化Bean对象,为Bean对象在内存中分配空间,各属性赋值为默认值 初始化Bean对象,为Bean对象填充属性 将Bean放入缓存 首先,容器为了缓存这些单例的Bean需要一个数据结构来存储,比如Map {k:name; v:bean}。而我们创建一个Bean就可以往Map中存入一个Bean。这时候我们仅

2022-04-21 13:52:21 12

原创 Redis - SDS

Redis深入浅出——字符串和SDS_二月的博客的博客-CSDN博客_redis sds

2022-04-19 17:22:29 12

原创 生产环境消息相关解决方案(一致性、顺序行、可靠性问题)

消息一致性解决方案(去重、顺序、丢失问题)

2022-03-19 16:08:33 322

原创 MySQL-Cache和Buffer(高速缓存区)

MySQL-Cache和Buffer(高速缓存区)

2021-12-20 19:32:22 22

原创 ThreadLocal以及源码解析

ThreadLocal

2021-12-20 19:29:14 225

原创 MySQL- Connection Pool(数据库连接池)

MySQL-Druid相关源码解析

2021-12-20 14:39:24 2854

原创 MySQL-主从复制

mysql-主从

2021-12-13 17:40:43 31

原创 MySQL-日志

mysql-日志

2021-12-13 17:40:11 10

原创 MySQL-锁

mysql-锁

2021-12-13 17:38:21 1232

原创 MySQL体系

MySQL体系架构

2021-12-13 17:37:26 158

原创 Eureak原理以及相关源码分析

@Transactional(propagation = Propagation.REQUIRES_NEW, isolation = Isolation.READ_COMMITTED, rollbackFor = {Throwable.class}, readOnly = false)传播行为:propagation = Propagation.REQUIRES_NEW 不生效问题因为:由于this对象没被spring代理生成新的代理对象,而是本类的上下文方法上的事物注解不会起作用当前类的对象没有

2021-05-10 14:08:59 10

原创 计算机组成原理与mysql的关系(二)

众所周知在mysql中,存储引擎Innodb使用的聚簇索引是使用的B+树。

2021-04-25 16:52:48 149

原创 计算机组成原理与mysql的关系(一)

计算机组成原理与mysql的关系(一)

2021-04-25 14:38:23 191

原创 通俗理解CAP理论大白话

对于刚刚接触分布式系统的小伙伴们来说,一提起分布式系统,就感觉高大上,深不可测。而且看了很多书和视频还是一脸懵逼。这篇文章主要使用大白话的方式,带你理解一下分布式系统中的CAP理论。保证你能听懂。为了防止被误以为是洗文的嫌疑,我在这里先说明一下:我参考了知乎和博客园上等相关文章,还有下面的图不是我自己画的,我觉得能清晰地表达出意思就是好图,在百度图片上下载了一波。一、什么是分布式系统拿一个最简单的例子,就比如说我们的图书管理系统。之前的系统包含了所有的功能,比如用户注册登录、管理员功能、图书借阅

2021-04-17 11:16:44 23

原创 @Retryable重试机制

尽管在很多场景下通过组件扫描和自动装配实现Spring的自动化配置是更为推荐的方式,但有时候自动化配置的方案行不通,因此需要明确配 置Spring。比如说,你想要将第三方库中的组件装配到你的应用中,在这种情况下,是没有办法在它的类上添 加@Component注解的,因此就不能使用自动化装配的方案了要在JavaConfig中声明bean,我们需要编写一个方法,这个方法会创建所需类型的实例,然后给这个方法添加@Bean注解。比方说,下面的 代码声明了CompactDisc bean:@Bean注解会告诉

2021-03-18 11:29:06 931

原创 JVM与GC

三:jvm内存根据 JVM 规范,JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。Thread Stack 1代表线程栈1,Thread Stack 2代表线程栈2,Object为对象图2 Runtime Data Area(运行时数据区,jvm内存)1:虚拟机栈(线程栈)与 堆(Heap)线程共享堆内存、方法区,都有自己的私有线程栈 栈中主要存放 1:基本类型的变量 2:引用类型的变量......

2021-03-11 17:09:37 601

原创 如何解决Redis大key问题

Redis大key的一些场景及问题大key场景1、热门话题下评论、答案排序场景。2、大V的粉丝列表。3、使用不恰当,或者对业务预估不准确、不及时进行处理垃圾数据等。大key问题由于Redis主线程为单线程模型,大key也会带来一些问题,如:1、集群模式在slot分片均匀情况下,会出现数据和查询倾斜情况,部分有大key的Redis节点占用内存多,QPS高。2、大key相关的删除或者自动过期时,会出现qps突降或者突升的情况,极端情况下,会造成主从复制异常,Redis服务阻塞无法

2021-03-11 15:36:20 117 1

原创 Eureka Server 数据存储和缓存

上节为大家介绍了 Eureka 的工作原理,其中提到了 Eureka Server 内部有二层缓存机制,那这些机制是如何工作的,以及 Eureka Server 是如何存储服务的注册信息,本节会给大家揭晓。Eureka 在使用过程中有一些非常重要的配置项,本节也会整理出来,方便大家以后在生产环境根据项目场景来调整。Eureka Server 数据存储我们知道 Eureka Server 在运行期间就是一个普通的 Java 项目,并没有使用数据库之类的存储软件,那么在运行期间是如何存储数据的呢?

2021-03-03 15:03:49 16 1

原创 Spring Cloud + Redis 实现重复提交接口幂等性

幂等性原本是数学上的概念,即使公式:f(x)=f(f(x)) 能够成立的数学性质。用在编程领域,则意为对同一个系统,使用同样的条件,一次请求和重复的多次请求对系统资源的影响是一致的。接口的增删改查操作:1.查询是天然的幂等操作;2.删除一次和多次删除都是把数据删除。(返回结果可能不一样,删除的数据不存在,返回0,删除的数据多条,返回结果多个,在不考虑返回结果的情况下,删除操作也具有幂等性);3.修改大多数是幂等的,但如果是增量修改需要保证幂等性;4.新增当然不是幂等的。流程如下:1.前端弹

2021-02-25 10:21:00 24

原创 windows下redis一主二从三哨兵搭建

一:下载redisredis官网下载最新版,然后复制6份(1份master,2份slave,3份sentinel)二:修改配置文件IP地址配置如下主127.0.0.1 8881从 127.0.0.1 8882从 127.0.0.1 8883哨兵1 127.0.0.1 18881哨兵2127.0.0.1 18882哨兵3127.0.0.1 188831:修改master、slave配置文件port 8881protected-mode nobind ...

2021-02-20 13:16:52 437

原创 Redis 线程模型

文件事件处理器(file event handler)Redis 基于 Reactor 模式开发了自己的网络事件处理器: 这个处理器被称为文件事件处理器(file event handler) 文件事件处理器使用 I/O 多路复用(multiplexing)程序来同时监听多个套接字, 并根据套接字目前执行的任务来为套接字关联不同的事件处理器。 当被监听的套接字准备好执行连接应答(accept)、读取(read)、写入(write)、关闭(close)等操作时, 与操作相对应的文件事件就会产生, 这时文

2021-02-03 16:41:38 17 1

原创 java多线程(三)--------线程池

一:前言从上一篇我们了解到线程的创建和启动过程,如果我们进行debug到i=1(第二个线程的建立和启动),会发现,main线程组里已经没有了Thread-0这个线程,此时的thread[1]=Thread-1。看控制台也能看出来Thread-0已经运行完结束了,被销毁了我们如果需要多次使用线程,也就意味着,我们需要多次创建并销毁线程。而创建并销毁线程的过程势必会消耗内存。而在Java中,内存资源是及其宝贵的,所以,我们就提出了线程池的概念。和数据库连接池的理论一样,线程池的好处,就是可以方

2021-01-29 16:44:26 140

原创 java多线程(二)--------Thread源码

一:线程特性1、线程能被标记为守护线程,也可以是用户线程,标记为守护线程必须在start()方法之前调用2、每个线程均分配一个name,默认为(Thread-自增数字)的组合3、每个线程都有优先级.高优先级线程优先于低优先级线程执行. 1-10,默认为54、main所在的线程组为main,构造线程的时候没有现实的指定线程组,线程组默认和父线程一样,进入线程组main5、当线程中的run()方法代码里面又创建了一个新的线程对象时,新创建的线程优先级和父线程优先级一样6、当且仅当父线程为守护线程时

2021-01-29 16:44:11 182

原创 java多线程(一)--------简单实现

一:并发与并行并发: 是指同一个时间段内多个任务同时都在执行,并且都没有执行结束。强调在一个时间段内同时执行,而一个时间段由多个单位时间累积而成,所以说并发的多个任务在单位时间内不一定同时在执行 。 比如你开车的时候,右手掌方向盘,过一会渴了拿杯子喝水,喝完又接着开车,在开车的同一个时间段内,你并发了。 并发的关键是你有处理多个任务的能力,不一定要同时。并行: 是说在单位时间内多个任务同时在执行 。 ...

2021-01-29 16:43:51 216

原创 HashMap源码

数组+链表+红黑树public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable { private static final long serialVersionUID = 362498820763181265L; // 位运算 初始值1转成二进制左移四位是10000 为16 static fin...

2021-01-27 15:14:00 242

数据库备份脚本数据库备份脚本

oracle和MySQL数据库备份脚本oracle和MySQL数据库备份脚本

2018-12-21

cglib-nodep2.2.2

cglib-nodep2.2.2,

2018-11-27

数据结构和算法分析java

数据结构和算法分析java数据结构和算法分析java数据结构和算法分析java

2018-06-13

空空如也

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

TA关注的人

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