自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(95)
  • 资源 (3)
  • 收藏
  • 关注

原创 AWS服务器Linux系统存储空间满扩容

AWS服务器Linux系统存储空间满扩容

2023-01-03 11:19:33 222

原创 查找计算机视觉顶会CVPR/ECCV/ICCV论文的方法

论文查找

2022-11-18 21:19:17 12335

原创 TypeError: __init__() missing 1 required positional argument: ‘c2‘

yolov7

2022-11-01 16:52:01 3933 14

原创 mysql和clickhouse数据同步 MaterializeMySQL 引擎

clickhouse mysql

2022-06-22 15:40:41 1035

原创 redis哨兵机制 主库挂了 如何选定新主库?笔记

第一轮:优先级最高的从库得分高。用户可以通过 slave-priority 配置项,给不同的从库设置不同优先级。比如,你有两个从库,它们的内存大小不一样,你可以手动给内存大的实例设置一个高优先级。在选主时,哨兵会给优先级高的从库打高分,如果有一个从库优先级最高,那么它就是新主库了。如果从库的优先级都一样,那么哨兵开始第二轮打分。第二轮:和旧主库同步程度最接近的从库得分高。这个规则的依据是,如果选择和旧主库同步最接近的那个从库作为主库,那么,这个新主库上就有最新的数据。如何判断从库和旧主库间.

2022-05-26 11:06:26 975

原创 Snowflake生产方案 时钟回拨问题解决思路

第一种办法,就是关闭时钟同步,避免产生时钟同步问题,不过这个不太现实,因为强依赖时间的系统,一般都得做时钟同步,避免时间严重错误,在虚拟机上部署一些东西,玩儿虚拟机,休眠,再次恢复之后往往虚拟机里的时间和宿主机的时间是不同步的导致一些大数据的分布式系统会崩溃掉,节点之间通信会依赖时间戳进行比对,心跳过慢,就会导致节点挂掉第二种办法,记录下来上一次生成ID的时间,如果发现本次生成ID的时候,时间戳小于上次的时间戳,说明时钟回拨了,此时就这个时间内不允许生成ID,一直等,等待到当前时间追上上一次生成时间.

2022-01-11 11:30:52 3427

原创 mysql 系统内核参数优化

#基础配置datadir=/data/datafilesocket=/var/lib/mysql/mysql.socklog-error=/data/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pidcharacter_set_server=utf8#允许任意IP访问bind-address = 0.0.0.0#是否支持符号链接,即数据库或表可以存储在my.cnf中指定datadir之外的分区或目录,为0不开启#symbolic-links=

2022-01-07 14:52:26 1042

原创 io.shardingsphere 支持 utf8mb4

<dependency> <groupId>io.shardingsphere</groupId> <artifactId>sharding-jdbc-spring-boot-starter</artifactId> <version>3.1.0</version> </dependency>这是shardingsph..

2021-11-10 15:36:18 1221

原创 TCP三次握手

为啥不是2次或者4次握手呢?假设两次握手就ok了,要是客户端第一次握手过去,结果卡在某个地方了,没到服务端;完了客户端再次重试发送了第一次握手过去,服务端收到了,ok了。结果,尴尬的是,后来那个卡在哪儿的老的第一次握手发到了服务器,服务器直接就返回一个第二次握手,这个时候服务器开辟了资源准备客户端发送数据啥的,结果呢?客户端根本就不会理睬这个发回去的二次握手,因为之前都通信过了。但是如果是三次握手,那个二次握手发回去,客户端发现根本不对,就会发送个复位的报文过去,让服务器撤销开辟的资源,别等着了。..

2021-10-18 15:39:42 783

原创 线程池 ThreadPoolExecutor 方法中的 execute方法源码解析

public void execute(Runnable command) { if (command == null) throw new NullPointerException(); //ctl 32位的integer的数字,前3位是线程池的状态,后29位是线程池内的线程数量 int c = ctl.get(); // 如果正在运行的线程数小于核心线程数,直接加一个线程 if (workerCountOf(c)

2021-09-22 15:41:46 1026

原创 并发 AtomicInteger 中incrementAndGet方法详解

public final int incrementAndGet() { return unsafe.getAndAddInt(this, valueOffset, 1) + 1; } private static final long valueOffset; static { try { valueOffset = unsafe.objectFieldOffset (AtomicInte.

2021-09-09 11:51:37 2263 3

原创 mysql性能莫名抖动

第一个,可能buffer pool的缓存页都满了,此时你执行一个SQL查询很多数据,一下子要把很多缓存页flush到磁盘上去,刷磁盘太慢了,就会导致你的查询语句执行的很慢。因为你必须等很多缓存页都flush到磁盘了,你才能执行查询从磁盘把你需要的数据页加载到buffer pool的缓存页里来。第二个,可能你执行更新语句的时候,redo log在磁盘上的所有文件都写满了,此时需要回到第一个redo log文件覆盖写,覆盖写的时候可能就涉及到第一个redo log文件里有很多redo log日志对应的更新操

2021-07-30 11:24:18 1286

原创 mysql 数据库压测

数据库压测工具给大家介绍一个非常好用的数据库压测工具,就是sysbench,这个工具可以自动帮你在数据库里构造出来大量的数据,你想要多少数据,他就自动给你构造出来多少条数据。然后这个工具接着可以模拟几千个线程并发的访问你的数据库,模拟使用各种各样的SQL语句来访问你的数据库,包括模拟出来各种事务提交到你的数据库里去,甚至可以模拟出几十万的TPS去压测你的数据库在linux上安装sysbench工具首先你需要有一台linux机器,如果你只有一个windows笔记本电脑,可以在里面装一个lin

2021-07-27 10:34:42 1408

原创 mysql整体执行流程

2021-07-23 11:43:11 1426

原创 eureka server集群之间 注册表的同步

@POST @Consumes({"application/json", "application/xml"}) public Response addInstance(InstanceInfo info, @HeaderParam(PeerEurekaNode.HEADER_REPLICATION) String isReplication) { logger.debug("Registering inst..

2021-07-19 11:42:21 1784

原创 享元模式 应用

享元模式:主要用于减少创建对象的数量,以减少内存占用和提高性能 有时候不要特别死@Component@Slf4jpublic class Cache implements CommandLineRunner { @Autowired private MaterialService materialService; @Autowired TabBzglXtpmflhxService tabBzglXtpmflhxService; @Autowire

2021-07-13 14:41:00 1539

原创 mac http_load的安装和使用

brew install http_loadhttp_load -p 5 -s 300 urls.txt-parallel 简写 -p : 含义是并发的用户进程数。-fetches 简写 -f : 含义是总计的访问次数-rate 简写 -p : 含义是每秒的访问频率-seconds 简写 -s : 含义是总计的访问时间5361 fetches, 550 max parallel, 1.83936e+06 bytes, in 10.0006 seconds343.1 mean bytes

2021-06-17 17:58:17 1822

原创 实用的几个git命令

在多人使用同一个远程分支合作开发的时候,很可能出现 push 代码的时候出现以下问题$ git push origin master# 结果如下To github.com:hello/demo.git ! [rejected] master -> master (fetch first)error: failed to push some refs to '[email protected]:hello/demo.git'hint: Updates were rejected b

2021-06-10 11:25:40 1711 2

原创 maven 插件 介绍几个常用的maven插件

maven-source-plugin提供项目自动将源码打包并发布的功能,在需要发布源码项目的pom.xml文件中添加如下代码即可执行mvninstall,maven会自动将source install到repository 。 … 执行mvnsource:jar,单独打包源码<build> <plugins> <plugin> <groupId>org.apache.maven.

2021-06-08 13:00:34 2108

原创 maven 冲突发生的原因和解决冲突的方法 随记

在maven打包时经常遇到 类似这样的错误Caused by: java.lang.ClassNotFoundExceptionmaven在一般情况下会自己解决冲突,解决冲突的依据是就近原则A <- B <- C(2.0),A <- C(1.1)。A依赖B B依赖于C A依赖于C上面这种情况是maven会选择于C(1.1)这个jar谁在上面选谁上面这种情况maven会选择2.7.8这个版本需要我们手动解决的冲突A <- B <- C<

2021-06-07 12:48:30 2288

原创 mysql InnoDB行锁的三种算法 随记1

3种锁算法Record Lock:单个行记录上的锁Gap Lock:间隙锁,锁定一个范围,但不包含记录本身Next-Key Lock:Gap Lock + Record Lock,锁定一个范围,并且锁定记录本身Record LockRecord Lock总是会去锁住索引记录,如果InnoDB存储引擎表在建立的时候没有设置任何一个索引,那么这时InnoDB存储引擎会使用隐式的主键来进行锁定。Next-Key LockNext-Key Lock是结合了Gap Lock 和 Record

2021-05-19 17:11:54 2154 1

原创 maven仓库中没有的jar包如何放到本地仓库中

mvn install:install-file -Dfile=jar包的位置 -DgroupId=e-iceblue -DartifactId=spire.pdf.free -Dversion=3.9.0 -Dpackaging=jar

2021-05-13 14:28:57 2154

原创 InnoDB存储引擎 随记

InnoDB该存储引擎是第一个完整支持ACID事务的MySql存储引擎,其特点是行锁设计、支持MVCC、支持外键,提供一次性非锁定读,同时被设计用来最有效地利用以及使用内存和CPUInnoDB体系结构InnoDB存储引擎是多线程的模型,因此其后台有多个不同的后台...

2021-04-14 19:36:13 2936 1

原创 Mysql随记

mysql配置文件的加载顺序/etc/my.cnf --------->/etc/mysql/my.cnf------------>/usr/local/mysql/etc/my.cnf的顺序读取配置文件如果几个配置文件都有同一个参数,mysql数据库会以读取到到最后一个配置文件中的参数为准mysql由以下几部分组成连接池组件 管理服务和工具组件 SQL接口组件 查询分析器组件 优化器组件 缓冲组件 插件是存储引擎 物理文件存储引擎是基于表的 而不是数据库的...

2021-04-14 15:37:49 2833

原创 Java Core 之 字节码与类创建过程

package io.renren.modules.manyThread;/** * @description: * @author: 李晋平 * @email [email protected] * @create: 2021-03-09 16:32 **/class Son extends Father{ static { System.out.println("Son的静态代码块"); } { System.out.pr

2021-03-09 16:46:15 2913

原创 httpclient和PathVariable

后段是这样写的运用hutool jar包的http请求String result = HttpRequest.get("http://localhost:8000/callback/bank/resolve_bvn"+"/"+id).execute().body();

2021-01-16 13:52:57 3193

原创 ReentrantLock源码分析

lock方法的具体尝试获取锁,如果成功就返回尝试获取锁失败,调用addWaiter()构建新节点并把新节点入队然后调用acquireQueued()再次尝试获取锁,如果成功,直接返回如果再次失败,再调用shouldParkAfterFailedAcquire()将节点等待状态设置为等待(将头节点的状态waitStatus为-1),并调用parkAndCheckInterrupt()阻塞当前线程如果被唤醒了,会继续在acquireQueued()的for循环再次尝试获取锁,如果成功就返回如果步成

2021-01-11 15:56:41 2916

原创 两张表查询没有分配任务的单子

订单表CREATE TABLE `order_info` ( `id` bigint(22) NOT NULL AUTO_INCREMENT COMMENT '主键', `order_no` varchar(32) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=151103 DEFAULT CHARSET=utf8mb4 COMMENT='订单信息表 ';任务表CREATE TABLE `order_col

2020-12-23 23:14:26 2929

原创 redis 5种数据类型应用场景

String 类型简单缓冲常规计数(微博关注数)分布式ID分布锁(结合Lua脚本)List 类型可以当作队列和栈这两种数据结构来进行使用粉丝列表关注列表 (我关注了谁,谁关注了我)消息时间线消息队列Hash 类型Hash 类型使用的就比较频繁了,它可以把一组关联的数据放入同一个 Key 下,这样批量存取时使用一个命令就可以取出,也可以对一个 Key下的单个 Field 进行存取,操作灵活且方便。String可以做的Hash都可以做存储对象类型(用户信息,商品信

2020-12-11 10:52:17 3017 2

原创 缓存雪崩、缓存穿透、缓存击穿

1.缓存穿透是指用户请求的数据在缓存中不存在即没有命中,同时在数据库中也不存在,导致用户每次请求该数据都要去数据库中查询一遍,然后返回空。如果有恶意攻击者不断请求系统中不存在的数据,会导致短时间大量请求落在数据库上,造成数据库压力过大,甚至击垮数据库系统。2.缓存穿透常用的解决方案(1)布隆过滤器(推荐)布隆过滤器(Bloom Filter,简称BF)由Burton Howard Bloom在1970年提出,是一种空间效率高的概率型数据结构。布隆过滤器认为不在的,一定不会在集合中;布隆过滤

2020-12-08 10:51:48 3092

原创 java8 异步编排优化

CompletableFuture是JDK8提出的一个支持非阻塞的多功能的Future,同样也是实现了Future接口这里只介绍咱们开发中经常用的@Configurationpublic class MyThreadConfig { @Bean public ThreadPoolExecutor threadPoolExecutor(){ return new ThreadPoolExecutor(20, 200, 10 , TimeUnit.SECONDS, ne

2020-12-04 20:03:17 3892 1

原创 mysql 删除不了库

由于在9月30号粗暴地打断了一个导入进程,今天发现MySQL竟然不能启动了,只好卸载重装(也许可以花些时间查找问题,但是这个来的更快些)。重启导入进程,却出现了数据库已存在的提示信息。于是就进入命令行窗口dropdatabase myapp,可是却得到了ERROR 1010 (HY000): Error dropping database(can’t rmdir ‘./myapp’, errno: 39)的错误信息。解决方法:删除/var/lib/mysql/myapp下面的所有文件,不要删除mya.

2020-12-02 18:59:07 3439

原创 数据库服务器使用的RAID存储架构初步介绍

一般来说,很多数据库部署在机器上的时候,存储都是搭建的RAID存储架构,其实这个RAID很多人以为非常的深奥,确实这个概念比较难以理解,而且说深了其实里面的技术含量很高,但是如果简单说一下,也是每个人都能理解的。说白了,RAID就是一个磁盘冗余阵列,什么意思呢? 假设我们的服务器里的磁盘就一块,那万一一块磁盘的容量不够怎么办?此时是不是就可以再搞几块磁盘出来放在服务器里现在多搞了几块磁盘,机器里有很多块磁盘了,不好管理啊,怎么在多块磁盘上存放数据呢?所以就是针对这个问题,在存储层面往往会在机器里搞.

2020-11-28 17:46:57 4063 2

原创 RocketMQ NameServer

Broker是把自己的信息注册到哪个NameServer上去?每个Broker启动都得向所有的NameServer进行注册系统如何从NameServer获取Broker信息?RocketMQ中的生产者和消费者就是这样,自己主动去NameServer拉取Broker信息的。如果Broker挂了,NameServer是怎么感知到的?要解决这个问题,靠的是Broker跟NameServer之间的心跳机制,Broker会每隔30s给所有的NameServer发送心跳,告诉每个NameS...

2020-11-13 10:41:26 3205

原创 Rocket的架构原理

Broker每台机器上部署的RocketMQ进程一般称之为Broker,每个Broker都会收到不同的消息,然后就会把这批消息存储在自己本地的磁盘文件里。万一Broker宕机了怎么办?RocketMQ的解决思路是Broker主从架构以及多副本策略。Master Broker收到消息之后会同步给Slave Broker,这样Slave Broker上就能有一模一样的一份副本数据!这样同一条消息在RocketMQ整个集群里不就有两个副本了,一个在Master Broker里,一个在Slave Bro.

2020-11-13 10:24:41 3585

原创 ArrayList使用foreach循环删除元素为啥报错Exception in thread “main“ java.util.ConcurrentModificationException

List<String> list = new ArrayList<>(); list.add("1"); list.add("2"); list.add("3"); list.add("4"); list.add("5"); for (String s:list) { if(s.equals("5")){ list.remove(s);

2020-10-14 15:30:22 3126

原创 jackson 时间格式的处理

package io.webchat.wdzl.utils;import java.text.SimpleDateFormat;import java.time.LocalDateTime;import java.time.format.DateTimeFormatter;import java.util.Date;import java.util.List;import com.fasterxml.jackson.core.JsonProcessingException;import c

2020-09-23 17:09:49 3822

原创 2020-09-22

注意: 调用者要被spring管理方式一 注解@PostConstructimport com.example.javautilsproject.service.AutoMethodDemoService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component; import javax.annotation.PostConst

2020-09-22 11:28:52 3134

原创 synchronized细化底层原理

MyObject lock = new MyObject();synchronized(lock){}java对象都是分为对象头和实例对象两块的,其中实例对象就是大家平时看到的那些变量数据,然后对象头包含两块东西,一个是Mark Word(包含hashCode、锁数据、GC数据等等),另一个是Class Metadata Address(包含了指向类的元数据的指针)在Mark Word里就是一个指针,是指向对象实例monitor的地址,这个monitor是C++实现的,不是java实现的,这个.

2020-09-20 16:55:15 3373

原创 eureka底层原理

2020-09-17 15:41:09 3396

mysql历史数据同步到clickhouse 已测试

mysql历史数据同步到clickhouse 已测试

2022-06-22

ReentrantLock lock方法注释

ReentrantLock lock方法注释

2021-01-11

从0带你成为消息中间件实战

24 授人以渔:Broker主从同步有没有数据不一致问题.pdf 23 设计生产架构之前的功课:Broker的主从架构原理是什么.pdf 22 授人以渔:要是没有这个路由中心,消息中间件可以正常运作么.pdf 21 设计生产架构之前的功课:消息中间件路由中心的架构原理是什么.pdf 20 授人以渔:结合你对其他 MQ 的了解,思考 RocketMQ 的设计有何特点.pdf 19 新技术引入:给团队分享 RocketMQ 的架构原理和使用方式.pdf 18 授人以渔:你们公司主要使用的 MQ 是哪种?为什么要选用它.pdf 17 领导的要求:你来对 Kafka、RabbitMQ 以及 Rocke

2020-12-08

空空如也

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

TA关注的人

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