自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

坚持、死磕、重复

The best time to plant a tree was 10 years ago.The second best time is now.

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

原创 soul网关系列(十三):插件的初始化和请求处理流程

之前对这块只知道个大概,今天把这里串一下,为后续分析插件做一些准备

2021-01-29 01:45:20 1185 1

原创 soul网关系列(十一):探寻soul网关项目的缓存流程(上)

探寻soul网关项目的缓存流程

2021-01-27 01:41:03 982

原创 JVM系列(二)JAVA内存模型

Java与C++之间有一堵由内存动态分配和垃圾回收技术所围成的高墙,墙外面的人想进来,墙里面的人却想出来。

2021-01-14 14:07:09 118

原创 PostgreSql系列(一)分表实践,大数据量下分类型分月存储

数据库的表继承,面向对象的思想也可以应用在数据库中

2020-11-10 12:40:00 852

原创 JDK源码学习系列(二):HashMap原理、使用和关键源码解读

HashMap的原理、使用和关键方法解读,总结一下,顺便学学英语

2021-02-21 22:30:55 207

原创 soul网关系列(十七):其它插件简述

简单的说明下其它几个插件的作用和关键点,部分内容来源于其它文章

2021-02-05 00:50:59 1690 1

原创 soul网关系列(十六):sign、waf插件源码解读

sign和waf插件的配置验证和源码解读

2021-02-04 01:08:00 1336

原创 soul网关系列(十五):协议类插件(springcloud、dubbo、sofa)源码解读

协议类插件(springcloud、dubbo、sofa)源码解读

2021-02-02 01:54:47 1779

原创 soul网关系列(十四):divide插件源码解读

目录一、divide插件概述二、整体的处理流程三、负载均衡流程四、ip端口探活一、divide插件概述divide插件定位是一个http代理插件,当请求头的rpcType为http的时候,并且插件开启的时候,它根据请求参数匹配到规则,然后进行响应式的代理调用。二、整体的处理流程 public Mono<Void> execute(final ServerWebExchange exchange, final SoulPluginChain chain) { Stri

2021-01-30 00:39:06 852

原创 soul网关系列(十二):探寻soul网关项目的缓存流程(下)

探寻app_auth,meta_data的缓存流程

2021-01-28 00:38:48 974 1

原创 soul网关系列(十):soul-admin与网关数据同步之http长轮询-bootstrap端

soul-admin与网关数据同步之http长轮询-bootstrap端

2021-01-26 02:02:36 520 1

原创 soul网关系列(九):soul-admin与网关数据同步之http长轮询-admin端

soul-admin与网关数据同步之http长轮询-admin端

2021-01-24 01:40:28 242

原创 soul网关系列(八):soul-admin与网关数据同步之zookeeper

本篇文章主要介绍soul网关admin与bootstrap数据同步的另外三种方式(zookeeper/http长连接/nacos)

2021-01-23 02:10:50 373

原创 soul网关系列(七):soul-admin与网关数据同步之websocket方式

这一篇主要介绍soul-admin的配置/注册数据如何通过websocket同步到soul-bootstrap一、概述websocket和zookeeper同步方式,提供增量更新的方式,生产实践中也基本是这两种方式http长连接和nacos的同步方式,都是提供全量更新的方式,效率上存在一定的影响。按上一篇的数据流分析,soul-admin会将配置信息同步至soul getway,如图所示,这一篇主要是讲解websocket同步方式。二、相关配置说明websocket的数据同步方式也是s.

2021-01-22 00:50:22 218

原创 JVM系列(五)JVM启动参数

目录一、JVM参数使用示例二、 系统属性参数三、 运行模式参数四、堆内存设置参数五、GC 设置参数六、分析诊断参数七、JavaAgent 参数一、JVM参数使用示例二、 系统属性参数三、 运行模式参数四、堆内存设置参数五、GC 设置参数六、分析诊断参数七、JavaAgent 参数...

2021-01-21 15:05:56 1117

原创 soul网关系列(六):客户端注册soul流程分析

探寻spring mvc客户端初始化接入soul至入库的流程

2021-01-20 23:42:26 4367

原创 soul网关系列(五):SpringCloud服务运行实例和SpringCloud概述

SpringCloud服务运行实例和SpringCloud概述

2021-01-20 00:23:16 433

原创 soul网关系列(四):Sofa-RPC服务运行实例和深入分析

Sofa-RPC 是蚂蚁金服开源的一款基于 Java 实现的 RPC 服务框架,为应用之间提供远程服务调用能力。

2021-01-19 00:59:37 2206 4

原创 JVM系列(四)类加载器

介绍了类加载过程的“加载”“验证”“准备”“解析”和“初始化”这5个阶段中虚拟机进行了哪些动作,几个加载实例和加载常见问题一、类加载器上篇文章Java 字节码(class文件),写好的代码经过编译变成了字节码,也可以打包成 Jar 文件。Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称作虚拟机的类加载机制。二、类的生命周期和加载过程一个类型从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生.

2021-01-18 22:33:15 167

原创 soul网关系列(三):Dubbo服务运行soul实例和Dubbo概述

soul中的dubbo插件是将http协议 转换成dubbo协议 的插件,也是网关实现dubbo泛化调用的关键

2021-01-16 21:32:44 1878

原创 soul网关系列(二):HTTP服务负载均衡运行实例和初步分析

divide插件是一个http代理插件,当请求头的rpcType为http的时候, soul根据请求参数匹配到规则,进行响应式的代理调用。

2021-01-16 00:00:19 353

原创 JVM系列(三)JAVA字节码知识汇总及示例

Java 字节码是 Java 虚拟机所使用的指令集,可以理解为java自己的只有一个字节长度的汇编语言。

2021-01-15 15:25:07 255

原创 soul网关系列(一):学习计划、配置安装和soul简介

一个异步的,高性能的,跨语言的,响应式的API优秀网关,参考了Kong,Spring-Cloud-Gateway等优秀的网关。

2021-01-14 21:21:52 2852

原创 JVM系列(一)JAVA概念和历史

回顾一下历史,看看历史时间线上技术的发展,你才能明白明天会是什么样的。

2020-11-27 00:36:35 194

原创 23种设计模式总结篇【理解及应用】

23种设计模式的概念及应用总结

2020-11-24 23:43:42 651

原创 行为型设计模式(十一)访问者模式【运行时 or 编译时】

目录一、概念及原理二、实例说明2.1 需求说明2.2 step1 最简单的实现方式2.2 step2 改进--拆分解耦2.3 step3 解决第二步的问题(核心)2.4 step4 继续添加新功能2.5 step5 再次抽象Visitor 接口2.6 访问者模式小结三、双分派机制3.1 单分派机制和双分派机制3.2 java中的单分派机制四、小结五、参考链接一、概念及原理访问者者模式的英文翻译是 Visitor Design Pattern。在 GoF 的《设计模式》一书中,它是这么定义的:Allo

2020-11-14 15:35:07 147

原创 行为型设计模式(十)中介模式【地方分权到中央集权】

目录一、概念及原理二、实例说明2.1 航空管制2.2 复杂对话框三、中介模式 VS 观察者模式四、小结五、参考链接一、概念及原理中介模式的英文翻译是 Mediator Design Pattern。在 GoF 中的《设计模式》一书中,它是这样定义的:Mediator pattern defines a separate (mediator) object that encapsulates the interaction between a set of objects and the object

2020-11-14 00:13:58 233

原创 行为型设计模式(九)解释器模式【将语法规则拆分成一些小的独立的单元】

目录一、原理和实现二、实例说明三、参考链接一、原理和实现解释器模式的英文翻译是 Interpreter Design Pattern。在 GoF 的《设计模式》一书中,它是这样定义的:Interpreter pattern is used to defines a grammatical representation for a language and provides an interpreter to deal with this grammar.翻译成中文就是:解释器模式为某个语言定

2020-11-13 23:57:15 141

原创 行为型设计模式(八)命令模式【王者荣耀的服务端实现】

目录一、概念及原理二、具体实例2.1 游戏开发背景知识2.2 线程内轮询接收请求和处理请求实现三、命令模式 VS 策略模式四、小结五、参考链接一、概念及原理命令模式的英文翻译是 Command Design Pattern。在 GoF 的《设计模式》一书中,定义如下:The command pattern encapsulates a request as an object, thereby letting us parameterize other objects with different

2020-11-13 23:31:27 342

原创 行为型设计模式(七)备忘录模式【快照和恢复】

备忘录模式,主要是用来防丢失、撤销、恢复等。目录一、原理和实现二、举例说明2.1 实例需求2.2 通用的实现2.3 内存和时间优化三、小结四、参考链接一、原理和实现GoF 的《设计模式》定义如下:Captures and externalizes an object’s internal state so that it can be restored later, all without violating encapsulation.翻译如下:在不违背封装原则的前提下,捕获一个对象.

2020-11-13 13:41:25 134

原创 行为型设计模式(六)迭代器模式【实现一个Java中的迭代器】

编程语言一般都会将迭代器作为基础类库,用来遍历集合,那它是怎么实现的呢?目录一、原理及实现二、具体实现实例2.1 实例需求2.2 Iterator接口定义2.3 具体实现三、迭代器的模式的优势四、遍历集合的时候为什么不能删除集合元素?4.1 未决行为4.2 为什么会出错4.3 如何解决4.4 为什么java里还有remove()五、小结六、参考链接一、原理及实现迭代器模式用来遍历集合对象,集合对象”也可以叫“容器”“聚合对象”,实际上就是包含一组对象的对象,比如数组、链表、树、图、跳表。迭代器模式.

2020-11-11 15:33:43 186

原创 行为型设计模式(五)状态模式【超级玛丽要变身】

状态模式一般用来实现状态机,而状态机常用在游戏、工作流引擎等系统开发中。不过,状态机的实现方式有多种,除了状态模式,比较常用的还有分支逻辑法和查表法。今天,详细讲讲这几种实现方式,并且对比一下它们的优劣和应用场景。目录一、状态机二、解决状态机的几种思路2.1 分支逻辑法2.2 查表法2.3 状态模式法三、状态模式总结三、状态模式总结一、状态机有限状态机,英文翻译是 Finite State Machine,缩写为 FSM,简称为状态机。状态机有 3 个组成部分:状态(State)、事件(Event.

2020-11-02 13:42:35 408 1

原创 行为型设计模式(四)职责链模式【一环接一环】

一、概念及原理GoF 的《设计模式》中,它是这么定义的Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request. Chain the receiving objects and pass the request along the chain until an object handles it.翻译成中文就是:将请求的

2020-11-02 11:40:52 210

原创 行为型设计模式(三)策略模式【冗长的 if-else?】

策略的定义、创建和使用一、原理及实现GoF 的《设计模式》中的定义:Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it.翻译成中文定义一族算法类,将每个算法分别封装起来,让它们可以互相替换。策略模式可以使算法的变化独立于使用它们的客.

2020-10-24 16:19:35 149

原创 行为型设计模式(二)模板模式【给你打个样儿】

两大作用:复用和扩展一、原理及实现GoF 的《设计模式》的定义:Define the skeleton of an algorithm in an operation, deferring some steps to subclasses. Template Method lets subclasses redefine certain steps of an algorithm without changing the algorithm’s structure.翻译成中文模板方法模式.

2020-10-24 14:52:43 134

原创 行为型设计模式(一)观察者模式【将观察者和被观察者代码解耦】

进程内、进程间、同步的、异步的几种方式一、原理及通用实现GoF 的《设计模式》的定义:Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.翻译成中文在对象之间定义一个一对多的依赖,当一个对象状态改变的时候,所有依赖的对象都会自动收到通知。一般情况下,.

2020-10-24 10:32:45 303

原创 结构性设计模式(七)组合模式【树形结构专用】

Compose objects into tree structure to represent part-whole hierarchies.Composite lets client treat individual objects and compositions of objects uniformly.将一组对象组织(Compose)成树形结构,以表示一种“部分 - 整体”的层次结构。组合让客户端(在很多设计模式书籍中,“客户端”代指代码的使用者。)可以统一单个对象和组合对象的处理逻辑。.

2020-10-12 00:13:47 581 2

原创 结构性设计模式(六)享元模式【Java Integer、String 中的应用】

减少运行时对象实例的个数,节省内存目录一、享元模式的原理与实现1.1 原理1.2 实现二、享元模式的应用举例2.1 QQ象棋2.2 文本编辑器三、享元模式 vs 单例、缓存、对象池三、Java Integer、String 中的应用一、享元模式的原理与实现1.1 原理享元”,顾名思义就是被共享的单元。享元模式的意图是复用对象,节省内存,前提是享元对象是不可变对象。具体来讲,当一个系统中存在大量重复对象的时候,我们就可以利用享元模式,将对象设计成享元,在内存中只保留一份实例,供多处代码引用,这样.

2020-10-11 23:52:40 255

原创 结构性设计模式(五)门面模式【挑挑拣拣,重新组装】

集中化、简化目录一、概念和实现1.1 都会遇到的痛点1.2 概念二、门面模式有什么用2.1 解决易用性问题2.2 解决性能问题2.3 解决分布式事务问题三、关于接口粒度的小结四、主要参考内容一、概念和实现1.1 都会遇到的痛点如果你平时的工作涉及接口开发,不知道你有没有遇到关于接口粒度的问题呢?为了保证接口的可复用性(或者叫通用性),我们需要将接口尽量设计得细粒度一点,职责单一一点。但是,如果接口的粒度过小,在接口的使用者开发一个业务功能时,就会导致需要调用 n 多细粒度的接口才能完成。调用.

2020-09-26 11:54:16 112

原创 结构性设计模式(四)适配器模式【如何把方的变成圆的】

如何把一个方块放到圆洞里

2020-09-26 11:28:28 833

空空如也

空空如也

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

TA关注的人

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