自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (11)
  • 收藏
  • 关注

原创 AbstractQueuedSynchronizer原理及应用

AQS是抽象队列同步器;是一个抽象类,通过继承的方式使用;内部实现CLH队列,是一个FIFO的双向链表;基于自旋策略获取锁/释放锁资源

2023-02-13 20:18:52 247

原创 Spring-cloud-alibaba 系统搭建

Spring-cloud-alibaba 微服务系统架构搭建,设计模块nacos,feign,gateway,sentinel,sleuth,zipkin

2022-10-26 09:54:13 2747

原创 缓存3种方式及原理

Cache aside ;Read /Write through; Write behind 三种缓存实现及原理

2022-06-16 20:08:02 831

原创 线程池工作原理及创建

线程池工作原理及4中创建方式

2022-05-09 21:39:37 210

原创 Arthas在线诊断工具使用

Arthas 命令下载地址下载地址:Releases · alibaba/arthas · GitHub参考官方文档:https://arthas.aliyun.com/doc/quick-start.html使用版本arthas-all-3.6.0版本,windows环境下使用解压到指定目录 /xx/xx/arthas/详情如下图启动ArthasWindows 控制台 cmdcd /xx/xx/arthas/启动命令 java -jar arth..

2022-05-09 19:38:58 942

原创 Maven Jar 加载原则及Jar冲突加载优先级梳理

Maven Jar 加载原则依赖最短路径优先原则如:a.jar 依赖 b.jar,b.jar 依赖 c.jar, c.jar依赖 d.0.jar;a.jar 依赖 e.jar,e.jar 依赖 d.1.jar则:最终依赖d.1.jar 2.pom文件中申明顺序优先如:a.jar 依赖 d.0.jar ; b.jar 依赖 d.1.jar且 a.jar 依赖在 b.jar 前面则:最终依赖 d.0.jarJar冲突场景遵循Maven jar加载原则注:针对同一个j...

2021-12-17 19:23:08 2352

原创 BitMap数据结构梳理总结及代码实现

BitMap(位图)BitMap定义位图(BitMap),即位(Bit)的集合,是一个离散的数组结构,用一个bit位来标记某个元素对应的Value,而Key即是该元素;最基本的情况,使用一个bit表示一个关键字的状态(可标示两种状态0-不存在,1-存在),也可以使用2bit(表示4种状态),3bit(表示8种状态)需要根据业务场景实现。BitMap 数据结构数据结构:byte[],一个byte 8 bit,使用bit为单位来存储数据,可以在空间和时间双重维度提高效率。注:也可以是 int

2021-12-11 16:54:48 1994

原创 Drools规则引擎介绍及实践

1.规则引擎规则引擎是由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。开源的代表是Drools,商业的代表是Visual Rules ,I Log复杂企业级项目运营及维护过程中随外部条件不断变化的业务规则(business logic),迫切需要分离商业决策者的商业决策逻辑和应用开发者的技术决策,并把这些商业决策放在中心数据库或其他统一的地方,让它们能独立运行;

2021-10-30 16:32:17 11139 1

原创 Aspect生成服务端API接口

背景随着分布式系统逐渐成熟及普遍应用,应用与应用直接通过微服务调用,需要对外部提供相应API接口,为次提供一套切面生成API接口的工具技术实现aspectj 切面获取注解信息 Java 反射获取属性信息 SpringContext 获取spring 容器beans poi工具生成docx文档核心代码切面基础信息GenerateApi 定义接口切面信息 package fills.tools.generate.aspectj; import java

2021-08-29 17:35:13 339

原创 Dubbo服务接口测试工具

背景 随着业务的发展,业务越来越复杂,为了提高系统性能,对业务解耦,对系统按业务模块拆分;服务之间的治理(SOA)、远程服务调用(RPC),组成复杂的网状的分布式系统。用户的访问的(pc,h5,android,ios等前端)页面并没有对业务系统暴露的接口服务全面的测试,存在潜在风险,为此写了一个远程服务接口测试的DEMO (DUBBO服务为例)应用场景大型的分布式系统 前端和后台服务端分离 业务系统内部通过订阅服务,互相调用接口进行访问,非传统http/https技术实现1...

2021-06-29 18:40:27 2350

原创 Sonar-代码质量检测搭建

下载安装SonarQube下载官网路径:https://www.sonarqube.org/downloads/研究搭建使用版本:SonarQube7.8 (7.8以上不支持mysql数据库)mysql版本(5.6-5.8)软件环境JDK1.8下载链接:https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.8.zipwindows安装解压目录:D:\xxx\sonarqube-7.8Sona..

2021-05-23 10:52:30 1204 2

原创 数据库表结构导出word及分析对比工具

数据库静态表结构导出及分析对比工具背景随着系统一次次迭代升级,数据库不断更新维护,不同环境数据库表差异性逐渐增多,表结构设计缺陷也逐渐增多; 随着数据量增多,原有正常表,也会成为风险表(主键ID类型问题,索引缺失、无效,备注缺失等问题)。TOP系统遇到两次数据库问题(一次索引失效,一次任务表ID触达上线)TOP访问外部系统获取商品列表过长(外部系统没创建索引)解决这些问题是遇见而不是预见,细思极恐。。。。。数据静态表结构解析对比工具1).生成数据库表结构文档(给懒人使..

2021-02-21 14:10:34 544

原创 多线程应用多接口合并执行

线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。多线程:多个线程并行执行任务最大优点:最大限度的利用CPU的空闲时间来处理其他任务,提高效率多线程应用场景一:一接口内部同时调用3个甚至更多的接口方法,正常情况下一个方法调用这些接口是同步执行的,所用的时间是所有调用方法时间的总和。这样接口调用时间会很长,会影响客户体验;在高并发的情况下会严重影响性能,甚至拖垮服务器。所以我们可以把多个接口通过多线程的方式执行,大大提高执行效率;即一个或者多个线程在执行之前必

2020-11-04 19:35:30 2497

原创 switch 用法解读

switch case 判断表达式的一种,类似于 if elseswitch() 方法支持数据类型:JDK1.6(char,byte,short,int),JDK1.7(char, byte,short,int, String)case 表达式可以有多个 类似于 else ifswitch case 用法限制每个case语句要通过break/return结束语句 最后一个分支要是用default 结束switch 语句 支持多个case分支,执行一个判定逻辑switch cas...

2020-10-24 18:06:29 1579 1

原创 Nginx 静态文件分离

nginx 实现静态文件分离

2024-03-16 10:08:51 889

原创 Java 加载 DLL 类库

Java 加载 dll 库

2022-05-26 10:01:00 2443

原创 nacos 手动实现负载均衡策略

nacos 手动实现负载均衡手动实现源码 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client

2022-05-25 09:36:54 805

原创 读《阿里DevOps实战手册》之敏捷开发梳理总结

1 DevOps核心理念DevOps是以快速交付价值,给与开发最大自由度,负责开发和运维的全部过程。在监控、故障防控工具,功能开关的配合下,可以在保障用户体验和快速交付价值之间找到平衡点。1.1 DevOps核心理念之松管控和强卡点松管控:应用 Owner可以完整定义这个应用的各种规则,比如如何发布,如何测试,如何进行资源、环境 配置等。我们有通用构建和自定义构建,可以给开发最大自由度。最后是“轻发布,重恢复”。在每一个应用维度,开发可以随时使用流水线来交付代码,而并不需要特别的限.

2022-02-11 16:21:35 1846

原创 分布式web系统架构图及应用架构图

2022-02-08 14:17:03 3521

原创 Bat脚本自动设置本机IP地址

@echo offcolor 4title 以Admin权限设置本机IP地址PUSHD %~DP0 & cd /d "%~dp0"%1 %2mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :runas","","runas",1)(window.close)&goto :eof:runasecho a:公司IP设置,b:家用IP随机设置set/p c=if ..

2022-02-03 10:02:47 3974

原创 Mongobd安装及JAVA调用

Mongodb安装下载Mongodb注:linux版本与mongodb版本冲突问题,需要选择合适的版本1.Linux CentOS Linux release 7.9.2009 (Core)下载mongodb包wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.2.4.tgz解压安装2.解压和移动mongodb至目录 /xxx/xxx/xxx/mongodbtar -zxvf mongodb-li

2021-11-07 11:37:25 447

原创 分库分表-存储过程批量创建、修改表结构

存储过程 tp_create_alert_table 方法说明:IN `@Num` int(11) : 表数量 IN `@tableName` varchar(128) :表名IN `@sql` varchar(5120) : SQL内容 (...)IN `@isCreateTabel` : 是否是创建表0-非,>0-是 DROP PROCEDURE IF EXISTS tp_create_alert_table; CREATE PROCEDURE.

2021-11-05 10:54:10 368

原创 熔断限流切面工具

背景随着业务不断拓展优化,业务量的急增,导致应用系统性能瓶颈问题越来越显著;请求频繁超时、内部系统卡顿、CUP过高、内存不足、GC频繁;调用外部系统频繁超时,触发限流等情况;针对该情况提供一套熔断限流工具。应用场景系统高并发熔断限流1.漏桶算法熔断限流可以保证外部系统稳定性建议用于访问外部系统存在系统瓶颈,有限流等情况2.令牌桶算法熔断限流可以保证内部系统稳定性建议用于外部系统访问内部系统,内部系统存在瓶颈,性能问题等情况3.固定窗口算法熔断限流可以到毫秒级熔断限流根据实

2021-08-14 14:37:34 246

原创 java-快速查找文件,文件内容工具

背景工作日积月累,PC电脑文件越来越多。有时想找一个文件都不知道在哪,很烦恼;因此写了一个工具可以帮快速查找一些文件,减少查找文件的时间。应用场景查找关键字文件名、文件目录 查找关键字文件内容 查找关键字特殊文档内容(xml,doc,ppt,pdf,log,png,jpg等)技术实现核心业务逻辑fills.main.SearchFileMain-查询文件主函数1.fills.main.SearchFileMain.doSearchFile(File, Str...

2021-07-18 14:34:07 1563

原创 如何在JAVA系统嵌入动态逻辑

需求背景:随着需求业务的高速发展,系统也已经从单应用服务发展为分布式服务;系统架构升级很多个业务系统产生;再高速发展过程中,会发现各个系统迭代升级也很频繁,线上出现问题频率增多。为了更好的维护线上生态环境,想到一种方式,在系统中嵌入动态处理逻辑,使原有的业务逻辑发生改变。为此提供一种解决方案,提高线上运行的生态环境 Distributed Unified Configuration CenterDUCC:分布式统一配置中心实现原理+DEMO1.动态代码实现原理线...

2020-11-10 12:13:46 670

原创 LinkedList for 和 forEach遍历分析

Java中LinkenList数据结构->链表链式存储,Sequential Access:  这种方式,每一个数据元素,在内存中都不要求处于相邻的位置,每个数据元素包含他的下一个元素的内存地址,不可以根据元素的位置直接计算出内存地址,只能按照顺序读取元素。主要是以链表为代表。1.传统的for循环遍历,基于计数器的:遍历者自己在集合外部维护一个计数器,然后依次读取每一个位置的元素,当读取到一最后一个元素后停止。主要是需要按元素的位置来读取。这也是最原始的集合遍历方法。...

2020-10-24 14:57:36 1490 1

原创 ArrayList for 和 forEach遍历分析

Java中ArrayList集合数据结构:数组顺序存储,Random Access(Direct Access)这种方式,相邻的数据元素存放于相邻的内存地址中,整块内存地址是连续的,可以根据元素的位置直接计算出内存地址,直接进行读取。对于顺序存储读取一个特定位置元素的平均时间复杂度为O(1),遍历整个集合的平均时间复杂度为O(n)。正常来说,只有基于数组实现的集合,才有这种特性。1.传统的for循环遍历,基于计数器的:  遍历者自己在集合外部维护一个计数器,然后依次读取每一个位置的元素,当.

2020-10-23 19:59:15 2509 2

原创 HashMap keySet与entrySet遍历分析

keySet():返回的是只存放key值的Set集合,使用迭代器方式遍历该Set集合,在迭代器中再使用get方法获取每一个键对应的值代码案例:keySet遍历代码/** * 通过keySet遍历 * @param map */public static void keySetTest(Map<String ,Object> map){ Iterator<String> keys = map.keySet().iterator(); while(k

2020-10-17 17:31:44 650 2

Nginx 静态文件分离

前后端今天文件分离,提高页面访问效率

2024-03-16

aspectj切面生成service-api接口源码

切面生成service-api接口源码 1.aspectj 切面获取注解信息 2.Java 反射获取属性信息 3.SpringContext 获取spring 容器beans 4.poi工具生成docx文档

2021-08-29

切面生成service-api接口-jar

切面生成service-api接口 1.aspectj 切面获取注解信息 2.Java 反射获取属性信息 3.SpringContext 获取spring 容器beans 4.poi工具生成docx文档

2021-08-29

高并发熔断限流工具源码-fills-fuse-tools.rar

高并发熔断限流工具 1.漏桶算法熔断限流可以保证外部系统稳定性 建议用于访问外部系统存在系统瓶颈,有限流等情况 2.令牌桶算法熔断限流可以保证内部系统稳定性 建议用于外部系统访问内部系统,内部系统存在瓶颈,性能问题等情况 3.固定窗口算法熔断限流可以到毫秒级熔断限流 根据实际业务场景合理选择,可限流,可控速,缺电并发处理不友好,可于淘汰策略结合使用while(cas) 4.强制并发限流 缺点没有并发时间差预处理浮动,强制返回失败,不够柔和;可根据业务场景选择

2021-08-14

高并发熔断限流工具-fills-fuse-tools-0.0.1-SNAPSHOT.jar

高并发熔断限流工具 1.漏桶算法熔断限流可以保证外部系统稳定性 建议用于访问外部系统存在系统瓶颈,有限流等情况 2.令牌桶算法熔断限流可以保证内部系统稳定性 建议用于外部系统访问内部系统,内部系统存在瓶颈,性能问题等情况 3.固定窗口算法熔断限流可以到毫秒级熔断限流 根据实际业务场景合理选择,可限流,可控速,缺电并发处理不友好,可于淘汰策略结合使用while(cas) 4.强制并发限流 缺点没有并发时间差预处理浮动,强制返回失败,不够柔和;可根据业务场景选择

2021-08-14

java 快速查找文件,文件内容源码-fills-search-tools.rar

1.查找关键字文件名、文件目录 2.查找关键字文件内容 3.查找关键字特殊文档内容(xml,doc,ppt,pdf,log,png,jpg等)

2021-07-18

java快速查找文件,文件内容工具 fills-search-tools.exe

1.查找关键字文件名、文件目录 2.查找关键字文件内容 3.查找关键字特殊文档内容(xml,doc,ppt,pdf,log,png,jpg等)

2021-07-18

fills-dubbo-Tools.rar

dubbo接口测试工具源码,应用技术如下 A.类加载器-加载需要dubbo服务接口jar B.动态代理-订阅消费者服务;调用订阅服务的方法 C.反射-获取类的方法及参数信息 D.反序列化-fastJson实现对象序列化,反序列化 E.缓存-jvm缓存消费者服务,方法参数等信息,jvm缓存页面请求参数信息

2021-06-29

dubbo-tools.exe

dubbo测试工具,手动订阅dubbo服务,代理调用接口,需要jdk1.8环境下启动exe

2021-06-29

fillsJavaTools.rar

将数据库转word并检测及对比表结构

2021-02-21

Db2WordTable工具.rar

将数据库表数据导出为word文档,并检测表结构

2021-02-21

JAVA动态配置中心DUCC源码

为此提供一种解决方案,提高线上运行的生态环境 Distributed Unified Configuration Center .动态代码实现原理 线程异步+httpClient+反射+动态代理 线程异步:实例化对象并初始化,循环异步HttpClient调用获取代码 反射:获取代码后,然后反射创建对象 动态代理:通过动态代理调用反射生成对象的方法 1.1动态配置实现原理 线程异步+httpClient 线程异步:实例化对象并初始化,循环异步HttpClient调用获取配置,同步到自定义集合

2020-11-06

空空如也

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

TA关注的人

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