自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

书唐瑞的博客

www.infuq.com/

  • 博客(248)
  • 收藏
  • 关注

原创 文章快速定位(部分)

安装单机版RocketMQMac安装zookeeper dubbo-adminMac 通过命令行方式压缩和解压rar文件

2020-03-27 20:04:09 558

原创 jar包加载的位置顺序

jar包加载的位置顺序

2024-04-03 15:34:12 302

原创 网络加速工具

网络加速工具

2024-02-03 11:30:15 220

原创 CLion调试Nodejs源码

CLion调试Nodejs源码

2024-01-21 23:51:11 499

原创 多行SQL转成单行SQL

多行SQL转成单行SQL

2024-01-14 13:34:37 1285 2

原创 MySQL例行检查

例行检查

2023-12-31 19:00:32 1069

原创 MySQL唯一索引失效的注意点

唯一索引失效

2023-12-29 11:48:21 1067

原创 RMI初探

RMI

2023-11-05 01:32:15 253

原创 修改MAT内存

修改MAT的内存

2023-06-07 22:19:14 1236

原创 纠正互联网上关于捕获异常事务可提交的言论

捕获异常之后事务可提交吗

2023-04-08 19:50:42 384

原创 纠正互联网上关于MySQL行锁和表锁的言论

普通字段作为WHERE条件,表锁还是行锁

2023-04-01 11:12:52 268

原创 MySQL锁杂谈

MySQL锁杂谈

2022-11-26 18:02:08 736

原创 docker中安装jenkins

jenkins

2022-10-24 02:18:16 262

原创 当进程退出和机器宕机时TCP连接发生什么

当进程崩溃和机器宕机时TCP连接发生什么

2022-09-11 17:54:38 1019

原创 TCP SYNCookie机制

TCP SYN cookie机制

2022-08-29 03:47:24 1566

原创 Java线程发生IO阻塞时的线程状态

Java线程阻塞在IO操作时的线程状态

2022-08-07 04:08:36 939

原创 ping数据包中的进程号

ping数据包中的进程号

2022-07-30 13:28:42 1092

原创 查看JVM进程的内存情况

// DirectMemory.javapackage com.infuq.memory;import org.jctools.util.UnsafeAccess;import sun.misc.Unsafe;import org.openjdk.jol.info.ClassLayout;import org.openjdk.jol.vm.VM;import java.util.Scanner;public class DirectMemory { public static v

2022-04-16 14:42:45 4229

原创 Linux系统读取目录内文件顺序

Linux系统读取目录内文件顺序是依据什么

2022-03-18 20:01:23 1360

原创 Java通过JNI申请直接内存

Java通过JNI申请直接内存

2022-03-15 20:06:30 1846 3

原创 验证子线程分配的内存空间在内存映射区

子线程分配的内存空间在内存映射区

2022-03-14 03:57:17 567

原创 RocketMQ消息不均衡的分析与解决

消息消费不均衡

2022-03-06 01:18:56 3799 1

原创 Tomcat访问静态资源txt出现乱码

在访问Tomcat上的静态资源txt文件时,出现乱码修改apache-tomcat-8.5.35/conf/web.xml文件内容如下<mime-mapping> <extension>txt</extension> <mime-type>text/plain;charset=UTF-8</mime-type></mime-mapping><servlet> <servlet-nam

2022-01-06 23:26:47 641

原创 Dubbo存在内存泄漏

Dubbo存在内存泄漏

2022-01-01 18:00:52 2021 3

原创 com.alibaba.fastjson存在内存泄漏

fastjson存在内存泄漏

2021-12-31 21:38:24 2755 1

原创 读取 & 传输文件脚本

读取jinfo命令并传输

2021-12-26 17:15:24 525

原创 Spring 和 Mybatis 使用不同的数据源会怎样?

Spring和Mybatis使用不同的数据源导致事务问题

2021-12-25 13:24:19 911

原创 编译elasticsearch6.1.2 & 本地启动

编译elasticsearch6.1.2 并本地启动

2021-12-19 13:30:41 1889

原创 Selector.select()

Netty的底层依然是依赖于JDK的NIO . 开发NIO服务端的代码如下所示import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.*;import java.util.Iterator;import java.util.Set;public class Server { // 缓冲区的大小 priva

2021-12-07 12:01:02 2021

原创 文件 ... 阻塞

关于同步,异步,阻塞,非阻塞 这一类概念.真理也许只有一个,然而每个人处于不同的境界,对它的认知有对有错, 个人感觉,绝大多数人对它的认知都是错误或者不完整.以前看过一段话, 意思就是说, “对于一个观点, 说到它的时候, 两个人都懂, 但是真正深入讨论这个观点的时候, 两个人就开始吵架了”https://stackoverflow.com/questions/34041403/what-is-blocking-mode-in-javahttps://www.remlab.net/op/nonbl

2021-11-30 15:40:59 300

原创 使用自定义协议实现Python向Netty传输数据

本篇文章,自定义一个数据协议,通过Python语言,使用这个自定义的数据协议,将数据发送给Netty接收端.之所以使用两种不同的语言,也在说明,数据之间的传输与语言无关.只要发送端和接收端彼此遵守相同的协议即可.关于协议,无处不在,比如与网络相关的HTTP协议, 比如向Redis发送命令使用的RESP协议,比如Dubbo消费者和提供者之间的数据传输,比如RocketMQ消费者与服务端之间的消息传输,比如JVM中使用jstack命令获取堆栈信息时所使用的协议,等等. 它们之间必然会有一套相关的协议,用于数

2021-10-01 14:38:19 1073

原创 Java线程与内核线程

本篇文章探究下Java线程与内核线程的关系.在Java中,一个Java的线程对应一个内核的线程,实际的业务代码是由内核线程来执行的,而Java线程只是一个傀儡.先通过一个简单的实验热热身import java.lang.Thread;public class Example { public static void main(String[] args) throws Exception { new Thread(new Runnable() { @O

2021-09-20 13:17:43 677

原创 通过Netty/Socket/C语言三种方式向Redis服务器发送命令

本文通过使用Netty,Java的Socket和C语言Socket这三种方式,基于RESP协议,向Redis服务器发送一个set命令.向Redis服务器发送命令,即与Redis服务器通信,必须基于RESP协议. 就好像在B站看2021苹果秋季发布会的视频底层数据传输必须基于TCP协议一样.RESP协议是一个简单的协议.它的协议格式如下*<number of arguments> CR LF$<number of bytes of argument 1> CR LF <a

2021-09-15 22:49:05 544

原创 Netty之线程唤醒wakeup [续]

在之前的Netty之线程唤醒wakeup文章中, 介绍了如何唤醒Netty中的监听线程. 接下来我们通过源码的角度,结合一些命令,看一下它的实现.// WakeUp.javaimport java.net.InetSocketAddress;import java.nio.channels.SelectionKey;import java.nio.channels.Selector;import java.nio.channels.ServerSocketChannel;import java.

2021-09-14 01:01:06 271

原创 JVM中的监听信号的线程以及Unix域套接字通信的线程

【实验】package com.infuq.tmp;public class Main { public static void main(String args[]) { for (;;) { try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace();

2021-09-12 11:24:07 310

原创 Netty接收数据时一次读取多少字节以及读多少次

本篇文章介绍一下,Netty在接收到数据时,一次性读取多少字节.本篇使用Netty构建一个简单的服务端,使用Python构建一个简单的客户端,然后客户端向服务端发送数据,然后观察Netty每次读取的字节数.客户端代码如下import socketif __name__ == '__main__': client = socket.socket(socket.AF_INET,socket.SOCK_STREAM) client.connect(('127.0.0.1',8080))

2021-08-26 04:29:58 2463 1

原创 Netty写数据(动画)

以动画的形式,简单描述Netty写数据的流程.个人站点语雀公众号

2021-06-12 20:00:22 244

原创 Netty对象池

在平时工作中,听说和使用过连接池,线程池等.还有一种就是对象池,可以实现对象复用的功能.当然实现对象池的方式手段有多种,比如有一个公共的池子,所有需要对象的线程通过并发控制的方式从池子中获取对象,并发控制的同时伴随性能的损耗.那么Netty是如何实现对象池的呢? 先通过一段演示代码说起import io.netty.util.Recycler;public class Book { private String name; private final Recycler.Handle

2021-06-10 20:25:13 429 1

原创 Unsafe.putOrderedXXX系列方法详解(数组赋值的第二种方式)

在Netty中,IO线程用于存储任务的容器是MpscUnboundedArrayQueue类.所有对外的读写操作,都’委托’给IO线程来执行,非IO线程(比如业务线程)若要写数据,必须将写操作封装成一个任务,提交到IO线程的任务队列中.IO线程会择机执行任务队列中的任务,将数据写入到网络(实际只是写到TCP缓冲区). 那么这个任务队列就很重要了,它必须是高性能的. 在Netty以前的版本中,使用JDK的BlockingQueue实现这个任务队列,而Netty是一个追求性能极致的框架(不被规则和常规所束缚)

2021-05-27 17:13:35 1007 1

原创 操作中划线-开头的文件

操作中划线-开头的文件本例的文件名是 -xyz创建touch -- -xyztouch ./-xyz查看ls -i -- -xyzls -i ./-xyz删除rm -f -- -xzyrm -f ./-xyzrm `find . -inum 396482`find . -inum 396482 -exec rm -i {} \;注释:396482表示文件的inode值...

2021-05-18 14:45:30 262

空空如也

空空如也

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

TA关注的人

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