avatar
文章
41
标签
19
分类
7

wshawk's blog
搜索

wshawk's blog

日志系统搭建
发表于2025-11-14|后端
日志系统搭建案例链接京东云技术团队 https://www.cnblogs.com/jingdongkeji/p/17816753.html 美团技术团队 https://tech.meituan.com/2021/09/16/operational-logbook.html 美团高性能终端日志系统建设时间 https://tech.meituan.com/2022/11/03/logan-real-time-log.html 基于AOP方式实现1https://github.com/macrozheng/mall/blob/master/mall-common/src/main/java/com/macro/mall/common/log/WebLogAspect.java 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 ...
Spring Bean
发表于2025-09-05|后端
Spring Validation 自定义注解案例通用枚举类校验@EnumValid.java1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556import javax.validation.Constraint;import javax.validation.Payload;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Repeatable;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Repeatable(EnumValid.List.class)@Target({E ...
Java接口参数校验
发表于2025-06-08|后端
Java接口参数校验后端服务接口接收参数后,一般都需要根据业务规则进行参数的校验,没有接触过Validation的Java新手可能使用如下述代码来校验参数。 123456789101112131415161718192021222324252627282930@RestController@RequestMapping("/user")public class UserController { @Resource private UserService userService; @PostMapping("/register") public ServerResult<String> registerUser(@RequestBody UserRegisterDTO userRegisterDTO) { String username = userRegisterDTO.getUsername(); String password = userRegisterDTO.getPassword( ...
MySQL之InnoDB存储结构
发表于2023-10-14|数据库
MySQL之InnoDB存储结构本文转载于MySQL - InnoDB - 听雨危楼 - 博客园 (cnblogs.com) InnoDB逻辑存储结构表空间(table space)在InnoDB存储引擎中,所有数据都存放在表空间(table space)中,表空间由段(segment)、区(extent)、页(page)、行(Row)组成,它们的关系如下图: 段(segment)表空间由各个段组成,常见的段类型有:数据段、索引段、回滚段。由于InnoDB表采用的是聚簇索引,所以数据段可以看成是B+树的叶子节点,索引段可以看成是B+树的非索引节点。 区(extend)一个段由多个区组成,区由多个连续页组成,每个区的大小为1MB,默认情况下,每个页的大小为16KB: 1234567mysql> select @@innodb_page_size;+--------------------+| @@innodb_page_size |+--------------------+| 16384 |+--------------------+1 row in s ...
MySQL之binlog
发表于2023-06-15|数据库
MySQL之binlogMySQL的binlog是由MySQL Server生成的,记录了所有的DDL和DML语句(不会记录查询类的操作,比如 SELECT 和 SHOW),以事件形式记录,还包含语句执行所消耗的时间,并且是事务安全型的。 开启binlogMySQL的binlog日志 - 马丁传奇 - 博客园 (cnblogs.com) 12345678vi编辑打开mysql配置文件 # vi /usr/local/mysql/etc/my.cnf 在[mysqld] 区块 设置/添加 log-bin=mysql-bin 确认是打开状态(值 mysql-bin 是日志的基本名或前缀名); 重启mysqld服务使配置生效 # pkill mysqld # /usr/local/mysql/bin/mysqld_safe --user=mysql & 查看binlog是否开启1234567show variables like 'log_%';+------------------------------------- ...
MySQL之高可用集群方案
发表于2023-03-20|数据库
MySQL之高可用集群方案[20 InnoDB Cluster:改变历史的新产品.md (lianglianglee.com)](https://learn.lianglianglee.com/专栏/MySQL实战宝典/20 InnoDB Cluster:改变历史的新产品.md) MHA(Master High Availability)MHA(Master High Availability)是一款开源的 MySQL 高可用程序,它为 MySQL 数据库主从复制架构提供了 automating master failover 的功能。 MHA 是由业界大名鼎鼎的 Facebook 工程师 Yoshinorim 开发,开源地址为:https://github.com/yoshinorim/mha4mysql-manager它由两大组件所组成,MHA Manger 和 MHA Node。 MHA Manager 通常部署在一台服务器上,用来判断多个 MySQL 高可用组是否可用。当发现有主服务器发生宕机,就发起 failover 操作。MHA Manger 可以看作是 failover ...
MySQL之主从复制
发表于2023-03-12|数据库
MySQL之主从复制小白都能懂的Mysql主从复制原理(原理+实操) (qq.com) MySQL 主从复制原理不再难 - rickiyang - 博客园 (cnblogs.com) 概念MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。 MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主数据库中的所有数据库或者特定的数据库,或者特定的表。 作用主从复制是MySQL高可用集群的基石,可以实现实时灾备、读写分离、高可用。 原理MySQL的主从复制是基于binlog来实现的,因为binlog记录了数据库中所有数据的改动。 根据binlog的记录的数据格式不同,复制的数据也有区别,目前主要有以下三种: 基于行的复制:binlog为ROW格式,把改变的内容复制过去,而不是把命令在从服务器上执行一遍. 从mysql5.0开始支持 基于语句的复制:binlog为STATEMENT格式,在主服务器执行SQL语句,在从服务器执行同样语句。 混合类型的复制:binlog为MIXED格 ...
MySQL之Undo Log
发表于2023-03-02|数据库
MySQL之Undo Log简介Undo Log是InnoDB存储引擎生成的逻辑日志,实现了事务ACID特性中的原子性,主要作用于**事务回滚和MVCC**。 详细分析MySQL事务日志(redo log和undo log) - 骏马金龙 - 博客园 (cnblogs.com)MySQL · 引擎特性 · 庖丁解InnoDB之UNDO LOG (taobao.org)MySQL · 引擎特性 · InnoDB undo log 漫游 (taobao.org) 基本概念在数据修改的时候,不仅记录了redo,还记录了相对应的undo,如果因为某些原因导致事务失败或回滚了,可以借助该undo进行回滚。 undo log和redo log记录物理日志不一样,它是逻辑日志。可以认为当delete一条记录时,undo log中会记录一条对应的insert记录,反之亦然,当update一条记录时,它记录一条对应相反的update记录。 当执行rollback时,就可以从undo log中的逻辑记录读取到相应的内容并进行回滚。有时候应用到行版本控制的时候,也是通过undo log来实现的:当读取的某一 ...
MySQL之InnoDB Buffer Pool
发表于2022-11-14|数据库
MySQL之InnoDB Buffer Pool简介在MySQL 服务器启动的时候向操作系统申请了一片连续的内存,这块内存就叫做 Buffer Pool 。 默认情况下 Buffer Pool 只有 128M 大小。 可以在启动服务器的时候配置 innodb_buffer_pool_size 参数的值,来设置Buffer Pool的大小,单位是字节。需要注意的是, Buffer Pool 也不能太小,最小值为 5M (当小于该值时会自动设置成 5M )。 本文内容均来自《MySQL是怎样运行的:从根儿上理解MySQL》 内部组成Buffer Pool 中默认的缓存页大小和在磁盘上默认的页大小是一样的,都是 16KB 。 为了更好的管理这些在 Buffer Pool 中的缓存页,衍生了控制信息,主要包括该页所属的表空间编号、页号、缓存页在 Buffer Pool 中的地址、链表节点信息、一些锁信息以及 LSN 信息。 每个页对应的控制信息占用的一块内存可以称为一个控制块,控制块和缓存页是一 一对应的。 每个缓存页的控制信息的长度是固定大小的,在MySQL5.7.21这个版本中,每个控制块 ...
MySQL之MVCC
发表于2022-11-14|数据库
MySQL之MVCC背景 在前面的MySQL锁文章中有提到过,MyISAM表的读操作与写操作,以及写操作之间是串行的。 并且默认情况下写操作命令的执行优先于读操作执行,即使读请求早于写请求到达,写锁也会插队到读请求前面,因为MySQL认为写请求一般比读请求要重要。 在InnoDB中,就是通过多版本并发控制(MVCC)来解决读请求和写请求的并发问题,提高数据库的并发能力。并且在InnoDB中是默认读不加锁,读写不冲突的。 两个概念快照读 不加锁的select操作就是快照读,即不加锁的非阻塞读。当我们执行select xxx from table_name where xxx=yyy语句时,就是快照读。 不是所有的隔离级别下都支持快照读。 读未提交: 不支持,未提交读总是读取最新的数据行,而不是符合当前事务版本的数据行 读已提交:支持,每次select都生成一个快照读 可重复读:支持,开启事务后执行第一个select语句才生成快照读,而不是一开启事务就生成快照读, 并且整个事务只生成一个快照读 串行化:不支持,在此隔离级别下,读请求都是当前读。 当前读 读取的是最新版本, 并且 ...
12…5
avatar
wshawk
文章
41
标签
19
分类
7
Follow Me
公告
This is my Blog
最新文章
日志系统搭建
日志系统搭建2025-11-14
Spring Bean
Spring Bean2025-09-05
Java接口参数校验
Java接口参数校验2025-06-08
MySQL之InnoDB存储结构
MySQL之InnoDB存储结构2023-10-14
MySQL之binlog
MySQL之binlog2023-06-15
分类
  • Linux2
  • hexo1
  • 前端2
  • 后端18
    • Java2
  • 数据库15
  • 网络1
标签
HTTP JDK Java JavaScript Linux MySQL Redis Spring Tomcat Vue hexo 代理 动态代理 参数校验 后端 日志 时间戳 踩坑 随笔
归档
  • 十一月 20251
  • 九月 20251
  • 六月 20251
  • 十月 20231
  • 六月 20231
  • 三月 20233
  • 十一月 20226
  • 十月 20225
网站资讯
文章数目 :
41
本站总字数 :
65.7k
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2026 By wshawk
框架 Hexo|主题 Butterfly
搜索
数据库加载中