07 2020 档案
摘要:本文转载自MySQL索引背后的数据结构及算法原理 摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,
阅读全文
摘要:本文转载自四种常见的 POST 提交数据方式 导语 HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 这几种。其中 POST 一般用来向服务端提交数据,本文主要讨论 POST 提交数据的几种方式。 我们知
阅读全文
摘要:本文转载自HTTP 协议中的 Transfer-Encoding 导语 本文作为我的博客「HTTP 相关」专题新的一篇,主要讨论 HTTP 协议中的 Transfer-Encoding。这个专题我会根据自己的理解,以尽量通俗的讲述,结合代码示例和实际场景来说明问题,欢迎大家关注和留言交流。 Tran
阅读全文
摘要:本文转载自一些安全相关的HTTP响应头 导语 现代浏览器提供了一些安全相关的响应头,使用这些响应头一般只需要修改服务器配置即可,不需要修改程序代码,成本很低。本文介绍一些这样的响应头: Strict-Transport-Security HTTP Strict Transport Security,
阅读全文
摘要:本文转载自密钥交换(密钥协商)算法及其原理 导语 本系列的前一篇,咱们聊了“密钥交换的难点”以及“证书体系”的必要性。今天这篇来介绍一下实战中使用的“密钥协商算法”。 密钥交换/协商机制要达到啥目的? 前一篇介绍了 SSL/TLS 的身份认证机制。这个机制是为了防止攻击者通过【篡改】网络传输数据,来
阅读全文
摘要:本文转载自SSL/TLS协议详解(下)——TLS握手协议 导语 在博客系列的第2部分中,对证书颁发机构进行了深入的讨论.在这篇文章中,将会探索整个SSL/TLS握手过程,在此之前,先简述下最后这块内容的关键要点: TLS适用于对称密钥 对称密钥可以通过安全密钥交换算法共享 如果请求被截获,密钥交换可
阅读全文
摘要:本文转载自SSL/TLS协议详解(中)——证书颁发机构 导语 上一篇中,我们讨论了关于Diffie Hellman算法的SSL/TLS密钥交换。我们最终认为需要第三方来验证服务器的真实性,并提出了证书颁发机构的机制。博客系列的最后两部分的主要内容: TLS加密客户端-服务器通信并阻止中间人攻击。 编
阅读全文
摘要:本文转载自SSL/TLS协议详解(上):密码套件,哈希,加密,密钥交换算法 导语 作为一名安全爱好者,我一向很喜欢SSL(目前是TLS)的运作原理。理解这个复杂协议的基本原理花了我好几天的时间,但只要你理解了底层的概念和算法,就会感觉整个协议其实很简单。在学习SSL运作原理的过程中,我获益匪浅。回想
阅读全文
摘要:本文转载自Maven的-pl -am -amd参数学习 昨天maven的deploy任务需要只选择单个模块并且把它依赖的模块一起打包,第一时间便想到了-pl参数,然后就开始处理,但是因为之前只看了一下命令的介绍,竟然花了近半小时才完全跑通,故记录此文。 假设现有项目结构如下: dailylog-pa
阅读全文
摘要:本文转载自关于Sidecar Pattern 导语 Sidecar 是一个很纠结的名字,我们在翻译技术雷达时采用了一个比较通俗的翻译,即边车,而这个词随着微服务的火热与 Service Mesh 的逐渐成熟而进入人们的视野。虽然很多企业在自己的后台应用中已经大量的使用了 Sidecar,但是也是没有
阅读全文
摘要:本文转载自Java Reference核心原理分析 导语 带着问题,看源码针对性会更强一点、印象会更深刻、并且效果也会更好。所以我先卖个关子,提两个问题(没准下次跳槽时就被问到)。 我们可以用ByteBuffer的allocateDirect方法,申请一块堆外内存创建一个DirectByteBuff
阅读全文
摘要:本文转载自计算机网络概述 基本概念 计算机网络协议:语法,语义,时序 语法:描述实体间信息交换格式 语义:控制信息的具体含义 时序:交换信息的顺序以及速度配合 功能:硬件,软件,信息 分类:覆盖范围,拓扑结构,交换方式,用户属性 树形,星形拓扑:易于管理,中心节点是网络的关键,线路较多成本较高 环形
阅读全文
摘要:普通模式 默认的集群模式,以两个节点(rabbit01、rabbit02)为例来进行说明。对于Queue来说,消息实体只存在于其中一个节点rabbit01(或者rabbit02),rabbit01和rabbit02两个节点仅有相同的元数据,即队列的结构。当消息进入rabbit01节点的Queue后,
阅读全文
摘要:本文转载自JVM性能调优经验总结 说明 调优是一个循序渐进的过程,必然需要经历多次迭代,最终才能换取一个较好的折中方案。 在JVM调优这个领域,没有任何一种调优方案是适用于所有应用场景的,同时,切勿极端才能够达到JVM性能调优的真正目的和意义。 调优策略 核心目标 GC的时间足够的小 GC的次数足够
阅读全文
摘要:本文转载自TCP 的那些事儿(下) 导语 这篇文章是下篇,所以如果你对TCP不熟悉的话,还请你先看看上篇《TCP的那些事儿(上)》 上篇中,我们介绍了TCP的协议头、状态机、数据重传中的东西。但是TCP要解决一个很大的事,那就是要在一个网络根据不同的情况来动态调整自己的发包的速度,小则让自己的连接更
阅读全文
摘要:本文转载自TCP 的那些事儿(上) 导语 TCP是一个巨复杂的协议,因为他要解决很多问题,而这些问题又带出了很多子问题和阴暗面。所以学习TCP本身是个比较痛苦的过程,但对于学习的过程却能让人有很多收获。关于TCP这个协议的细节,我还是推荐你去看W.Richard Stevens的《TCP/IP 详解
阅读全文
摘要:本文转载自SSL (Secure Sockets Layer) TLS简介 The Transport Layer Security (TLS) protocol aims primarily to provide secure and data integrity between two comm
阅读全文
摘要:本文转载自浅谈tcp socket的backlog参数 导语 最近看netty源码碰到ChannelOption.SO_BACKLOG参数,通过跟踪代码发现其实是用于设置底层tcp socket的backlog参数,由于不了解这个参数,有必要彻底的理解一下。 底层 backlog参数主要用于底层方法
阅读全文
摘要:本文转载自深入理解Linux TCP backlog 当应用程序调用listen系统调用让一个socket进入LISTEN状态时,需要指定一个参数:backlog。这个参数经常被描述为,新连接队列的长度限制。 tcp-state-diagram.png 由于TCP建立连接需要进行3次握手,一个新连接
阅读全文
摘要:本文转载自Spring @Value 设置默认值 概述 在 Spring 组件中使用 @Value 注解的方式,很方便的读取 properties 文件的配置值。 使用场景 声明的变量中使用。 public static class FieldValueTestBean { @Value("#{ s
阅读全文
摘要:本文转载自Spring 注解(二)注解工具类 导语 首先回顾一下 AnnotationUtils 和 AnnotatedElementUtils 这两个注解工具类的用法: @Test @GetMapping(value = "/GetMapping", consumes = MediaType.AP
阅读全文
摘要:本文转载自Spring 注解(一)Spring 注解编程模型 术语 元注解 元注解是一种标注在别的注解之上的注解。如果一个注解可以标注在别的注解上,那么这个注解已然是元注解。例如,任何需要被文档化的注解,都应该被 java.lang.annotation 包中的元注解 @Documented 标注。
阅读全文
摘要:本文转载自java中什么是bridge method(桥接方法) 导语 在看spring-mvc的源码的时候,看到在解析handler方法时,有关于获取桥接方法代码,不明白什么是桥接方法,经过查找资料,终于理解了什么是桥接方法。 什么是桥接方法 桥接方法是 JDK 1.5 引入泛型后,为了使Java
阅读全文
摘要:本文转载自spring boot插件开发实战和原理 实战:编写spring boot插件 为什么要编写boot插件 因为我们在开发的时候需要提供一些共同的功能,所以我们编写个共同的jar包。开发人员在使用jar包的时候不用考虑jar包的内容,直接使用具体的功能即可,但是可能由于包路径的不同,你所编写
阅读全文
摘要:本文转载自SpringBoot中神奇的@Enable注解? 导语 在SpringBoot开发过程,我们经常会遇到@Enable开始的好多注解,比如@EnableEurekaServer、@EnableAsync、@EnableScheduling等,今天我们就来分析下这些注解到底是如何工作的? @E
阅读全文
摘要:本文转载自从实际案例聊聊Java应用的GC优化 导语 当Java程序性能达不到既定目标,且其他优化手段都已经穷尽时,通常需要调整垃圾回收器来进一步提高性能,称为GC优化。但GC算法复杂,影响GC性能的参数众多,且参数调整又依赖于应用各自的特点,这些因素很大程度上增加了GC优化的难度。即便如此,GC调
阅读全文
摘要:本文转载自JVM学习——元空间(Metaspace) 从方法区(PermGen)到元空间(Metaspace) 方法区(PermGen) JDK1.8以前的HotSpot JVM有方法区,也叫永久代(permanent generation)。 方法区用于存放已被虚拟机加载的类信息、常量、静态变量,
阅读全文
摘要:本文转载自不可不说的Java“锁”事 前言 Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8和Netty 3.10.6)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。 Java中往往是按照
阅读全文
摘要:本文转载自identityHashCode与偏向锁 hashCode 我们知道在Java中,一切对象都继承自java.lang.Object类。这个类中有一个可继承的方法叫hashCode()。它在Object类中的方法签名是这样的: public native int hashCode(); 可以
阅读全文