- 博客(90)
- 资源 (19)
- 收藏
- 关注

原创 一个老猿的素养
领task的时候就如娶老婆,领之前你想清楚了,领完之后含着泪跪着也得走完;项目coding的时候就如教育自己的孩子,至少让他出社会(上线)的时候不丢自己的脸!工作十多个年头,但是博客还停留在2012年,很不好的习惯,所以我准备把我手头上的一些原创技术文章上传到优快云,借助这个平台与君共勉!我保证所有的文章都是经过自己的实践操作得来的成果,我讨厌剽窃和不负责任的文章,大家有什么问题都可以找我交流,WX号:xiangge19851114...
2021-01-29 15:09:08
244
4
原创 GEO地图数据分布处理
基于地图数据统计的性能问题,考虑通过MySQL定时任务单独将地图数据进行统计结果保存,然后通过DBT脚本关联输出到数据仓库,创建访问数据存储表、存储过程、和定时任务。已知访问用户经纬度数据,根据经纬度统计每个省的访问总数。
2023-11-09 14:59:17
357
3
原创 企业微信、飞书、钉钉机器人消息发送工具类
其实你也可以使用RestTemplate,我这里主要是用到了webflux框架,所以需要实例化客户端请求对象。
2023-09-01 15:42:02
1111
转载 使用Java对Markdown与Html内容进行互转
https://blog.youkuaiyun.com/jxlhljh/article/details/124506103
2023-08-24 15:50:09
710
原创 集成DTM实现跨语言分布式事务V1.0
DTM是一款开源的分布式事务管理器,解决跨数据库、跨服务、跨语言栈更新数据的一致性问题。通俗一点说,DTM提供跨服务事务能力,一组服务要么全部成功,要么全部回滚,避免只更新了一部分数据产生的一致性问题。
2023-08-16 15:27:38
542
原创 Java基础中常见的陷阱
ArrayList和LinkedList的性能区别应该都知道,ArrayList是基于索引的动态数组结构,查询快;LinkedList是基于指针的链表结构,插入和删除快,但是实际效果有没有你想象的那么大呢?
2023-07-17 17:14:11
854
原创 小技巧笔记
从BaseMapper接口方法可知,mybatis plus mapper只有根据id批量删除和查询,没有批量保存(insert 、update),要实现也很简单,需要定义一个Service这个时候可以发现QueueUsedInfoService中有诸如saveBatch,saveOrUpdateBatch方法使用。
2023-05-24 11:05:48
1981
原创 基于Redission实现分布式锁(注解版)
起两个或者更多的服务实例,操作同一个数据库(比如扣库存),然后通过nginx将这些服务实例进行负载均衡配置,通过jmeter或者其他压力测试工具实现并发访问,比较Service方法上加@Dislock和不加的区别。我们想通过注解方式无感实现分布式锁,必须要用到AOP的功能,而且是环绕通知(有do 有 return)生成lockKey,保证锁定资源的唯一性,并且只能解锁自己加的锁。主要是将RedissonClient与Redis数据库关联起来。
2023-04-28 15:22:10
2231
原创 Trino&DBT不同类型数据库数据清洗统计
采用docker安装,还是一如既往使用我最喜欢的docker-compose;Clickhouse和MySQL的安装中规中矩,也不考虑什么架构,直接拉取镜像打包即可主要是:1、dbt需要提前制作好镜像,参考:https://blog.youkuaiyun.com/huxiang19851114/article/details/126626213?
2023-03-14 11:31:20
971
原创 数据库历史数据年度备份
对于一些统计功能,我们需要对历史数据进行数据备份,以降低统计查询的压力,备份方式为按年度备份,每年度备份的数据都单独创建一个数据库
2023-01-12 15:06:58
801
原创 Mock模拟数据&动态字节码编译插件优化
关于动态编译字节码技术参考:https://blog.youkuaiyun.com/huxiang19851114/article/details/127881616优化如下:动态文本类改为界面配置及数据库保存数据库表结构:类加载对象引入缓存机制通过compiler_info.sign签名标记(其实就是一个UUID)来判断,避免频繁调用生成大量的Object执行对象。核心代码如下:Mock模拟测试数据基于使用Spring MVC拦截器的方式弊端:1、request body只能getReader()、get
2022-12-07 17:01:32
687
原创 maven-surefire-plugin 单元测试套件
众所周知,Junit可用于单元测试,maven编译的时候也可以整体执行测试用例,但是很多时候测试用例过多,并且我们不希望老是重复执行已经验证过没有问题的用例而耗费时间,这个时候就要用到测试集了,也就是说通过配置的形式有针对性的对需要测试的用例进行检查!Junit本身提供了测试套件,但是这个测试集不能生成测试报告,大家可以有选择性的参考下:我们今天介绍的是apache maven提供的一个集测试套件和测试报告的插件:maven-surefire-plugin。
2022-09-22 10:19:01
899
原创 大数据工具之dbt
是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。一词较常用在数据仓库.是一个很不错的进行中的处理的工具,灵活简单,我们需要写的就是select 语句,剩下的dbt 帮助我们进行处理官网地址:https://docs.getdbt.com/............
2022-08-31 16:18:00
7829
原创 分布式数据库中间件Mycat2
Java语言编写的MySQL数据库网络协议的开源中间件,GPLv3协议开源,在Mycat1的基础上做了如下优化或者加强:官网:http://www.mycat.org.cn/关注Mycat1可以链接到:https://blog.youkuaiyun.com/huxiang19851114/article/details/113845705。......
2022-08-18 10:11:19
2130
原创 大数据工具之Superset
ApacheSuperset是一个开源的、现代的、轻量级BI分析工具,能够对接多种数据源、拥有丰富的图标展示形式、支持自定义仪表盘,且拥有友好的用户界面,十分易用。由于Superset能够对接常用的大数据分析工具,如Trino、Hive、Kylin、Druid等,且支持自定义仪表盘,故可作为数仓的可视化工具,应用于数据仓库的ADS!官网https。......
2022-07-28 09:58:18
30419
4
原创 大数据工具之Trino
从字面意思可以看到它支持的数据源应该是没有限制的,例如Hadoop、AWSS3、Alluxio、MySQL、Cassandra、Kafka、ES、Kudu、MongoDB、MySQL等等,一句话,就是在市面能看到的存储,它基本上都支持。Trino没有自己的存储,实现了存储与计算分离,而存储与计算分离的核心就是基于连接器的架构。连接器为Trino提供了连接任意数据源的接口,也可以自定义编程实现连接器。......
2022-07-22 10:00:15
17939
4
原创 数据库间数据迁移方案
本章节讨论的是不依托第三方开发语言,不通过业务逻辑的方式进行迁移,主要为运维提供的迁移方案。一般应用于历史数据的整体迁移,就为了这一次迁移写一堆的固定代码,不是很优雅的处理方式!核心:mysqldump 对源库表数据进行转存储,source命令创建临时源库表数据(通过一个Shell脚本说明,大家把以下具体配置项改成自己的,业务逻辑改成自己的,一键执行即可,其他迁移方案也类似)MongoDB To MySQL核心:通过mongoexport命令导出数据,通过load data infile导入数据(临时
2022-06-15 13:49:30
1840
原创 从零开始Kubernetes CronJob实现任务调度
从零开始Kubernetes CronJob实现任务调度安装 kubectl下载获取最新版本curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"指定版本curl -LO https://dl.k8s.io/release/v1.23.0/bin/linux/amd64/kubectl二进制包版本验证[root@ydt
2022-04-27 16:14:42
1879
原创 数据结构(算法篇)
数据结构算法篇算法的魅力使用经典的百鸡百钱问题来说明,一共列举了三种方式,每种方式的循环层数都不一样//三层循环long start1 = System.nanoTime();for (int i = 0; i < 20; i++) { for (int j = 0; j < 34; j++) { for (int k = 0; k < 300; k = k + 3) { //k = k + 3 是为了满足小鸡实际存在的要求 if
2022-03-31 16:32:41
1151
原创 数据结构(优化篇)
结论:指定长度比不指定长度时速度要快原因分析:指定长度时,省去了容器扩容花费的时间,但是同时,如果随意设置,则浪费计算机内存资源,所以尽量的按需设置!
2022-03-21 11:06:33
1041
原创 数据结构(比对篇)
原因分析:分段锁技术,首先将数据分成一段一段的存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段数据的时候,其他段的数据也能被其他线程访问----实现了线程安全,也兼容了性能! LinkedList只需要找到插入的位置index,断开index-1和index+1的连接,然后让index-1指向index,index指向index+1即可。即可,特别是集合第一个元素,甚至都不需要改变指向关系,只需要让index为1的标记为新的index为0的头元素。
2022-03-11 10:45:35
653
原创 SpringBoot集成Swagger
Swagger 是一个规范且完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务(废话);更多时候,你可以把它当成一个在线API文档!(实话)
2022-03-08 10:27:15
445
原创 Drools规则引擎范例
无规则不成方圆,软件领域也如此,比如说最常见的“会员积分规则”,会员注册有一个原始积分,这个好处理,在新建对象的时候就给初始化一个原始值,那么这个原始值也有几种,比如平常注册,节假日注册等等,原始值就会有不同,这是一个规则;还有就是注册生效日期,比如立即生效,三天之内生效等等,这也是一个规则;会员消费的时候也会产生多种规则,比如普通消费,节假日消费,逢生日消费;会员消费次数与打折也会产生多种规则,
2022-02-23 09:48:52
1056
2
原创 SpringBoot集成ZipKin实现链路跟踪
当我们的服务器成千上万,当我们的模块上万成千,当我们的调用链路复杂如蜘蛛网时,我们突然发现一个小小的性能问题却不能快速定位到点!千万不要以为自己是神,当年那个觉得ELK日志分析系统多余的程序员已经被老板祭天! 废话有点多,今天我们要做的一件事非常简单,如何在一个多层调用的接口里快速查看它们的网络拓扑图并得到监控数据!
2022-02-17 09:37:32
5366
4
原创 Spring Boot & Spring Batch 实现批处理
Spring Boot & Spring Batch 实现批处理需求领域自动,复杂地处理大量信息,无需用户交互即可最有效地进行处理。这些操作通常包括基于时间的事件(例如月末计算,通知或通信)。定期应用非常大的数据集(例如,保险利益确定或费率调整)重复处理复杂的业务规则。从内部和外部系统接收的信息的集成,通常需要格式化,验证和以事务方式进行的处理到记录系统中。批处理每天用于为企业处理数十亿笔事务Spring Batch介绍核心流程图如下:Spring Batch 是一个轻量级的,全
2022-01-18 14:57:47
3748
原创 Spring WebSocket实现消息订阅
/监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。继承AbstractWebSocketHandler方法,实现连接创建,关闭,以及消息的发送和异常处理方法。客户端通过WebSocket长连接与服务端实现消息订阅,并且根据连接参数订阅对应的消息!//判断当前浏览器是否支持WebSocket。//关闭WebSocket连接。//连接发生错误的回调方法。//连接成功建立的回调方法。//接收到消息的回调方法。//连接关闭的回调方法。
2021-12-16 14:58:07
5880
原创 Jasper实现报表(Java)
需要JDK环境并且尽量6.0以上,6.0以下兼容性和汉化支持麻烦(这句基本上是废话了),我这里是安装的社(白)区(嫖)版,Jaspersoft Studio这个工具其实跟Eclipse长得非常像,可以单独安装,也可以Eclipse插件方式安装,甚至可以当成Eclipse工具使用.....再切回main.jrxml ,在Detail区域填充我们准备了这么久的实体属性和子模版,填充实体属性使用Text Field,嵌入子模版使用Subreport标签。s11.put("teacherName","钱老师");
2021-12-10 14:11:00
9549
10
原创 Debezium实现大数据变更状态捕获
1、简介Debezium是用于捕获变更数据的开源分布式平台。可以响应数据库的所有插入,更新和删除操作。Debezium依赖于kafka上,所以在安装Debezium时需要提前安装好Zookeeper,Kafka,以及Kakfa Connect,可以处理的数据源有很多,包括关系型数据库如MySQL,Oracle,SQL Server等,NoSQL数据如MongoDB,Cassandra等,是一个优秀的CDC工具。类似框架还有阿里Canal,也支持与消息中间件处理大数据响应的处理手段,学习路径可参考我的
2021-09-06 16:18:19
2165
原创 KeepAlived+Nginx实践Nginx高可用方案
目录1、什么是高可用?2、什么是Keepalived3、Keepalived如何实现故障转移4、Keepalived安装4.1 下载安装4.2 运行前配置4.3 启动服务5、 Keepalive+Nginx高可用集群5.1 双机主从模式5.2 双机双主模式6、注意1、什么是高可用?高可用性 HA(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性。HA..
2021-03-16 14:43:09
7063
5
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人