子木龙
码龄15年
求更新 关注
提问 私信
  • 博客:16,314
    16,314
    总访问量
  • 23
    原创
  • 2
    粉丝
  • 26
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:河南省
加入CSDN时间: 2010-07-24
博客简介:

yilongzhetian的博客

查看详细资料
个人成就
  • 获得1次点赞
  • 内容获得1次评论
  • 获得9次收藏
  • 博客总排名1,363,589名
创作历程
  • 19篇
    2021年
  • 9篇
    2016年
  • 2篇
    2015年
成就勋章
TA的专栏
  • soul源码分析
    19篇
  • Activiti工作流
    2篇
  • 算法
    1篇
  • 缓存
  • oracle
    4篇
  • maven
    1篇
  • linux
    1篇
  • webservice
    1篇
  • xml
    1篇

TA关注的专栏 1

TA关注的收藏夹 0

TA关注的社区 0

TA参与的活动 0

创作活动更多

新星杯·14天创作挑战营·第13期

这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!我们一起发掘写作的魅力,书写出属于我们的故事。我们诚挚邀请你们参加为期14天的创作挑战赛!注: 1、参赛者可以进入活动群进行交流、互相鼓励与支持(开卷),虚竹哥会分享创作心得和涨粉心得,答疑及活动群请见:https://bbs.csdn.net/topics/619781944 【进活动群,得奖概率会更大,因为有辅导】 2、文章质量分查询:https://www.csdn.net/qc

88人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

soul源码学习(十七)-限流插件之Sentinel(上)

文章目录sentinel简介sentinel对主流框架的适配与其他框架异同sentinel的配置参数soul中开启sentinel插件总结sentinel简介Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性,sentinel在2018年的时候由alibaba开源。sentinel的主要特性如下:sentinel 的优势有以下方面:多样化的流量控制熔断降级系统负载保护实时监控和控制台sentinel对主流框架的适配Sentinel 分为两
原创
博文更新于 2021.02.06 ·
443 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

soul源码学习(十六)-限流插件之rate_limiter(下)

文章目录常用限流算法梳理令牌桶算法原理令牌桶算法优势令牌桶算法实现常用限流算法梳理计数器(固定窗口)算法计数器算法是使用计数器在周期内累加访问次数,当达到设定的限流值时,触发限流策略。下一个周期开始时,进行清零,重新计数。计数器算法方式限流对于周期比较长的限流,存在很大的弊端,会出现临界问题(前一个周期最后的小时间段内和下一个周期的最开始时间段内相加的并发量远远大于服务器可承载并发数)。滑动窗口算法滑动窗口算法是将时间周期分为N个小周期,分别记录每个小周期内访问次数,并且根据时间滑动删除
原创
博文更新于 2021.02.05 ·
433 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

soul源码学习(十六)-限流插件之rate_limiter(上)

文章目录开启配置测试总结开启配置打开rate_limter开关,并配置redis地址这里使用单机redis模式即可配置rate_limiter插件的选择器和路由这里我们只针对一个具体的url进行限流,其中令牌桶的容量设置成100,速率设置成1测试测试前,启动soul-examples-http,我们针对该客户端进行测试,使用工具为jmeter先进行单个请求的发送,观察redis的变化可以看到rate_limiter插件会往redis中存入两个key,一个是时间戳,一个是
原创
博文更新于 2021.02.04 ·
290 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

soul源码学习(十五)-熔断插件之hystrix(下)

文章目录hystrix在soul中的集成总结hystrix在soul中的集成hystri在soul中的插件类为HystrixPlugin,继承了AbstractSoulPlugin,与其他插件一样,我们来看看最终的执行方法,doExecute,如下:代码比较简短,主要做的事情如下:将配置的熔断规则转换为HystrixHandle类,该类的主要属性就是我们在soul-admin中配置的熔断规则属性构造命令模板,具体的构造过程如下:这里边根据配置的不同(信号量和线程),来构造不同的命令模板(H
原创
博文更新于 2021.02.02 ·
244 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

soul源码学习(十二)-SPI机制在soul中的应用

文章目录SPI介绍SPI定义SPI使用SPI实现SPI在soul网关中的应用与JDK版本的SPI比较SPI介绍SPI定义SPI ,全称为 Service Provider Interface,是一种服务发现机制,是Java提供的一套用来被第三方实现或者扩展的接口,它可以用来启用框架扩展和替换组件。 SPI的作用就是为这些被扩展的API寻找服务实现。SPI使用SPI 是调用方来制定接口规范,提供给外部来实现,调用方在调用时则选择自己需要的外部实现。 从使用人员上来说,SPI 被框架扩展人员使用。
原创
博文更新于 2021.01.31 ·
313 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

soul源码学习(十五)-熔断插件之hystrix(上)

文章目录基本概念Hystrix原理hystrix插件配置基本概念服务熔断:一般是指软件系统中,由于某些原因使得服务出现了过载现象,为防止造成整个系统故障,从而采用的一种保护措施,所以很多地方把熔断亦称为过载保护。很多时候刚开始可能只是系统出现了局部的、小规模的故障,然而由于种种原因,故障影响的范围越来越大,最终导致了全局性的后果。适用场景:防止应用程序直接调用那些很可能会调用失败的远程服务或共享资源服务降级:当服务器压力剧增的情况下,根据当前业务情况及流量对一些服务和页面有策略的降级,以此释放
原创
博文更新于 2021.01.31 ·
262 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

soul源码学习(十四)-dubbo以及sofa插件分析

文章目录概述dubbo调用过程sofa调用过程总结概述由于dubbo及sofa都属于rpc框架,都有自己的注册服务中心以及自己进行远程调用时的相关协议规定,因此放到一块进行对比分析dubbo调用过程本调用过程主要以apache-dubbo进行讲解。请求过来之后,首先会调用dubbo独有的BodyParamPlugin该插件,主要作用为组装dubbo调用时所需要的参数(普通url参数或者json或者表单格式),将该数据存储到ServerWebExchange中,并进行下一调用链调用紧接着会进入A
原创
博文更新于 2021.01.31 ·
1355 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

soul源码学习(十三)-divide插件之均衡负载算法分析

文章目录随机算法轮询算法hash算法总结随机算法所在类:RandomLoadBalance原理:核心是根据设置的权重来计算分配频次,权重一样,分配概率一样,权重大,分配的比例就会大一些,默认权重为50@Overridepublic DivideUpstream doSelect(final List<DivideUpstream> upstreamList, final String ip) { int totalWeight = calculateTotalWeight(up
原创
博文更新于 2021.01.29 ·
156 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

soul源码学习(十一)-divide插件分析

文章目录探活机制分析调用链分析负载均衡算法与springcloud调用对比探活机制分析探活即用来和后端代理的相关服务进行心跳检测,以确定其是否能够进行正常服务,由于该部分功能不在整个调用链上,因此首先进行分析探活服务默认在soul-admin开启,相关类为UpstreamCheckService,在该类被spring自动装配后,会进行启动线程对后端服务进行检查,默认每隔10s检查一次检查时,如果发现服务不可用时,则会从数据库将该服务剔除,并且发布相关事件,通过数据同步至网关,网关收到后,会同步缓
原创
博文更新于 2021.01.27 ·
307 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

soul源码学习(十)-集群搭建

文章目录环境准备测试访问源码简要分析结论环境准备搭建三个soul-admin实例(本机端口分别为9095/9096/9097), 启动命令如下:java -jar soul-admin.jar --server.port=9095java -jar soul-admin.jar --server.port=9096java -jar soul-admin.jar --server.port=9097搭建三个soul-bootstrap实例(本机端口分别为9195/9196/9197)同
原创
博文更新于 2021.01.26 ·
265 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

soul源码学习(九)-nacos数据同步

文章目录分析前准备环境配置nacos启动单实例数据同步过程源码分析分析前准备环境配置soul-admin配置soul: database: dialect: mysql init_script: "META-INF/schema.sql" init_enable: true sync: nacos: url: localhost:8848 namespace: 1c10d748-af86-43b9-8265-75f487d20c6c
原创
博文更新于 2021.01.24 ·
477 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

soul源码学习(八)-http长连接数据同步

文章目录分析前准备环境准备数据同步过程源码分析分析前准备环境准备soul-admin开启http同步配置soul: database: dialect: mysql init_script: "META-INF/schema.sql" init_enable: true sync:# websocket:# enabled: true# zookeeper:# url: localhost:2181#
原创
博文更新于 2021.01.23 ·
135 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

soul源码学习(七)-zookeeper数据同步

文章目录分析前准备环境配置数据同步过程源码分析分析前准备环境配置soul-admin中配置文件将默认websocket同步配置切换成zookeeper,soul-bootstrap中配置文件也要将默认的同步配置切换成zookeeper依次启动soul-admin,soul-bootstrap,soul-examples-http即可访问数据同步过程数据通同步过程与上一篇websocket大致类似,不同的是客户端将路由等信息发送给soul-admin时,soul-admin将
原创
博文更新于 2021.01.22 ·
173 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

soul源码学习(六)-websocket数据同步

文章目录分析前准备spring事件机制websocket原理数据同步过程源码分析首次启动全量同步运行中变更同步分析前准备spring事件机制spring框架提供了事件发布订阅机制,由发布者、订阅者、事件三个关键要素组成,发布者发布事件后,由该事件的订阅者进行事件处理。事件(所有事件均继承该类)public abstract class ApplicationEvent extends EventObject { private static final long serialVersi
原创
博文更新于 2021.01.21 ·
306 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

soul源码学习(五)-springcloud示例

文章目录配置启动访问注意事项springcloud客户端注册源码分析配置soul-admin需要开启springcloud插件soul-bootstrap引入springcloud相关依赖 <dependency> <groupId>org.dromara</groupId> <artifactId>soul-spring-boot-starter-plugin-springcloud</arti
原创
博文更新于 2021.01.20 ·
178 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

soul源码学习(四)-sofa示例

文章目录配置启动访问注册访问过程sofa客户端注册源码分析博客地址配置soul集成sofa时,需要进行以下步骤配置soul-admin开启sofa插件由于sofa与dubbo类似,都需要注册中心,因此也需要在soul-admin配置sofa的注册中心地址,使用默认的zookepper地址即可:配置soul-bootstrap网关引入sofa插件依赖<dependency> <groupId>org.dromara</groupId&g
原创
博文更新于 2021.01.19 ·
327 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

soul源码学习(三)-dubbo示例

文章目录目标环境准备访问测试soul-admin手动同步异常总结目标通过官方示例了解dubbo集成方式环境准备启动soul-admin和soul-bootstrap下载zookeeper,并以默认端口启动启动官方示例soul-examples-dubbo(TestApacheDubboApplication),控制栏输出如下2021-01-17 01:27:52.211 INFO 75035 --- [pool-2-thread-1] o.d.s.client.common.utils.
原创
博文更新于 2021.01.17 ·
218 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

soul源码学习(二)-http示例

文章目录目标运行soul-examples-http示例配置运行访问测试总结目标运行官方示例soul-examples-http了解http方式访问网关大致流程运行soul-examples-http示例配置该示例工程是以常见的springmvc方式访问,其中要想被soul网关代理访问,只需要在普通的controller上加入soul相关注解,如图所示:类方式方法上加soul注解pom文件引入soul客户端的依赖包运行首先启动soul-admin和soul-bootst
原创
博文更新于 2021.01.16 ·
252 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

soul源码学习(一)-项目搭建

文章目录简介soul设计目标soul特性安装前准备项目启动启动soul-admin启动网关soul-bootstrap小结参考简介soul设计目标异步的,高性能的,跨语言的,响应式的API网关。soul特性支持各种语言(http协议),支持 dubbo,springcloud协议。插件化设计思想,插件热插拔,易扩展。灵活的流量筛选,能满足各种流量控制。内置丰富的插件支持,鉴权,限流,熔断,防火墙等等。流量配置动态化,性能极高,网关消耗在 1~2ms。支持集群部署,支持 A/B Test
原创
博文更新于 2021.01.15 ·
560 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

组合算法

算法1: 高效算法:对n个数进行全组合,共有2^n-1种算法,即求每个数的二进制表示方式。//此方法判断1所在二进制位置采用与判断 public static void main(String args[]){ String[] str={"A","B","C","D","E"};//共有31种全组合方式 int ncount=str.length; int nBit
转载
博文更新于 2016.12.02 ·
367 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多