- 博客(33)
- 资源 (11)
- 收藏
- 关注

原创 Google Ads API 调研及使用
Google Ads Api 广告投放接口调研,web授权接口调研,报告接口调研,项目创建,应用申请,经理账号,开发者令牌等流程梳理。
2024-06-19 00:26:03
2973
2

原创 AbstractQueuedSynchronizer原理及应用
AQS是抽象队列同步器;是一个抽象类,通过继承的方式使用;内部实现CLH队列,是一个FIFO的双向链表;基于自旋策略获取锁/释放锁资源
2023-02-13 20:18:52
313

原创 Spring-cloud-alibaba 系统搭建
Spring-cloud-alibaba 微服务系统架构搭建,设计模块nacos,feign,gateway,sentinel,sleuth,zipkin
2022-10-26 09:54:13
3044

原创 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
1136

原创 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
2993

原创 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
2459

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

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

原创 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
1497
2

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

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

原创 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
1905
1
原创 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
925
原创 读《阿里DevOps实战手册》之敏捷开发梳理总结
1 DevOps核心理念DevOps是以快速交付价值,给与开发最大自由度,负责开发和运维的全部过程。在监控、故障防控工具,功能开关的配合下,可以在保障用户体验和快速交付价值之间找到平衡点。1.1 DevOps核心理念之松管控和强卡点松管控:应用 Owner可以完整定义这个应用的各种规则,比如如何发布,如何测试,如何进行资源、环境 配置等。我们有通用构建和自定义构建,可以给开发最大自由度。最后是“轻发布,重恢复”。在每一个应用维度,开发可以随时使用流水线来交付代码,而并不需要特别的限.
2022-02-11 16:21:35
1970
原创 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
4302
原创 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
504
原创 分库分表-存储过程批量创建、修改表结构
存储过程 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
466
原创 熔断限流切面工具
背景随着业务不断拓展优化,业务量的急增,导致应用系统性能瓶颈问题越来越显著;请求频繁超时、内部系统卡顿、CUP过高、内存不足、GC频繁;调用外部系统频繁超时,触发限流等情况;针对该情况提供一套熔断限流工具。应用场景系统高并发熔断限流1.漏桶算法熔断限流可以保证外部系统稳定性建议用于访问外部系统存在系统瓶颈,有限流等情况2.令牌桶算法熔断限流可以保证内部系统稳定性建议用于外部系统访问内部系统,内部系统存在瓶颈,性能问题等情况3.固定窗口算法熔断限流可以到毫秒级熔断限流根据实
2021-08-14 14:37:34
289
原创 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
1690
原创 如何在JAVA系统嵌入动态逻辑
需求背景:随着需求业务的高速发展,系统也已经从单应用服务发展为分布式服务;系统架构升级很多个业务系统产生;再高速发展过程中,会发现各个系统迭代升级也很频繁,线上出现问题频率增多。为了更好的维护线上生态环境,想到一种方式,在系统中嵌入动态处理逻辑,使原有的业务逻辑发生改变。为此提供一种解决方案,提高线上运行的生态环境 Distributed Unified Configuration CenterDUCC:分布式统一配置中心实现原理+DEMO1.动态代码实现原理线...
2020-11-10 12:13:46
812
原创 LinkedList for 和 forEach遍历分析
Java中LinkenList数据结构->链表链式存储,Sequential Access: 这种方式,每一个数据元素,在内存中都不要求处于相邻的位置,每个数据元素包含他的下一个元素的内存地址,不可以根据元素的位置直接计算出内存地址,只能按照顺序读取元素。主要是以链表为代表。1.传统的for循环遍历,基于计数器的:遍历者自己在集合外部维护一个计数器,然后依次读取每一个位置的元素,当读取到一最后一个元素后停止。主要是需要按元素的位置来读取。这也是最原始的集合遍历方法。...
2020-10-24 14:57:36
1746
1
原创 ArrayList for 和 forEach遍历分析
Java中ArrayList集合数据结构:数组顺序存储,Random Access(Direct Access)这种方式,相邻的数据元素存放于相邻的内存地址中,整块内存地址是连续的,可以根据元素的位置直接计算出内存地址,直接进行读取。对于顺序存储读取一个特定位置元素的平均时间复杂度为O(1),遍历整个集合的平均时间复杂度为O(n)。正常来说,只有基于数组实现的集合,才有这种特性。1.传统的for循环遍历,基于计数器的: 遍历者自己在集合外部维护一个计数器,然后依次读取每一个位置的元素,当.
2020-10-23 19:59:15
2705
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
736
2
aspectj切面生成service-api接口源码
2021-08-29
切面生成service-api接口-jar
2021-08-29
高并发熔断限流工具源码-fills-fuse-tools.rar
2021-08-14
高并发熔断限流工具-fills-fuse-tools-0.0.1-SNAPSHOT.jar
2021-08-14
java 快速查找文件,文件内容源码-fills-search-tools.rar
2021-07-18
java快速查找文件,文件内容工具 fills-search-tools.exe
2021-07-18
fills-dubbo-Tools.rar
2021-06-29
JAVA动态配置中心DUCC源码
2020-11-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人