- 博客(21)
- 收藏
- 关注
原创 N叉树的遍历
N叉树前DFS遍历class Node { public int val; public List<Node> children; public Node() {} public Node(int _val) { val = _val; } public Node(int _val, List<Node> _children) { v
2021-02-08 18:41:31 510
原创 二叉树典型题目训练(二)
重建二叉树//输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 //// //// 例如,给出 //// 前序遍历 preorder = [3,9,20,15,7]//中序遍历 inorder = [9,3,15,20,7] //// 返回如下的二叉树: //// 3// / \// 9 20// / \// 15 7 //// //// 限制: //// 0 <=
2021-02-05 20:04:16 146
原创 二叉树典型题目训练(一)
二叉树遍历掌握递归遍历方式先序遍历中序遍历后序遍历//给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 //// //// 示例 1: //// //输入:root = [1,null,2,3]//输出:[1,2,3]// //// 示例 2: //// //输入:root = []//输出:[]// //// 示例 3: //// //输入:root = [1]//输出:[1]// //// 示例 4: //// //输入:
2021-02-04 20:22:08 229
原创 双指针经典练习题
针对常见的双指针使用做针对性训练删除排序数组中的重复项//给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 //// 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 //// //// 示例 1: //// 给定数组 nums = [1,1,2], ////函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 ////你不需要考虑数组中超出新长
2021-02-03 16:05:39 407
原创 滑动窗口最值
算法练习滑动窗口最值问题:给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7]解释:滑动窗口的位置 最大值[1 3 -1] -3 5 3 6 7 31 [3 -1 -3] 5 3 6 7 31 3 [-1 -3 5] 3 6 7 51 3 -1
2021-02-02 20:46:09 157
原创 阶段学习总结
对近期的阶段知识梳理总结JVMJava基础(字节码、类加载机制、自定义类加载器、运行时内存模型)JVM进阶 (jdk常用命令、图形化工具使用、常见的GC以及垃圾回收过程分析)通过分析GC日志分析、线程栈的数据分析,jvm问题排查问题常用手段、常用参数调优NIOIO模型 (阻塞IO、非阻塞、多路复用、信号驱动、异步)同步异步、阻塞非阻塞Netty简单使用,基本原理、 与netty的架构模型 主要的类(BECH)Netty的使用场景 (常见的业务网关)Netty对比Java NIO通
2021-02-01 20:41:28 275 3
原创 soul网关学习关联知识学习总结-熔断限流
在体验soul网关的各种限流熔断插件之前先整体梳理下比较主流的技术实现一、熔断限流组件是什么什么是熔断组件?熔断组件是一种应用系统自我保护工具,当应用接口流量陡增超过负载时,该接口的错误率也会递增,此时及时将该接口的流量熔断掉(就像保险丝熔断保护家用电器),以达到保护应用系统的目的。比较有代表性的熔断组件:Hystrix、Resilience4J等。什么是限流组件?限流组件也是一种应用系统自我保护工具,主要是从流量的角度切入,从限流、降级、热点防护、系统负载等维度来保障应用系统的稳定性。比较有
2021-01-31 00:38:54 297
原创 soul网关学习ip端口探活
探活分析soul-admin端 UpstreamCheckService#setup()启动加载后初始时候从db查询出来放入upstreamMap /** * Setup selectors of divide plugin. */ @PostConstruct public void setup() { PluginDO pluginDO = pluginMapper.selectByName(PluginEnum.DIVIDE.getName(
2021-01-29 20:41:42 1212
原创 soul网关学习divide插件负载均衡源码分析
divide 插件负载均衡流程直接启动两个http-example断点加到DividePlugin#doexecute方法 如何定位到这个位置的前面已经介绍过了如上根据规则获取目标机器的信息,如有多个则进行负载策略,放入 upstreamListLoadBalanceUtilspublic class LoadBalanceUtils { /** * Selector divide upstream. * * @param ups
2021-01-28 12:26:19 126
原创 soul网关学习divide插件调用以及响应全流程分析
divide插件执行流程分析经过前面的学习已经对divide插件的大致执行流程有了一个印象,现在我们进行整体流程详细分解下根据规则寻找目标服务器AbstractSoulePlugin#execute()DividePlugin#doexecute() 寻找目标服务器 @Override protected Mono<Void> doExecute(final ServerWebExchange exchange, final SoulPluginChain ch
2021-01-27 12:30:11 203
原创 soul网关学习数据同步方式Nacos
soul-admin 与网关通过Nacos进行数据同步、参考链接官网 : https://dromara.org/zh-cn/docs/soul/dataSync.html目前官网中的介绍并未提供该同步数据方式,最新代码已经支持docker 方式启动一个nacos 服务git clone https://github.com/nacos-group/nacos-docker.git docker-compose -f example/standalone-derby.yaml u
2021-01-25 12:04:00 217
原创 soul网关学习数据同步方式http长轮训
soul网关学习数据同步方式之http长轮训soul-admin 与 网关的数据通过http长轮训方式同步参考官网: https://dromara.org/zh-cn/docs/soul/dataSync.html同步原理zookeeper、websocket 数据同步的机制比较简单,而 http 同步会相对复杂一些。Soul 借鉴了 Apollo、Nacos 的设计思想,取其精华,自己实现了 http 长轮询数据同步功能。注意:这里并非传统的 ajax 长轮询!http 长轮询机制如上所
2021-01-23 22:04:26 297 2
原创 soul网关数据同步方式之zookeeper
soul-admin 与 网关的数据通过zookeeper方式同步参考官网https://dromara.org/zh-cn/docs/soul/user-dataSync.html原理分析基于 zookeeper 的同步原理很简单,主要是依赖 zookeeper 的 watch 机制,soul-web 会监听配置的节点,soul-admin 在启动的时候,会将数据全量写入 zookeeper,后续数据发生变更时,会增量更新 zookeeper 的节点,与此同时,soul-web 会监听配置信息
2021-01-22 20:44:05 237
原创 soul网关学习数据同步方式初窥websocket
soul-admin 与 网关的数据通过websocket方式同步参考官网https://dromara.org/zh-cn/docs/soul/user-dataSync.htmlsoul-admin 侧默认开启配置pom 中添加依赖 <!--soul data sync start use websocket--> <dependency> <groupId>org.dromara</groupId>
2021-01-21 22:32:08 160
原创 soul网关学习springcloud插件使用
SpringCloud插件使用体验参考 https://dromara.org/zh-cn/docs/soul/user-springcloud.html
2021-01-20 22:11:06 499 1
原创 soul网关学习sofa 插件体验(下)
先把sofa的体验过程遇到的问题解决下首先回忆下程序没有进入sofaplugin的可能原因插件状态没有开启直接没有执行直接 首先确认了状态已经开启,debug发现我的插件链里面并没有sofa插件怀疑没有初始化sofaplugin再次看了波官网检查了下网关日志 发先输出日志里面sofa插件没有被加载 找到原因在网关服务的pom文件中加入sofa相关依赖<!-- sofa plugin start--> <dependency>
2021-01-18 20:46:07 192
原创 soul网关学习sofa插件体验sofa代理(上)
sofa只知道概念没使用过先搜索一波sofa对比spring cloudSOFA 包含了比较完整的金融级分布式架构的各种组件,SOFA 开始研发的时候(大约 10 年前),Spring Cloud 还没有出现,并且 SOFA 的所有的组件都是在蚂蚁金服内部经过了大量的考验,蚂蚁金服的内部的有比较完善的金融场景,也有双十一,双十二,新春红包等等大促流量的经验。综合来看,相对于 Spring Cloud 来说,SOFA 中间件更加适合金融的场景,并且在蚂蚁内部被大量使用。sofa插件的体验官网so
2021-01-17 22:04:01 398 2
原创 soul网关学习(三)dubbo插件体验dubbo代理
先继续上文divide插件各种功能体会上一篇文章站重点看了下divide插件的处理大致流程未能体会各种规则设置后的表现形式今天先配置体会一波如下。-各种匹配条件的设置可以自行操作体会,eg:负载权重的设置,head 匹配条件设置,等dubbo插件的功能体会参考官网dubbo用户介绍:https://dromara.org/zh-cn/docs/soul/user-dubbo.html先启动soul-example-alibaba-dubbo 模块 直接启动报错看日志需要zk注册中心
2021-01-16 20:37:32 241
原创 soul学习初识divide插件
先梳理下经过divide插件的大致执行流程直接看bootstrap日志猜测 :AbstractSoulPlugin,WebClientPlugin 是入口,public abstract class AbstractSoulPlugin implements SoulPlugin public class WebClientPlugin implements SoulPlugin他们的顶层接口是 SoulPlugin如日志日志可以看出两个插件的顺序将断点加入到两个plugin的exe
2021-01-16 01:23:41 220
原创 soul网关源码学习路径(一)
第一天: 1.搭建网关环境(github 一键三连 star,watch,fork)2.编译代码,运行soul-admin soul-bootstrap3.记录心得,写博客分享,发朋友圈啥的组长同学整理的前期准备工作准备:https://github.com/50133142/javanotes/blob/main/notes/%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/%E7%9C%8B%E6%BA%90%E7%A0%81%E5%BF%83%E5%BE%9
2021-01-14 17:05:42 171
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人