隔壁阿布都
码龄10年
关注
提问 私信
  • 博客:689,536
    社区:1,896
    691,432
    总访问量
  • 141
    原创
  • 1,602,262
    排名
  • 16,039
    粉丝
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:天津市
  • 加入CSDN时间: 2015-04-30
博客简介:

程序猿踩坑集锦

博客描述:
程序员的成长历程,记录技术学习的点点滴滴
查看详细资料
个人成就
  • 获得313次点赞
  • 内容获得176次评论
  • 获得1,289次收藏
  • 代码片获得5,441次分享
创作历程
  • 5篇
    2024年
  • 6篇
    2023年
  • 8篇
    2022年
  • 29篇
    2021年
  • 17篇
    2020年
  • 21篇
    2019年
  • 69篇
    2018年
  • 33篇
    2017年
  • 1篇
    2016年
成就勋章
TA的专栏
  • 消息队列
    2篇
  • Docker从零开始
    6篇
  • 分布式事务
    2篇
  • 多线程 并发
    6篇
  • Redis相关
    7篇
  • Spring Cloud系列
    18篇
  • spring Boot系列
    41篇
  • Java基础
    43篇
  • 前端相关
    13篇
  • linux 相关
    19篇
  • python
    5篇
  • NoSQL
    10篇
  • 开发工具
    4篇
  • MySQL
    11篇
兴趣领域 设置
  • 后端
    spring架构
  • 搜索
    elasticsearch
  • 网络空间安全
    系统安全web安全
  • 服务器
    linux
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

账号多端互踢实现思路

你需要一个机制来跟踪每个账号的当前登录状态。这通常通过数据库、缓存系统(如Redis)或分布式会话管理来实现。:当用户尝试登录时,系统需要验证其凭据,并在验证成功后更新其登录状态。:为每个登录的会话分配一个唯一的标识符(如JWT、Session ID等),并在用户与系统进行交互时使用此标识符来识别用户。:当检测到同一账号在另一个终端登录时,需要有一个逻辑来找到并终止前一个会话。
原创
发布博客 2024.03.29 ·
1135 阅读 ·
3 点赞 ·
0 评论 ·
8 收藏

JVM内存溢出排查

如果是方法区内存溢出,可能是因为使用了过多的静态变量、常量池被大量占用,或者第三方框架(如Hibernate、Spring)产生了大量的动态类。这些工具可以帮助识别哪些对象占用了过多的内存,以及这些对象是如何被引用的。通过查看GC日志,可以了解垃圾回收的情况,包括回收的频率、回收的对象数量等。内存泄露是导致内存溢出的常见原因。通过工具分析堆转储文件,可以检查是否存在无用的对象被长时间持有引用,导致无法被GC回收。如果堆内存确实不足,可以考虑调整JVM的启动参数,如增加-Xmx参数的值以增大堆内存的最大值。
原创
发布博客 2024.03.22 ·
710 阅读 ·
9 点赞 ·
0 评论 ·
3 收藏

Java类的加载过程

JVM有三大类加载器,包括Bootstrap根加载器、Extension类加载器和System类加载器,它们之间遵循父委托机制,即子类加载器在加载类之前,会先委托父类加载器去加载,只有当父类加载器无法加载到类时,子类加载器才会尝试自己去加载。请注意,虽然上述五个步骤是Java类加载的主要过程,但在实际应用中,类的加载可能受到多种因素的影响,如类的使用方式、类加载器的配置等。类加载器根据类的全限定名查找并读取类的字节码文件,然后将其转换为内部数据结构,并创建一个Class对象来表示这个类。
原创
发布博客 2024.03.21 ·
522 阅读 ·
5 点赞 ·
0 评论 ·
9 收藏

MongoDB 和 MySQL 的区别

总体来说,MongoDB更适合需要灵活方便地存储非结构化数据的场景,MySQL更适合结构化数据和需要事务支持的场景。MongoDB 存储的是文档型数据(JSON格式),MySQL 存储的是结构化的表格数据。MongoDB是一个基于分布式文件存储的数据库,可以方便地扩展到大量的数据和高并发。MongoDB是动态模式,这意味着同一个集合里的文档不需要有相同的字段和结构。MongoDB使用的是面向文档的查询语言,可以对JSON格式的数据进行查询。MongoDB 是文档型数据库,MySQL 是关系型数据库。
原创
发布博客 2024.02.28 ·
6570 阅读 ·
8 点赞 ·
0 评论 ·
24 收藏

Hbase和Clickhouse对比简单总结

Hbase和Clickhouse是两种不同的数据库系统,它们各自适用于不同的场景。以下是两者之间的对比:数据模型:数据处理能力:可扩展性和可靠性:存储引擎:性能:总结来说,HBase 和 ClickHouse各有优势,选择哪一种取决于具体的应用需求。HBase 适合需要快速随机访问的大规模数据集,而 ClickHouse 更适合 OLAP 工作负载和高可用性的环境。
原创
发布博客 2024.02.23 ·
3973 阅读 ·
8 点赞 ·
2 评论 ·
9 收藏

ClickHouse与Elasticsearch对比

优点:ClickHouse写入吞吐量大,单服务器日志写入量在50MB到200MB/s,每秒写入超过60w记录数,是ES的5倍以上。 查询速度快,官方宣称数据在pagecache中,单服务器查询速率大约在2-30GB/s;没在pagecache的情况下,查询速度取决于磁盘的读取速率和数据的压缩率。。 ClickHouse比ES服务器成本更低。一方面ClickHouse的数据压缩比比ES高,相同数据占用的磁盘空间只有ES的1/3到1/30,节省了磁盘空间的同时,也能有效的减少磁盘IO;另一方面Click
转载
发布博客 2023.08.22 ·
1425 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

五分钟理解NIO与BIO

- Blocking IO 即阻塞式 IO。-- Non-Blocking IO, 即非阻塞式 IO 或异步 IO。BIO 基于字节流和字符流进行操作,数据的读取写入必须阻塞在一个线程内等待其完成。NIO 基于 Channel 和 Buffer 进行操作,数据总是从通道读取到缓冲区中,或者从缓冲区写入到通道中。Selector 用于监听多个通道的事件(比如:连接打开,数据到达)。因此,单个线程可以监听多个数据通道,处理多个事件。
原创
发布博客 2023.08.02 ·
823 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

自定义线程池线程数量设置

一个计算为主的程序(CPU密集型程序),多线程跑的时候,可以充分利用起所有的 CPU 核心数,比如说 8 个核心的CPU ,开8 个线程的时候,可以同时跑 8 个线程的运算任务,此时是最大效率。因此对于 CPU 密集型的任务来说,线程数等于 CPU 数是最好的了。如果是一个磁盘或网络为主的程序(IO密集型程序),一个线程处在 IO 等待的时候,另一个线程还可以在 CPU 里面跑,有时候 CPU 闲着没事干,所有的线程都在等着 IO,这时候他们就是同时的了,而单线程的话此时还是在一个一个等待的。
原创
发布博客 2023.07.04 ·
429 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

MySQL之binlog、redolog、undolog

redo log默认情况下存储在data目录下ib_logfile0 、ib_logfile1,可以通过 innodb_log_file_size 设置大小, innodb_log_files_in_group 设置文件个数,比如可以配置为一组4个文件,每个文件的大小是 1GB,整个redo log 日志文件组可以记录4G的内容,2、先写redo log,mysql崩溃,重启,通过redo log恢复事务,但是binlog里并没有这个事务,主从不一致,如果通过binlog来恢复数据,也会丢失事务。
原创
发布博客 2023.07.04 ·
2361 阅读 ·
3 点赞 ·
0 评论 ·
6 收藏

Java 动态代理和静态代理知识点速记

静态代理:由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。动态代理:在程序运行时,运用反射机制动态创建而成。
原创
发布博客 2023.06.13 ·
124 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

一个批量修改文件名的工具类

一个批量修改文件名的工具类。
原创
发布博客 2023.02.13 ·
198 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

linux 快速搭建sftp 服务

1)注释Subsystem sftp /usr/libexec/openssh/sftp-server(若不注释,可以通过"cd / "看到系统所有文件)// 由于sshd_config配置中指定了根目录,根目录无法写入,因此要创建一个用于上传文件的目录。// 目录所有者为mysftp,有写入权限;所有组为sftp,无写入权限。修改SELINUX=disabled,否则重启sshd会提示权限不够。三、创建文件夹作为用户mysftp的根目录。四、修改sshd_config配置。sftp安装已经完成。
原创
发布博客 2022.10.26 ·
7096 阅读 ·
1 点赞 ·
1 评论 ·
28 收藏

Spring Boot 集成JFreeChart 生成图表

Spring Boot 集成JFreeChart 生成饼状图,这是一个demo,开发时根据需要进行自定义可抽取工具类使用。
原创
发布博客 2022.09.07 ·
1305 阅读 ·
0 点赞 ·
0 评论 ·
5 收藏

Spring Boot 整合 FTP文件上传下载

ftp工具
原创
发布博客 2022.07.04 ·
2123 阅读 ·
1 点赞 ·
1 评论 ·
7 收藏

搭建sftp 出现 Host key verification failed.Couldn‘t read packet: Connection reset by peer 解决

使用sftp命令登录文件服务器报错:
原创
发布博客 2022.07.04 ·
3955 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

Spring Boot 快速集成Kafka

1. 添加依赖2.生产者配置3.发送消息service 中添加4.消费者配置5.消息监听 新增消息监听类
原创
发布博客 2022.06.23 ·
805 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

FTP主动和被动模式区别

FTP是用来在两台计算机之间传输文件,是互联网中应用非常广泛的服务之一。FTP(File Transfer Protocol)即文件传输协议,是一种基于TCP的协议,采用客户/服务器模式,不支持UDP协议。FTP协议有PORT和PASV两种工作模式,即主动模式和被动模式。与众不同的是FTP使用2个端口,一个数据端口和一个命令端口(也可叫做控制端口)。通常来说这两个端口是21(命令端口)和20(数据端口)。但FTP工作方式的不同,数据端口并不总是20。FTP支持两种方式的传输:文本(ASCII)方式和..
原创
发布博客 2022.05.31 ·
3302 阅读 ·
3 点赞 ·
3 评论 ·
8 收藏

计算机网络相关知识点

OSI,TCP/IP,五层协议的体系结构,以及各层协议OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。TCP/IP分层(4层):网络接口层、 网际层、运输层、 应用层。五层协议 (5层):物理层、数据链路层、网络层、运输层、 应用层。每一层的协议如下:物理层:RJ45、CLOCK、IEEE802.3 (中继器,集线器,网关)数据链路:PPP、FR、HDLC、VLAN、MAC (网桥,交换机)网络层:IP、ICMP、ARP、RARP、OSPF、IPX、
原创
发布博客 2022.02.10 ·
324 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

使用Docker grokzen/redis-cluster快速搭建redis 集群

docker run -i -t -p 7000:7000 -p 7001:7001 -p 7002:7002 -p 7003:7003 -p 7004:7004 -p 7005:7005 --net host --name redis-cluster grokzen/redis-cluster
原创
发布博客 2022.01.19 ·
1992 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

Spring Boot 整合Netty 登录、心跳、自定义编解码、重连

什么是Netty?Netty 是一个利用 Java 的高级网络的能力,隐藏其背后的复杂性而提供一个易于使用的 API 的客户端/服务器框架。Netty 是一个广泛使用的 Java 网络编程框架(Netty 在 2011 年获得了Duke's Choice Award,见https://www.java.net/dukeschoice/2011)。它活跃和成长于用户社区,像大型公司 Facebook 和 Instagram 以及流行 开源项目如 Infinispan, HornetQ, Vert...
原创
发布博客 2021.12.23 ·
8056 阅读 ·
11 点赞 ·
0 评论 ·
23 收藏
加载更多