自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

爱琴孩的博客

路漫漫,愿与君共求索529947128

  • 博客(11)
  • 资源 (1)
  • 问答 (4)
  • 收藏
  • 关注

原创 Linux服务器查看内存使用情况

前言在日常开发或者生产环境,我们经常需要查看linux服务的内存使用情况,所以能熟练敲出命令能便于我们快速定位问题,这里来和大家一起学习linux的常用查看内存命令。free命令free命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。很清晰明白的显示出了总内存多少,已使用多少,还剩下多少。这里可以看到Swap的used已使用了811Mb,服务器上跑了一个下载音频的进程,物理内存已经不够用了,所以从磁盘中虚拟出一部分的内存。当然我们可以使用free.

2020-09-28 22:50:55 1158

转载 理清 WebSocket 和 HTTP 的关系

前言基本上但凡提到WebSocket和HTTP的关系都会有以下两条WebSocket和HTTP都是基于TCP协议的两个不同的协议 WebSocket依赖于HTTP连接作为结论性的总结,直接了当,但是我需要更多的实现细节来解释上述结论。因为都是基于TCP的两个独立的协议,WebSocket按理说可以和HTTP没有关系,所以这里面包含两个问题:WebSocket依赖于HTTP连接,那么它如何从连接的HTTP协议转化为WebSocket协议? WebSocket为什么要依赖于HTTP协议的连接?

2020-09-28 10:36:35 351

原创 Java异常处理的正确打开方式

前言我们在日常开发中,对于异常的处理也是很有讲究的,并不是逮到异常,一段try、catch、finally。实际异常也有自己的处理最佳原则,这里列举下异常处理的最佳实践。线上代码 No printStackTrace()写完代码后请一定要检查下,代码中千万不要有printStackTrace()。因为printStackTrace()只会在控制台上输出错误的堆栈信息,他只适合于用来代码调试。真正需要记录异常,请使用日志记录。目前成熟的日志框架有很多,logback、log4j、slf4j-sim

2020-09-27 22:53:24 228

原创 FutureTask源码介绍

前言日常开发中,我们经常需要用到多线程异步任务执行,异步任务执行之后,我们需要获取到任务执行的结果,是执行成功了,还是失败了,对于这个场景Runnable肯定是不能满足的,有的小伙伴可能会说Callable可以获取到任务执行的结果。是的没毛病,这里来和大家一起学习Runnable和Callable的合体-FutureTask。简单小demopublic class FeatureTest { public static void main(String args[]) {

2020-09-24 22:51:56 185

原创 Linux日常操作之du和df

前言日常在使用linux服务器的时候,我们少不了需要使用一些简单的命令去查看linux服务的使用情况,比如经常常见的top命令,free命令等等,这里简单记录下linux操作中的du和df。高频操作之du -hLinux du (英文全拼:disk usage)命令用于显示目录或文件的大小。du 会显示指定的目录或文件所占用的磁盘空间。比如查看当前目录下的各个文件和目录的占用空间du -h --max-depth=1查看结果如下高频操作之df -hLinux df(英文全拼

2020-09-17 22:15:17 596

原创 git命令创建/切换分支

前言我们在使用git进行开发的时候经常会遇到需要切换远程分支并且提交到远程指定分支的情况,现在简单记录下操作步骤。当然现在的IDEA已经集成git,我们完全可以在IDEA上创建,切换分支。不过对于git命令操作,我们还是有必要能熟练操作的。查看远程所有分支$ git branch -agit branch不带参数,列出本地已经存在的分支,并且在当前分支的前面用*标记,加上-a参数可以查看所有分支列表,包括本地和远程,远程分支一般会用红色字体标记出来。$ git branch -a*

2020-09-16 23:10:18 1313

原创 RabbitMq之延时队列

前言前面在RabbitMq之消息限流与延时队列(上)中,我们介绍了rabbitmq如何设置限流,这里再和大家一起看下rabbitmq如何实现延迟队列。TTL 消息/队列TTL 是 Time To Live 的缩写,也就是生存时间的意思,RabbitMQ 支持消息的过期时间,在消息发送时可以进行指定,也支持队列的过期时间,从消息入队列开始计算,只要超过了队列的超时时间配置,那么消息会自动的清除。设置队列的话就是整个队列的消息到时都会过期,设置消息的话就是单条消息到时自动过期。// TTL队列

2020-09-15 22:54:11 527 1

转载 RabbitMq之消息限流与延时队列(上)

前言消息队列限流是指在服务器面临巨额流量时,为了进行自保,进行的一种救急措施。因为巨大的流量代表着非常多的消息,这些消息如果多到服务器处理不过来就会造成服务器瘫痪,影响用户体验,造成不良影响。所以要进行一次降级操作,把处理不了的流量隔绝在系统之外,避免它们打垮系统。基本上任何一个消息队列都有限流的功能,今天我们就来看看在 RabbitMQ 之中进行限流具体应该怎么做?RabbitMQ如何限流RabbitMQ 提供了一种 QOS(服务质量保证)功能,即在非自动确认消息的前提下,如果一定数目的消息还

2020-09-15 22:46:02 331

转载 RabbitMq如何保证消息可靠性

前言前面在深入浅出RabbitMQ中,我们大致介绍了下RabbitMq的一些基础概念,包括4中交换机模型。在实际企业应用中,我们往往需要需要考虑消息的可靠性。如果单纯的为了异步削峰,不考虑消息投递的可靠性,最终导致数据不一致,这肯定不是我们想要的。消息可能丢失的四个环节首先,我来看下消息在被生产到发送到MQ,再被路由到队列,紧接着被消费。其中大致流程如下图所示从图上我们大概可以看出来一个消息会经历四个节点,只有保证这四个节点的可靠性才能保证整个系统的可靠性。生产者发出后保证到达了MQ

2020-09-09 22:27:27 408

原创 Dubbo框架中SPI机制分析

前言前面我们在策略模式配置化之-SPI源码解析中学习了SPI机制,和大家一起看了下ServiceLoader类中如何通过配置实例化接口的实现类,这里再和大家一起看下Dubbo中的是如何通过SPI来拓展配置的。dubbo 的 spi 思想虽然Java 提供了对SPI机制的默认实现支持,但是并不表示所有的框架都会默认使用这种Java自带的逻辑,SPI机制更多的是一种实现思想,而具体的实现逻辑,则是可以自己定义的。例如我们说Dubbo框架中大量使用了SPI技术,但是Dubbo并没有使用JDK原生的Se

2020-09-04 22:22:17 217

原创 策略模式配置化之-SPI源码解析

前言前面在深入策略模式系列中,我们简单介绍了策略模式的原理,以及策略模式在jdk线程池中的应用,这里来和大家学习下策略模式在jdk SPI的应用,这里结合SPI的源码来一起学习下。SPI简介SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件。常见的 SPI 有 JDBC、日志门面接口、Spring、SpringBoot相关starter组件、Dubbo、JNDI等。 实际上Java SPI是"基于

2020-09-03 23:08:27 544

微服务架构讲解高清原图

微服务架构讲解高清原图

2024-06-13

Java+内存分析工具+MAT

MAT是Memory Analyzer的简称,它是一款功能强大的Java堆内存分析器。可以用于查找内存泄露以及查看内存消耗情况。MAT是基于Eclipse开发的,是一款免费的性能分析工具。

2023-08-19

websocket实现聊天小demo

WebSocket协议是基于TCP的一种网络协议,它实现了浏览器与服务器全双工(Full-duplex)通信。它允许服务端主动向客户端推送数据,这使得客户端和服务器之间的数据交换变得更加简单高效。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接,并进行双向数据传输。WebSocket 在握手之后便直接基于 TCP 进行消息通信,只是 TCP的基础上的一层非常轻的封装,它只是将TCP的字节流转换成消息流(文本或二进制),至于怎么解析这些消息的内容完全依赖于应用本身。

2023-05-12

aspose导出pdf乱码,配置字体库

解决aspose在linux环境下导出pdf乱码,在linux服务器上配置改字体库,代码中读取该字体库,即可解决aspose在linux环境下导出pdf乱码问题。

2023-02-25

windows 2008 R2解决socket连接不释放补丁包

Windows Server 2008 R2系统BUG导致windows缓冲区已满(no buffer space),Windows核心套接字泄露问题导致操作系统套接字资源被耗尽,导致服务器与数据库无法正常对接。

2019-01-17

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

TA关注的人

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