- 博客(5)
- 收藏
- 关注
原创 select、poll、epoll详解
IO读写基本原理 用户程序进行IO操作实际依赖于linux系统内核read()、write()函数 read()函数的调用并不是直接从网卡把数据读取到用户内存中,而是把内核缓冲区中的数据复制到用户缓冲区中 write()函数的调用也并不是直接把数据写入网卡中,而是把用户缓冲区的数据写入到内核缓冲区中 网卡与内核缓冲区数据的读写则是由操作系统内核完成 阻塞IO和非阻塞IO 网卡同步数据到内核缓冲区,如果内核缓冲区中的数据未准备好,用户进程发起read操作,阻塞则会一直等待内存缓冲区数据完整后再解除阻塞
2021-03-22 18:11:53
2961
原创 线上分析问题命令汇总
前言 在生产环境中,逐出出现CPU飙升100%,内存溢出等,连接池等待等一些不容易定位的问题,在生产环境的也无法像测试环境一样debug调试,这边我整理了一些常用的定位问题的命令。分为JVM相关命令和Linux相关命令。 JVM相关命令 查看进程id // 查看所有Java项目进程id列表,找到你们项目的进程id jps -l 查询进程CPU占用率 pidstat -u -p PID [时间间隔] 次数 // 查看进程id为3546的进程CPU占用率,每个1秒输出一次,循环10次 pidstat
2021-03-22 18:11:02
158
原创 SSSSS
开发背景 项目中用到了rabbitmq,在引入一个新的交换机或者队列,都需要配置exchange、queue、routingKey,重复工作比较繁琐,消费端和生产端分离时需配置多份,易出错 发送消息和消费消息时存在丢失消息的情况,无法保障消息100%投递和100%消费 消费端存在重复消费 功能描述 支持引入新的队列时零配置,自动配置消息队列、交换机,无需手动配置,避免配置出错 支持手动配置,...
2020-12-17 18:40:13
564
原创 Spring优雅的实现策略模式
源码 https://github.com/shawntime/shawn-design-pattern/ 定义 定义了一些平行的算法组,分别封装起来,算法之间可以相互替换,此模式使算法的变化独立于调用者之外 算法结构 抽象策略角色(Strategy):这是一个抽象类或者接口,将算法的行为进行封装,所有的策略类都要实现该接口 具体策略角色(ConcreteStrategy):封装了具体的...
2020-01-16 17:37:34
912
原创 基于切面和注解的Redis分布式锁实现
描述 基于SpringEL表达式,动态配置 基于切面,无缝切入 支持获取锁失败时的行为,抛出异常还是继续等待,两种方式的锁,一种等待重试,一种直接退出 源码地址:https://github.com/shawntime/shawn-common-utils/tree/master/src/main/java/com/shawntime/common/lock 使用方法 @RedisLock...
2020-01-16 17:21:38
973
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅