- 博客(64)
- 收藏
- 关注
原创 soul网关系列(十五):协议类插件(springcloud、dubbo、sofa)源码解读
协议类插件(springcloud、dubbo、sofa)源码解读
2021-02-02 01:54:47
2059
原创 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
914
原创 soul网关系列(十):soul-admin与网关数据同步之http长轮询-bootstrap端
soul-admin与网关数据同步之http长轮询-bootstrap端
2021-01-26 02:02:36
596
1
原创 soul网关系列(九):soul-admin与网关数据同步之http长轮询-admin端
soul-admin与网关数据同步之http长轮询-admin端
2021-01-24 01:40:28
346
原创 soul网关系列(八):soul-admin与网关数据同步之zookeeper
本篇文章主要介绍soul网关admin与bootstrap数据同步的另外三种方式(zookeeper/http长连接/nacos)
2021-01-23 02:10:50
538
原创 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
371
原创 JVM系列(五)JVM启动参数
目录一、JVM参数使用示例二、 系统属性参数三、 运行模式参数四、堆内存设置参数五、GC 设置参数六、分析诊断参数七、JavaAgent 参数一、JVM参数使用示例二、 系统属性参数三、 运行模式参数四、堆内存设置参数五、GC 设置参数六、分析诊断参数七、JavaAgent 参数...
2021-01-21 15:05:56
1401
原创 soul网关系列(五):SpringCloud服务运行实例和SpringCloud概述
SpringCloud服务运行实例和SpringCloud概述
2021-01-20 00:23:16
484
原创 soul网关系列(四):Sofa-RPC服务运行实例和深入分析
Sofa-RPC 是蚂蚁金服开源的一款基于 Java 实现的 RPC 服务框架,为应用之间提供远程服务调用能力。
2021-01-19 00:59:37
2764
4
原创 JVM系列(四)类加载器
介绍了类加载过程的“加载”“验证”“准备”“解析”和“初始化”这5个阶段中虚拟机进行了哪些动作,几个加载实例和加载常见问题一、类加载器上篇文章Java 字节码(class文件),写好的代码经过编译变成了字节码,也可以打包成 Jar 文件。Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称作虚拟机的类加载机制。二、类的生命周期和加载过程一个类型从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生.
2021-01-18 22:33:15
202
原创 soul网关系列(三):Dubbo服务运行soul实例和Dubbo概述
soul中的dubbo插件是将http协议 转换成dubbo协议 的插件,也是网关实现dubbo泛化调用的关键
2021-01-16 21:32:44
2184
原创 soul网关系列(二):HTTP服务负载均衡运行实例和初步分析
divide插件是一个http代理插件,当请求头的rpcType为http的时候, soul根据请求参数匹配到规则,进行响应式的代理调用。
2021-01-16 00:00:19
624
原创 JVM系列(三)JAVA字节码知识汇总及示例
Java 字节码是 Java 虚拟机所使用的指令集,可以理解为java自己的只有一个字节长度的汇编语言。
2021-01-15 15:25:07
327
原创 soul网关系列(一):学习计划、配置安装和soul简介
一个异步的,高性能的,跨语言的,响应式的API优秀网关,参考了Kong,Spring-Cloud-Gateway等优秀的网关。
2021-01-14 21:21:52
3388
原创 行为型设计模式(十一)访问者模式【运行时 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
461
原创 行为型设计模式(十)中介模式【地方分权到中央集权】
目录一、概念及原理二、实例说明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
298
原创 行为型设计模式(九)解释器模式【将语法规则拆分成一些小的独立的单元】
目录一、原理和实现二、实例说明三、参考链接一、原理和实现解释器模式的英文翻译是 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
182
原创 行为型设计模式(八)命令模式【王者荣耀的服务端实现】
目录一、概念及原理二、具体实例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
425
原创 行为型设计模式(七)备忘录模式【快照和恢复】
备忘录模式,主要是用来防丢失、撤销、恢复等。目录一、原理和实现二、举例说明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
163
原创 行为型设计模式(六)迭代器模式【实现一个Java中的迭代器】
编程语言一般都会将迭代器作为基础类库,用来遍历集合,那它是怎么实现的呢?目录一、原理及实现二、具体实现实例2.1 实例需求2.2 Iterator接口定义2.3 具体实现三、迭代器的模式的优势四、遍历集合的时候为什么不能删除集合元素?4.1 未决行为4.2 为什么会出错4.3 如何解决4.4 为什么java里还有remove()五、小结六、参考链接一、原理及实现迭代器模式用来遍历集合对象,集合对象”也可以叫“容器”“聚合对象”,实际上就是包含一组对象的对象,比如数组、链表、树、图、跳表。迭代器模式.
2020-11-11 15:33:43
377
原创 行为型设计模式(五)状态模式【超级玛丽要变身】
状态模式一般用来实现状态机,而状态机常用在游戏、工作流引擎等系统开发中。不过,状态机的实现方式有多种,除了状态模式,比较常用的还有分支逻辑法和查表法。今天,详细讲讲这几种实现方式,并且对比一下它们的优劣和应用场景。目录一、状态机二、解决状态机的几种思路2.1 分支逻辑法2.2 查表法2.3 状态模式法三、状态模式总结三、状态模式总结一、状态机有限状态机,英文翻译是 Finite State Machine,缩写为 FSM,简称为状态机。状态机有 3 个组成部分:状态(State)、事件(Event.
2020-11-02 13:42:35
654
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
372
原创 行为型设计模式(三)策略模式【冗长的 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
186
原创 行为型设计模式(二)模板模式【给你打个样儿】
两大作用:复用和扩展一、原理及实现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
175
原创 行为型设计模式(一)观察者模式【将观察者和被观察者代码解耦】
进程内、进程间、同步的、异步的几种方式一、原理及通用实现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
364
原创 结构性设计模式(七)组合模式【树形结构专用】
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
645
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
573
原创 结构性设计模式(五)门面模式【挑挑拣拣,重新组装】
集中化、简化目录一、概念和实现1.1 都会遇到的痛点1.2 概念二、门面模式有什么用2.1 解决易用性问题2.2 解决性能问题2.3 解决分布式事务问题三、关于接口粒度的小结四、主要参考内容一、概念和实现1.1 都会遇到的痛点如果你平时的工作涉及接口开发,不知道你有没有遇到关于接口粒度的问题呢?为了保证接口的可复用性(或者叫通用性),我们需要将接口尽量设计得细粒度一点,职责单一一点。但是,如果接口的粒度过小,在接口的使用者开发一个业务功能时,就会导致需要调用 n 多细粒度的接口才能完成。调用.
2020-09-26 11:54:16
144
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人