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