自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

luoxn28的专栏

学习记录

原创 网络数据是如何传递给进程的

戳蓝字「TopCoder」关注我们哦!在分析网卡数据是如何传递给进程的流程之前,要知道数据是如何从进程写到网卡的,因为只有发起方写数据到网卡然后接收方才能接收到并处理。发送数据发送方的...

2020-05-17 22:24:00 15 0

原创 Linux管道那些事儿

戳蓝字「TopCoder」关注我们哦!管道是最早出现的进程间通信的手段,在shell中执行命令,经常会将上一个命令的输出作为下一个命令的输入,由多个命令配合完成一件事情。管道的作用是在...

2020-05-01 22:24:00 27 0

原创 从socket api看网络通信流程

戳蓝字「TopCoder」关注我们哦!说了网络通信,大家肯定都不会陌生,比如各种分布式系统、大数据框架等等都要涉及到网络通信,由于大多数通信都是基于TCP协议来的,因此本文就以TCP为...

2020-04-27 23:33:17 36 0

原创 谈一谈TCP的4次挥手

戳蓝字「TopCoder」关注我们哦!TCP是全双工传输协议,也就是说双方都可进行读写操作,当一方不需要写数据时,会通过发送FIN报文告知对方,我要关闭连接了,对方接受到并返回ACK报...

2020-04-24 22:24:00 40 0

原创 Linux信号处理机制

戳蓝字「TopCoder」关注我们哦!信号是一种异步处理的软中断,内核会发送给进程某些异步事件,这些异步事件可能来自硬件,比如除0或者访问了非法地址;也可能来自其他进程或用户输入,比如...

2020-04-18 22:24:00 40 0

原创 操作系统页面更换与Redis内存淘汰

戳蓝字「TopCoder」关注我们哦!操作系统为什么需要页面更换呢,因为物理内存不够,不可能同时加载所需的所有数据页,因此只能加载正在或最近要使用的内存页。页面更换的目标是,尽量替换掉...

2020-04-17 22:24:00 46 0

原创 深入理解Linux VFS和Page Cache

戳蓝字「TopCoder」关注我们哦!编者注:在分析完Linux inode 基础概念 之后,让我们看下inode在内存中对应的文件系统抽象VFS,然后分析下关于磁盘操作中Pag...

2020-04-15 22:00:00 41 0

原创 Linux inode 基础概念

戳蓝字「TopCoder」关注我们哦!在理解inode之前,先了解下磁盘扇区,磁盘的最小单位,我们都知道,磁盘一个扇区是512个字节。磁盘读写是都是按照块来操作的,一个块一般是4K,...

2020-04-12 22:24:00 16 0

原创 磁盘操作那些事

戳蓝字「TopCoder」关注我们哦!编者注:日常开发中,大多数同学可能都不太关注应用程序的底层基石-磁盘的存在,但是磁盘作为计算机的底层存储,重要性不言而喻,操作系统的启动程序就是...

2020-04-11 22:31:01 32 0

转载 操作系统中的页式内存管理

戳蓝字「TopCoder」关注我们哦!编者注:操作系统中两个重要的概念是CPU和内存,CPU管理相对来说比较"直男"一点,只顾着执行指...

2020-03-29 09:00:00 86 0

原创 Group by中子查询order by排序失效问题分析

戳蓝字「TopCoder」关注我们哦!通过sql分组查询数据时,一般通过group by来完成,group by默认取相同的分组列(一列或者多列)中第...

2020-03-17 09:30:00 23 0

原创 Transmittable-Thread-Local:阿里开源的线程间上下文传递解决方案

戳蓝字「TopCoder」关注我们哦!TTL(transmittable-thread-local)是一个线程间传递ThreadLocal,异步执行时...

2020-03-15 18:00:00 132 0

原创 线程池如何传递线程上下文信息

戳蓝字「TopCoder」关注我们哦!业务开发中,一般都会使用ThreadLocal保存一些上下文信息,但是在线程池中执行对应逻辑时,由于是不同线程所...

2020-03-13 22:00:00 184 0

原创 ToString数据如何反序列化

戳蓝字「TopCoder」关注我们哦!不知道小伙伴们有没有这样的困扰,平常开发中写单测,要mock一个复杂的对象,并且也知道了该对象的toString格式数据(比如从日志中获取),但是...

2020-03-08 11:27:06 184 0

原创 Java并发工具那些事儿

戳蓝字「TopCoder」关注我们哦!Java并发工具类主要有CyclicBarrier、CountDownLatch、Semaphore和Exchanger,日常开发中经常使用的是C...

2020-03-01 17:00:00 27 0

原创 一起聊聊3个线程依次打印1、2、3...的故事

戳蓝字「TopCoder」关注我们哦!3个线程依次打印1、2、3…这个问题,常常被作为面试题,题目如下:三个线程,一个线程负责打印1,4,7,……;第二个负责打印2,5,8,……,第三...

2020-02-29 17:20:00 50 0

转载 kubernetes:Pod基础概念知多少

戳蓝字「TopCoder」关注我们哦!编者注:kubernetes(简称k8s)是一种用于在一组主机上运行和协同容器化应用程序的管理平台,皆在提供高可用、高扩展性和可预测性的方式来管理...

2020-02-08 23:56:00 69 0

原创 数据序列化的那些事

戳蓝字「TopCoder」关注我们哦!编者注:关于数据序列化,首先要了解为什么需要序列化以及数据序列化的意义是什么,然后再了解下当前较为广泛的几种序列化方式。为什么需要数据序列化呢?因...

2020-02-03 08:00:00 39 0

原创 Docker容器网络通信的那些事儿

戳蓝字「TopCoder」关注我们哦!编者注:Docker是基于go语言开发,Linux下的底层技术主要基于cgroups、namespace以及联合文件技术实现的一种进程级别的轻量级...

2020-02-01 10:00:00 97 0

原创 influxdb原理那些事

戳蓝字「TopCoder」关注我们哦!编者注:InfluxDB是一个开源的时序数据库,使用GO语言开发,特别适合用于处理和分析资源监控数据这种时序相关数据。而InfluxDB自带的各种...

2020-01-30 10:00:00 35 0

原创 influxdb基础入门

戳蓝字「TopCoder」关注我们哦!编者注:InfluxDB是一个开源的时序数据库,使用GO语言开发,特别适合用于处理和分析资源监控数据这种时序相关数据。而InfluxDB自带的各种...

2020-01-29 10:00:00 66 0

原创 influxdb的命令们

戳蓝字「TopCoder」关注我们哦!编者注:InfluxDB是一个开源的时序数据库,使用GO语言开发,特别适合用于处理和分析资源监控数据这种时序相关数据。而InfluxDB自带的各种...

2020-01-28 11:00:00 52 0

原创 kubernetes基础概念知多少

戳蓝字「TopCoder」关注我们哦!kubernetes(简称k8s)是一种用于在一组主机上运行和协同容器化应用程序的管理平台,皆在提供高可用、高扩展性和可预测性的方式来管理容器应用...

2020-01-20 23:35:25 116 0

转载 Linux Namespace浅析

戳蓝字「TopCoder」关注我们哦!编者注:Namespace是将内核的全局资源做封装,使得每个Namespace都有一份独立的资源,因此不同的进程在各自的Namespace内对同一...

2020-01-12 13:14:00 31 0

转载 Linux Cgroup浅析

戳蓝字「TopCoder」关注我们哦!编者注:cgroup从2.6.4引入linux内核主线,目前默认已启用该特性。在cgroup出现之前,只能对一个进程做资源限制,比如通过sched...

2020-01-04 17:00:00 39 0

转载 大数据存储的秘密之分区

戳蓝字「TopCoder」关注我们哦!分区,又称为分片,是解决大数据存储的常见解决方案,大数据存储量超过了单节点的存储上限,因此需要进行分区操作将数据分散存储在不同节点上,通常每个单个...

2020-01-01 17:00:00 59 0

转载 高可用的本质: 复制

戳蓝字「TopCoder」关注我们哦!服务和数据的高可用性本质上是靠“复制”来解决的,比如服务通过集群部署多台机器来完成,数据通过冗余的多副本机制来完成。对于服务来说,只需要部署多个实...

2019-12-30 12:00:00 22 0

转载 开发者不可不知的 Docker 命令

戳蓝字「TopCoder」关注我们哦!学习Docker,首先需要了解Docker基本概念,然后就开始“动手”了(也就是敲Docker命令)。Docker命令较多,这里笔者总结下常用的D...

2019-12-29 14:11:45 28 0

转载 如何优雅地执行dubbo"单测"

戳蓝字「TopCoder」关注我们哦!很多小伙伴所在的公司是基于Dubbo来构建技术栈的,日常开发中必不可少要写dubbo单测(单元测试),如果单测数据依赖已有的外部dubbo服务,一...

2019-12-21 17:00:00 17 0

转载 Netty 总结篇

戳蓝字「TopCoder」关注我们哦!Netty一个主要的目标就是促进“关注点分离”:使业务逻辑从网络基础设施应用程序中分离。不仅仅是Netty框架,其他框架的设计目的也大都是为了使业...

2019-12-03 17:20:00 22 0

转载 Netty ByteBuf原理剖析

戳蓝字「TopCoder」关注我们哦!编者注:缓冲区在计算机世界中随处可见,内存中的多级缓冲区,io设备的缓冲区等等,还有我们经常用的内存队列,分布式队列等等。缓冲区,平衡了数据产生方...

2019-12-02 17:20:00 46 0

转载 从Netty EventLoop实现上可以学到什么

戳蓝字「TopCoder」关注我们哦!编者注:本文主要讨论Netty NioEventLoop原理及实践,关于Netty NioEventLoop,首先要知道NioEventLoop是...

2019-12-01 09:00:00 13 0

转载 Netty 黏包拆包机制

戳蓝字「TopCoder」关注我们哦!编者注:学习netty处理黏包和拆包,首先要知道什么是黏包和拆包问题?黏包和拆包的产生是由于TCP拥塞控制算法(比如angle算法)和TCP缓冲区...

2019-11-30 08:00:00 33 0

转载 代码到底需不需要注释?

戳蓝字「TopCoder」关注我们哦!编者注:关于代码代码需不需要注释,该有什么样的注释,不同的小伙伴有不同的见解,下面就开启代码注释的讨论吧 :)好的代码需不需要注释,这个问题其实不...

2019-11-30 08:00:00 66 0

转载 彻底搞懂 netty 线程模型

戳蓝字「TopCoder」关注我们哦!编者注:Netty是Java领域有名的开源网络库,特点是高性能和高扩展性,因此很多流行的框架都是基于它来构建的,比如我们熟知的Dubbo、Rocketmq、Hadoop等。本文就netty线程模型展开分析讨论下 : )内容目录netty线程模型netty单线程...

2019-11-17 09:00:00 18 0

转载 Java nio 空轮询bug到底是什么

戳蓝字「TopCoder」关注我们哦!编者注:Java nio 空轮询bug也就是Java nio在Linux系统下的epoll空轮询问题。epoll机制是Linux下一种高效的IO复用方式,相较于select和poll机制来说。其高效的原因是将基于事件的fd放到内核中来完成,在内核中基于红黑树+...

2019-11-16 18:18:17 41 0

转载 Netty 启动流程解析

戳蓝字「TopCoder」关注我们哦!编者注:Netty是Java领域有名的开源网络库,特点是高性能和高扩展性,因此很多流行的框架都是基于它来构建的,比如我们熟知的Dubbo、Rocketmq、Hadoop等,针对高性能RPC,一般都是基于Netty来构建,比如sofa-bolt。总之一句话,Ja...

2019-11-11 07:56:48 25 0

转载 Netty 处理连接那些事

戳蓝字「TopCoder」关注我们哦!编者注:Netty是Java领域有名的开源网络库,特点是高性能和高扩展性,因此很多流行的框架都是基于它来构建的,比如我们熟知的Dubbo、Rocketmq、Hadoop等,针对高性能RPC,一般都是基于Netty来构建,比如soft-bolt。总之一句话,Ja...

2019-11-11 07:56:48 38 0

转载 Netty 入门,这一篇文章就够了

戳蓝字「TopCoder」关注我们哦!编者注:Netty是Java领域有名的开源网络库,特点是高性能和高扩展性,因此很多流行的框架都是基于它来构建的,比如我们熟知的Dubbo、Rocketmq、Hadoop等,针对高性能RPC,一般都是基于Netty来构建,比如sock-bolt。总之一句话,Ja...

2019-11-06 07:48:34 24 0

转载 java lambda 深入浅出

戳蓝字「TopCoder」关注我们哦!JDK8中包含了许多内建的Java中常用到函数接口,比如Comparator或者Runnable接口,这些接口都增加了@FunctionalInterface注解以便能用在lambda上。nametypedescriptionConsumerConsumer&...

2019-11-04 09:05:09 22 0

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