自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

dreambyday

dreambyday

  • 博客(161)
  • 收藏
  • 关注

原创 【JVM】深入理解Java虚拟机

第一章 概述1.1 JVM相关知识体系1.2 JVM图例图片出处第二章Java内存区域与内存溢出异常2.1 概述2.2 运行时数据区域2.2.1 程序计数器  线程私有,通过改变计数器的值选取下一条需要执行的字节码指令。执行本地方法(native)时计数器的值为空2.2.2 Java虚拟机栈  线程私有,每个方法需要被执行时创建一个栈帧并压入栈顶,执行完毕出栈,调用其他方法时将其他方法的栈帧压入。  栈帧包括局部变量表、操作数栈、动态链接、方法返回地址、附加信息2.2.2.1 局

2021-05-20 20:24:14 3569 4

原创 Spring事务传播

其实就是AOP注解失效的场景方法用final修饰,导致无法代理方法内部调用,无注解方法调用有注解方法会失效。可以注入自己的类再去调用未被Spring管理方法不是public修饰符(源码判断必须是public才行)手动捕获异常并不抛出。

2023-10-19 15:27:10 97

原创 【分布式】分布式ID

分布式场景下,一张表可能分散到多个数据结点上。主键自增的方案难以保证在多张表主键唯一,在分布式场景下无法适用。因此需要一些分布式ID的解决方案。分布式ID需要有几个特点:全局唯一(必要):在多个库的主键放在一起也不会重复有序(必要):避免频繁触发索引重建信息安全:ID连续,可以根据订单编号计算一天的单量,造成信息泄露包含时间戳:能够快速根据ID得知生成时间下面几种方案按推荐顺序排序,越推荐使用越靠前。优点缺点uuid实现简单连续性差,作为主键每次新增数据都会触发索引重建。

2023-09-16 22:07:11 845

原创 【Redis】Redis高可用

redis cluster集群模式,既拥有哨兵模式高可用、自动主从切换、高性能的特点,又解决了其只有单主结点承载数据量小的缺点。集群模式可以有多主结点,数据分散到多个主节点上,可以动态扩容。一个节点大概会有如下操作处理命令阶段数据重新分片(通常用于扩容、缩容)故障检测与转移。

2023-06-26 17:50:02 479

原创 【数据库】分库分表分区

表结构不变,数据分散到多个其他相同结构的表中缓解单数据库表的压力,流量按数据分布进行分流。

2023-06-24 17:56:26 800

原创 【分布式】接口幂等

我们考虑要不要做幂等的位置一般是MQ消费者、RPC、HTTP接口。消费者消费消息可以看做源源不断的请求调用消费者接口。因此本文将幂等位置统称为接口,探讨接口如何提供幂等能力。一次和多次执行的结果相同。但并非所有业务场景都需要保证幂等性。因为保证幂等性需要额外的开销天然幂等场景:比如查询、删除、更新不幂等场景:插入、自增/减(update xxx set a = a+1)如果一个接口涉及到了不幂等场景,那么就要考虑做幂等了。

2023-06-12 12:56:34 227 1

原创 【PostgreSQL】数据迁移

查看pg启动报错日志提示空间不足。发现某位置磁盘空间不足。

2023-06-10 15:21:21 502

原创 【算法】【差分数组】解决连续空间改变相同值的问题

将原数组每个值减去前一个值,得到的新数组是差分数组diskak−ak−1如:原数组为1235得到的差分数组为1112通过计算差分数组的前缀和,可以得到原数组。1111111112。

2023-06-08 22:49:39 346

原创 【IO】零拷贝、mmap、sendfile

没有发生CPU拷贝数据,都是DMA(直接内存访问)拷贝减少内核态与用户态的切换减少数据复制次数避免CPU拷贝浪费CPU资源整个内存空间只有一份数据上下文切换次数数据拷贝次数普通IO42次DMA,2次CPUmmap42次DMA,1次CPULinux2.1版sendfile32次DMA,1次CPULinux2.4版sendfile32次DMALinux2.4版本的sendfile才真正意义上实现了零拷贝。

2023-05-07 23:10:52 633 2

原创 Java发送Http请求响应结果乱码、Postman请求结果正常

Java(RestTemplate)调用HTTP请求和Post调用请求配置的请求头是一样的。但是Java返回结果乱码,Postman返回结果正常。 Illegal character ((CTRL-CHAR, code 31)): only regular white space (\r, \n, \t) is allowed ..

2023-04-22 13:21:45 1682

原创 【Linux】canal1.1.7同步MySQL8.0.3和Redis

自MySQL 8.0.3开始,身份验证插件默认使用caching_sha2_password。按照官网的文档执行,在启动时会报错。本文写了下大致的步骤。

2023-03-06 13:13:27 1029 1

原创 【监控】Linux部署postgres_exporter及PG配置(非Docker)

官网的文档里提示比pg10高或低版本的数据库执行的SQL不同,但是我pg11只执行高版本的SQL失败了。最终高低版本都执行成功。后面会建立postgres_exporter用户,密码为password。如果集成了Grafana,可以发现页面已经能采集到数据了。–extend.query-path为自定义查询的文件。–web.listen-address为监听的端口。建立停止脚本 stop.sh。观察nohup.out文件,看是否有报错信息。启动脚本start.sh。选一个amd64下载。

2023-03-01 19:46:43 3528 4

原创 【Java】IDEA调试线上服务

【代码】【Java】IDEA调试线上服务。

2023-02-03 15:59:34 353

原创 synchronized底层原理

锁优点缺点适用场景偏向锁加解锁无额外消耗,单线程下加锁基本无消耗线程竞争产生额外的锁撤销成本单线程访问同步代码块轻量级锁竞争线程不阻塞,基于cas自旋在用户态实现长时间锁自旋获取不到锁还是会锁膨胀,并且消耗CPU同步块执行速度快、锁竞争不激烈重量级锁锁不自旋,不消耗cpu线程阻塞,用户态转内核态效率低追求吞吐量、竞争激烈、同步代码块执行时间长。

2023-01-29 00:24:56 4738 2

原创 【Linux】Nacos 2.1 单机安装

很有可能是配置文件application.properties中nacos连接的数据库名称带有横线- ,换成下划线_后好使了(数据库名和连接信息都要改)MySQL创建用户:https://blog.csdn.net/m0_68640362/article/details/125420697。Nacos安装:https://blog.csdn.net/promsing/article/details/123350094。连接的数据库类型为MySQL8以下(不包括8)查看启动后的日志,提示成功。

2023-01-24 22:17:21 2300

原创 DLUT C++上机作业(实验六)

编写一个程序,先设计一个链表List类,再从链表类派生出一个集合类Set类,再集合类中添加一个记录元素个数的数据项。要求可以实现对集合的插入、删除、查找和显示。注意,博客所有代码在VS上均能编译通过,codeblocks等编译器可能因为某些变量名无法识别而无法编译。(我的VS上不能用end做变量名就很迷呀)(2)有一个交通工具类vehicle,将它作为基类派生小车类car、卡车类truck和轮船类boat,定义这些类并定义一个虚函数用来显示各类信息。

2023-01-03 19:46:37 1070

原创 【工具类】Elasticsearch的HTTP客户端(Java)

Java基于Http请求操作ES,与Kibana上的操作一致。如图该DSL可转化为HTTP请求。

2022-12-27 14:21:06 785 1

原创 【工具类】后台Mock工具类

后台Mock工具类

2022-12-26 15:14:42 773

原创 【工具类】 读取Resource或jar包外的json文件

读取Resource下的json文件

2022-12-26 14:45:29 1063 1

原创 Spring 启动流程

按Bean状态描述:按方法描述:准备阶段:刷新阶段refresh():

2022-11-17 21:21:55 5014

原创 【消息队列】MQ 八股文必背

MQ是消息队列,基于队列的机制实现生产者和消费者之间的消息传递。

2022-11-06 21:25:53 989

原创 【源码】Spring Boot读取配置文件时机、顺序

以前有时遇到找不到相关配置,于是想知道当前服务读取到哪些配置。从源码分析一下。本文spring boot版本为:2.3.7.RELEASE。

2022-10-31 19:48:39 1708

原创 【PostgreSQL】psql、pg_dump、pg_restore数据的导出与导入

【代码】【PostgreSQL】psql、pg_dump、pg_restore数据的导出与导入。

2022-10-15 15:41:20 2893

原创 【PostgreSQL】Linux离线安装psql

linux离线单独安装psql客户端工具

2022-10-15 15:11:47 2028

原创 【MySQL】索引理解

索引解释NORMAL 普通索引普通索引UNIQUE 唯一索引列不允许重复,可以有NULL值FULLTEXT 全文索引适用于大文本检索,原理是倒排索引SPATIAL 空间索引对空间数据类型字段(GEOMETRY、POINT、LINESTRING、POLYGON)建立索引,列NOT NULL。HASH索引和B+Tree索引。

2022-10-13 20:17:20 437

原创 【Redis】八股文必背

从 Redis 的 v1.0 到 v6.0 版本之前,Redis 的核心网络模型一直是一个典型的单 Reactor 模型。当写入数据将导致超出maxmemory限制时,Redis会采用maxmemory-policy所指定的策略进行数据淘汰。A线程更新缓存后若数据库更新失败,会造成数据库和缓存不一致的情况。在A线程删缓存和更新数据库期间,其他线程查询并更新缓存后,会造成数据库和缓存不一致的情况。Redis的主要瓶颈是内存和网络带宽,而非CPU。可以用于拦截不存在的数据,有概率拦截到存在的数据。

2022-10-09 23:03:18 3151

原创 【算法】缓存淘汰策略 及Java实现

1. LRU(Least Recently Used)最近最少使用2. LFU(Least Frequently Used)最近最不经常使用3. 近似LRU算法4. TTL(Time To Live)超时时间5. FIFO(First In First Out)先进先出6. Random随机淘汰

2022-10-07 19:58:46 499

原创 【Redis】RDB与AOF持久化

AOF、RDB以及混合模式的讲解

2022-10-05 21:09:55 668

原创 Unix五种IO模型

一、IO五种模型阻塞式I/O(Blocking I/O)非阻塞式I/OI/O复用信号驱动式I/O(SIGIO)异步IO(POSIX的aio_系列函数)一个输入操作通常包括两个不同的阶段:等待数据准备好(等待数据从网络到达,分组到达时复制到内核某个缓冲区)从内核向进程复制数据(从内核缓冲区复制到应用进程缓冲区)套接字的概念:对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。(为什么是不同主机,同一台主机不同进程通过命名Socket通信不行吗)1.1 阻塞式I/O模型

2022-10-05 08:15:00 561

原创 python的一些文件操作

1. python文件调用另一个python文件,并获取文件中的输出值主要实现两个1.B文件获取C文件中的输出结果2.用C文件使用argparse获取命令行参数如下两个文件processB.pyimport osimport syscommand = 'python processC.py --ip=172.18.18.18 --flag=dv --log=True'# 执行命令f = os.popen(command)# 获取processC.py文件中的输出results = f

2022-10-04 19:58:52 212

原创 Seata安装

在服务器seata/script/server/db/目录下找到mysql.sql脚本并执行,建立global_table,branch_table,lock_table,distributed_lock表。安装步骤:https://blog.csdn.net/dreambyday/article/details/126022359。这里下载的是seata-server-1.5.2.tar.gz。修改配置:conf/application.yml。查看启动日志,无报错即成功。从Seata下载地址下载。

2022-10-04 19:44:11 900

原创 【Redis】数据结构与对象

Redis基于C语言编写。是基于键值对的Nosql数据库,性能高,支持持久化。

2022-10-04 19:26:14 380

原创 【Docker】【附命令含义】Jar包打镜像、上传到私有仓库、启动

修改docker配置。编辑/etc/docker/daemon.json,设置insecure-registries重启docker。

2022-10-02 14:22:40 606

原创 Linux下Redis单机与集群部署

修改/usr/local/redis-6.0.16/redis.conf 几个参数。使用redis-cli客户端连接。环境变量中可能没有redis-cli。Redis高版本自带Lua,实际上不需要单独安装。本次选择6.0.16。也可以直接在服务器上下载。则说明gcc版本低于5,需要升级gcc版本。Lua底层依赖c的库。

2022-09-28 14:23:20 498

原创 基于Docker和ES存储的Skywalking部署

Docker部署ES、Skywalkingjar启动带agent

2022-09-27 17:24:28 1724

原创 【PostgreSQL】执行计划、常用命令

取某表随机值。数据加压。取表的列信息

2022-09-21 16:42:19 1478

原创 【分布式】事务理论与Seata

多台机器的服务组成一个系统,运行不同的服务通过缩短单个任务的执行时间提高效率**微服务:**一个系统拆成多个服务,每个服务都可以独立运行(不需要多台机器,可以部署在单机器)**集中式:**整个系统部署在一台机器上。

2022-09-13 20:05:16 372

原创 java 带括号 四则运算 计算器

递归计算括号里的公式。操作栈数值栈java计算器

2022-08-28 18:58:16 913

原创 Spring aware使用与源码解析

先定义一个继承Aware的接口,然后注册一个实现BeanPostProcessor接口的Bean,在postProcessBeforeInitialization中处理Aware接口的逻辑。举一个例子。获取调用自定义Aware接口方法的时间。}

2022-08-27 19:29:12 514

原创 正则表达式&Excel操作

Excel常用操作和正则表达式语法

2022-08-17 15:53:33 823

空空如也

空空如也

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

TA关注的人

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