自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ARong's Blog

种一棵树最好的时间是十年前,其次是现在

原创 Dubbo源码(6)-动态代理技术源码解析(2)
原力计划

文章目录一.Dubbo中的动态代理1.1、Dubbo Invoker领域模型1.2、Invoke在RPC过程中的作用二.RPC调用流程三.动态代理相关源码解析3.1、ProxyFactory3.1.1、AbstractProxyFactory3.1.2、JavassistProxyFactory3...

2020-05-14 17:14:12 38 0

原创 Dubbo源码(5)-动态代理技术源码解析(1)
原力计划

文章目录一.Dubbo中的动态代理1.1、Dubbo Invoker领域模型1.2、Invoke在RPC过程中的作用二.RPC调用流程 本文主要参考自Dubbo官方文档、Dubbo项目源码以及网络文章和相关书籍,并附上自身的一些理解,如有遗漏或错误,还望海涵并指出。谢谢! ------本文基于...

2020-05-08 18:23:50 43 0

原创 Dubbo源码(4)-Zookeeper注册中心源码解析
原力计划

文章目录一、Zookeeper在Dubbo中的作用1.1、什么是Zookeeper1.2、Dubbo的Zookeeper注册中心二、Zookeeper注册中心源码解析2.1、FailbackRegistry2.2、ZookeeperRegistryFactory2.3、ZookeeperRegis...

2020-05-06 17:38:48 78 0

原创 Dubbo源码(3)-基础抽象注册中心源码解析
原力计划

文章目录一.Dubbo注册中心二.代码构成三、RegistryFactory3.1、AbstractRegistryFactory四、RegistryService4.1、AbstractRegistry4.1.1、属性及构造方法4.1.2、核心方法4.2、FailbackRegistry4.2....

2020-05-05 21:02:59 45 0

原创 Dubbo源码(2)-动态编译技术源码解析
原力计划

文章目录一.Javassist动态编译1.1、Javassist介绍1.2、入门使用二.Dubbo动态编译源码解析3.1、createAdaptiveExtensionClassCode方法3.2、Compiler接口3.2.1、AdaptiveCompiler3.2.2、AbstractComp...

2020-05-04 16:06:52 81 0

原创 Dubbo源码(1)-SPI机制源码解析
原力计划

文章目录一、什么是SPI二、基本使用2.1、核心注解和URL类2.2、单元测试三、SPI机制源码解析3.1、ExtensionLoader3.1.1、属性3.1.2、拓展类资源加载1)getExtensionClasses2)loadExtensionClasses3)loadFile3.1.3、...

2020-05-03 16:35:39 63 0

原创 深入理解远程过程调用
原力计划

文章目录一、什么是远程过程调用1.1、一体化调用1.2、远程过程调用二、用Java实现简单RPC2.1、业务侵入型Socket2.2、无业务侵入型Socket2.3、动态代理无业务侵入型Socket2.4、Hession序列化协议2.5、RMI远程方法调用协议2.6、Dubbo服务治理框架 本文...

2020-04-30 15:14:55 83 0

原创 Linux Bash Shell 快速上手 - 下篇

文章目录一.运算符1.1、算数运算符1.2、关系运算符1.3、布尔运算符1.4、逻辑运算符1.5、字符串运算符1.6、文件测试运算符二.echo、printf、read与重定向2.1、echo2.2、printf2.3、read2.4、重定向三.test命令四.函数与文件包含4.1、函数4.2、文...

2020-04-15 16:23:29 34 0

原创 Linux Bash Shell 快速上手 - 上篇

文章目录一.什么是Shell二.变量定义三.if语句四.循环操作五.数组 一.什么是Shell Shell的中文意识为“壳”,这层壳套在kernel(内核)之外,是用户与Linux 操作系统之间交互的一个命令解释器,是用户与Linux操作系统之间的桥梁。 Linux Shell 种类非常多, 常...

2020-04-14 22:27:31 42 0

原创 分布式基础(8)-常见分布式ID生成方案

文章目录一.什么是分布式ID二.常见分布式ID生成方案1.UUID2.数据库ID自增3.Redis4.Snowflake-雪花算法5.其他:Leaf和UidGenerator三.总结 本文主要参考自相关书籍和网络文章,并附上自身的一些理解,如有遗漏或错误,还望海涵并指出。谢谢! 一.什么是分布...

2020-04-05 22:59:51 106 0

原创 分布式基础(7)-常见分布式事务解决方案

文章目录一.分布式事务问题及2PC/3PC协议1.单机ACID事务2.分布式事务产生3.两阶段提交协议4.三阶段提交协议二.业务侵入的解决方案1.消息队列1.1、执行过程1.2、优缺点2.TCC1.1、执行过程1.2、并发控制1.3、幂等保证1.4、优缺点3.Saga1.1、执行过程1.2、服务编...

2020-04-04 21:12:51 142 0

原创 分布式基础(6)-分布式共识之Paxos、Raft算法

文章目录一.分布式共识二.Paxos算法Paxos角色定义1.Basic Paxos1.算法步骤2.基本流程3.部分节点失败4.Proposer失败5.活锁问题2.Multi Paxos0.Leader1.算法步骤2.角色优化3.Multi Paxos的优点三.Raft算法1.角色定义2.核心流程...

2020-03-31 23:38:19 358 0

原创 深入理解Linux IO模型与Reactor、Proactor模式
原力计划

文章目录一.基本概念1.用户空间与内核空间2.进程切换与进程阻塞3.文件描述符4.Buffer I/O过程二.Linux I/O模型1.阻塞I/O2.非阻塞I/O3.I/O多路复用4.事件通知I/O5.异步非阻塞I/O6.5种I/O模型总结三.select、poll与epoll1.select2....

2020-03-31 00:27:50 118 2

原创 分布式基础(5)-分布式一致性之CAP和BASE理论

文章目录一.分布式一致性二.CAP理论三.BASE理论 本文主要参考自相关书籍和网络文章,并附上自身的一些理解,如有遗漏或错误,还望海涵并指出。谢谢! 一.分布式一致性 分布式一致性指的是在分布式系统下,数据所具有的一致性。先从单机的ACID模式看起: 1.传统的单机ACID模式 在传统的We...

2020-03-20 22:14:10 143 0

原创 分布式基础(4)-常见攻击技术与加密技术

文章目录一.Web攻击技术1.DDos攻击2.XSS攻击3.SQL注入攻击4.CSRF攻击二.信息加密技术1.单向散列加密2.对称加密3.非对称加密4.密钥管理5.加密技术在HTTPS中的应用三.信息过滤技术1.文本匹配2.分类算法3.黑名单 本文主要参考自《大型网站技术架构:核心原理与案例分析...

2020-03-19 17:22:55 132 0

原创 分布式基础(3)-系统性能相关概念

文章目录一.架构的核心要素1、性能2、可用性3、伸缩性4、拓展性5、安全性二.系统性能相关概念1.不同视角下的系统性能2.常见系统性能指标1.响应时间2.并发数量3.吞吐量1.TPS2.QPS4.系统负载3.性能测试分类1.性能测试2.负载测试3.压力测试4.基准测试5.使用JMeter进行测试6...

2020-03-17 19:19:09 97 0

原创 分布式基础(2)-大型网站通用架构模式

文章目录一.何谓模式二.通用架构模式1.分层2.分割3.分布式4.集群5.缓存6.异步处理7.冗余备份8.自动化9.安全 本文主要参考自《大型网站技术架构:核心原理与案例分析》一书第二章节和其他网络文章,如有遗漏或错误,还望海涵并指出。谢谢! 好的设计绝对不是模仿,不是生搬硬套某个模式,而是...

2020-03-14 18:52:37 142 0

原创 分布式基础(1)-大型网站架构演进过程

文章目录一.大型网站系统的特点1.大流量2.高并发3.高可用4.海量数据5.用户分布广泛6.网络情况复杂7.敏捷开发和快速迭代8.安全环境恶劣二.大型网站架构演进过程1.单机时代2.多机时代3.缓存时代4.集群时代5.读写分离时代6.反向代理与内容分发网络7.底层服务集群化8.搜索引擎技术与NoS...

2020-03-13 15:10:03 107 0

原创 最小生成树问题与Prim、Kruskal算法

文章目录一.带权图基础1.什么是带权图2.如何实现3.Java代码实现二.最小生成树与切分定理1.最小生成树(Min Span Tree,MST)2.切分定理三.Prim算法1.Lazy Prim算法1.算法思路2.代码实现3.时空复杂度2.Direct Prim算法四.Kruskal算法1.算法...

2020-03-06 21:14:18 164 0

原创 图论基础入门

文章目录一.图论与图1.什么是图论2.什么是图3.经典图论问题和应用1.经典问题2.应用4.经典图论算法二.图的分类1.无向图2.有向图3.无权图4.带权图5.稀疏图6.稠密图与完全图三.图的连通性1.连通性2.带环边与平行边四.图的表示1.邻接矩阵2.邻接表五.图的基本算法0.基本代码框架1.深...

2020-03-03 15:37:59 99 0

原创 第三百篇博客:写给自己的总结

文章目录返航我的中考和高考初入大学的迷茫与思考人生第一个Hello World!第一次尝试找实习加入工作室对技术的反思第一次做外包项目脱单纪念日准备春招人生第一个Offer惨败字节与阿里开始种下一棵树吧 返航 这篇博客是这两年来写的第三百篇博客,所以不打算写和技术相关的东西,而是想用来回顾和总结...

2020-03-02 15:35:50 1334 10

原创 【吐血整理】LeetCode与剑指Offer百道经典题解总结

本文整理了LeetCode与剑指Offer中百余道经典的题目,整理出了数组、字符串、链表、二叉树、栈、回溯、动态规划、位运算中的经典问题以及问题对应的链接地址和个人提供的题解,方便查阅以及练习。以下是百题的索引,点击即可找到题目的出处并练习,也可直接查阅答案。 建议刚开始刷题的朋友直接按一下的Ta...

2020-02-22 14:57:37 732 4

原创 Spring Framework(8)-两百行代码实现简单IoC容器

文章目录一.前言二.时序图三.代码实现 一.前言 Spring中有两大重要功能,一是AOP(面向切面编程),主要使用的是动态代理技术 Java基础(9)-反射与动态代理 二是IOC(控制反转)技术。控制反转即将对象的创建权交给Spring IOC容器来管理,开发者只需要注重顶层类的创建,不必理会底...

2020-02-13 17:02:32 413 0

原创 Netty(7)-构建pipeline、channelHandler、Decoder和Encoder

文章目录一.pipeline和channelHandler1.channelHandler的分类1.ChannelInboundHandler2.ChannelOutBoundHandler2.channelHandler的事件传播3.pipeline的结构与channelHandler的执行顺序...

2020-02-11 22:06:47 106 0

原创 Netty(6)-客户端登陆并与服务端收发信息

文章目录一.实现流程图二.代码实现 一.实现流程图 二.代码实现 整体结构图 utils/Attributes /** * @Auther: ARong * @Date: 2020/2/7 9:47 下午 * @Description: channel的参数 */ publ...

2020-02-07 23:30:47 82 0

原创 Netty(5)-自定义通信协议包的编码解码

文章目录一.何为通信协议二.代码实现 一.何为通信协议 这里指的通信协议并不是狭义的TCP、UDP这类【标准通信协议】,而是指的Netty用于客户端与服务端之间数据交互的【自定义通信协议】。无论是使用 Netty 还是原始的 Socket 编程,基于 TCP 通信的数据包格式均为二进制,协议指的就...

2020-02-05 18:02:19 257 0

原创 Netty(4)-二进制载体ByteBuf

文章目录一.ByteBuf的介绍二.ByteBuf的结构三.ByteBuf的API 一.ByteBuf的介绍 在 Netty 中,客户端和服务端之间的通信数据载体为 ByteBuf,即字节块对象。 如以下程序所示: /* * @Author ARong * @Descript...

2020-02-04 14:08:47 110 0

原创 Netty(3)-实现客户端与服务端的双向通信

文章目录一.基本思路二.通信流程三.代码实现 一.基本思路 读写逻辑处理均是启动阶段通过给逻辑处理链Pipeline添加逻辑处理器实现连接数据的读写逻辑。 客户端连接成功回调逻辑处理器的channelActive()方法 客户端和服务端接收到对方的数据回调用各自逻辑处理器的channelR...

2020-02-03 18:33:12 93 0

原创 Netty(2)-服务端与客户端的启动流程

文章目录一.服务端启动流程分析1.四大必须属性2.启动引导器:serverBootstrap3.线程模型:bossGroup和workerGroup4.IO模型:NioServerSocketChannel和OioServerSocketChannel5.连接后读写逻辑6.引导器其他方法参数二.客...

2020-02-03 18:00:37 138 0

原创 Netty(1)-BIO、NIO与Netty入门

文章目录一.BIO下的client-server通信模式二.NIO下的通信模式三.Netty入门1. 什么是Netty2.Netty的实际应用3.Netty入门Demo 一.BIO下的client-server通信模式 BIO即Blocking IO,同步阻塞式IO,在BIO的通信模式下, 「一个...

2020-02-02 19:05:00 104 0

原创 设计模式(9)-题外话:UML图介绍

UML图普遍用于编程中的流程表达,方便我们梳理类自身的关系或者类与类,类与接口的依赖关系等,也是学习设计模式、看懂类关系的基础。可以在实际编码前先画UML图用来表达流程,方便自己和他人理解代码。 一、UML图用来表示类与接口 1、Student类 public class St...

2020-01-29 15:20:05 1024 0

原创 JVM学习(8)-Java中的四种引用总结

JDK1.2 之前,Java 中引用的定义很传统:如果 reference 类型的数据存储的数值代表的是另一块内存的起始地址,就称这块内存代表一个引用。 JDK1.2 以后,Java 对引用的概念进行了扩充,将引用分为Strong强引用、Soft软引用、Weak弱引用、Phantom虚引用四种(...

2020-01-27 22:03:11 127 0

原创 SpringBoot-优化项目中的异常处理

关于Java异常的介绍,可以参考我之前写过的一篇博客Java基础(8)-异常体系以及项目中的运用,里面提到了对于异常的一些思考以及如何使用异常。 为什么需要异常呢? 我认为可以从三个不同的角度来思考 1.后端开发者:使得后端开发者通过日志快速定位到程序中出现问题的地方,并对出现的问题进行解决。 2...

2020-01-23 22:51:00 177 0

原创 MySQL基础笔记(17)-悲观锁与乐观锁

文章目录一.什么是乐观锁、悲观锁二.MySQL中的乐观锁与悲观锁1.悲观锁1.互斥锁-for update2.共享锁-lock in share mode3.update、insert、delete自动加行锁2.乐观锁-版本号控制 一.什么是乐观锁、悲观锁 乐观锁指的是在对数据进行读取时,默认认...

2020-01-06 18:47:28 114 0

原创 无法远程连接MySQL

在服务器上新安装的MySQL无法被远程连接,需要以下几步来解决 0.查看端口开放情况 阿里云将3306端口安全组设置为0.0.0.0/0,对所有人开放 通过端口扫描工具确认是否可以连接:端口扫描工具 登陆服务器,使用netstat -an | grep 3306查看MySQL的运行情况以及监听...

2020-01-06 17:59:42 121 0

原创 Redis深度历险(7)-常见操作及基本数据结构

文章目录一.基本命令0.通用命令1.string的基本命令2.list的基本命令3.hash的基本命令4.set的基本命令5.zset基本命令二.数据类型实现概述1.string、list、hash、set、zset的底层数据结构2.string的扩容操作3.hash的拉链法、渐进式rehash、...

2020-01-06 10:18:51 66 0

原创 MacOS配置连接服务器脚本

今天频繁登陆服务器,每次手动输入十分烦躁,这里记录下配置自动登陆服务器脚本的过程,以备下次配置或给他人借鉴 1.自动登录脚本 connect.bash #!/usr/bin/expect spawn ssh 用户名@服务器地址 expect "*password:&...

2020-01-03 18:03:11 79 0

原创 JVM学习(7)-G1垃圾收集器介绍

文章目录一.简单介绍二.垃圾回收区域变化三.如何保证在预测时间内完成垃圾收集四.垃圾收集的过程1.初始标记2.并发标记3.重新标记4.筛选回收Thanks 一.简单介绍 官方文档描述: The Garbage-First (G1) collector is a server-style garb...

2019-12-28 16:58:04 82 0

原创 MySQL基础笔记(16)-事务

文章目录推荐学习MySQL基础笔记(1)-深入理解索引一.事务1.什么是事务2.事务四大特性(ACID)1.Atomic-原子性2.Consistency-一致性3.Isolation-隔离性4.Durability-持久性3.并发事务带来的四大问题1.脏读2.不可重复读3.幻读4.更新丢失Q:不...

2019-12-15 17:08:53 281 0

原创 JVM学习(6)-JVM工具以及GC调优策略

文章目录一.JVM工具一.命令行工具1.jps2.jstat3.jinfo4.jstack5.jmap6.jhat二.图形化工具1.JConsole2.VirtualVM二.GC调优策略1.什么是GC调优2.GC调优原则2.常用的JVM启动参数3.GC调优策略无需GC调优的情况1.将对象尽可能分配...

2019-12-11 17:33:16 186 4

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