- 博客(44)
- 资源 (5)
- 收藏
- 关注

原创 SpringBoot集成Netty实现消息推送、接收、自动重连
SpringBoot集成Netty实现消息消息推送、消息接收、自动重连、身份认证
2022-07-17 13:08:23
7786
9

原创 Redis地理算法GEO解析和应用
背景获取周边信息;附近人?附近的公司?附近的餐厅?附近的星巴克? 获取两个坐标位置的距离?实现可以使用redis、mongo、mysql进行坐标检索换算实现,redis适用版本: >= 3.2.0GEO算法wiki:https://en.wikipedia.org/wiki/Geohashredis使用通用的GeoHash算法进行处理,首先假设有上海站坐标(121.455708,31.249574),然后根据二分法纬度[-90,90],分为[-90,0),[0,90],
2020-07-16 12:01:43
14840
1

原创 Mongodb亿级别数据操作
最近因为公司业务关系每天需要将300w+的数据,双十一高峰时期为3000w+的数据快速查询并进行转储,而这个过程中查询是个头疼的问题,因为加上老数据总量将近3.2亿的数据量,查询起来如果不得当则会一不小心就暴掉了Mongodb,就容易发生惨烈的从删库到跑路。基础条件:SpringBoot项目引入依赖:<dependency> <groupId>or...
2020-04-11 14:59:24
31327
原创 Apache Flink 实战:实时流处理的最佳实践与生产级实现
Flink生产实践黄金法则合理分区:按业务键分区避免数据倾斜状态优化:RocksDB+增量Checkpoint应对大状态资源隔离:关键业务单独部署TaskManager渐进式扩展:从小时级延迟逐步优化到秒级推荐学习路径fill:#333;color:#333;color:#333;fill:none;基础API状态管理Exactly-Once保证性能调优架构设计领域应用最新生态整合Flink 1.16:增强SQL CDC连接器Flink 1.17:改进批执行模式:生产级机器学习支持。
2025-04-07 09:31:34
428
原创 Java锁:Lock与synchronized的全面对比
在Java版本中,synchronized经过大量优化,在低竞争环境下性能与Lock相当。提供了更大的灵活性和控制能力。理解两者的区别和适用场景,可以帮助开发者编写出更高效、更健壮的并发代码。各有优劣,选择哪种锁机制取决于具体需求。对于大多数简单场景,是更安全、更简洁的选择。当需要更高级的同步功能
2025-03-30 07:00:00
537
原创 JDK 24特性说明
JDK 24 引入了多个重要的新特性,包括分代垃圾收集器、紧凑对象头、结构化并发等。通过上述代码示例,我们可以看到如何在实际项目中使用这些新特性。每一项改进都旨在提高 Java 的性能、安全性以及开发效率,帮助开发者更好地处理复杂的任务和优化应用程序。如果你是一个 Java 开发者,JDK 24 的新特性值得你深入了解并应用到你的项目中。
2025-03-21 19:54:15
797
原创 JDK 17 特性总结及垃圾回收机制优化
JDK 17 通过引入多个新特性和优化现有特性,提升了 Java 的性能和开发者体验。从密封类到增强的switch表达式,再到新的伪随机数生成 API,JDK 17 为开发者提供了更强大的工具。而垃圾回收机制的优化使得 Java 在低延迟、大内存场景下表现更加出色。
2025-03-21 08:30:00
1252
原创 深入解析 Redis 原理:架构、数据结构与高效存储
Redis 是一款高性能的内存键值数据库,以其单线程 + 多路复用的架构,实现了极高的吞吐量。本文深入解析 Redis 的核心原理,包括数据结构(如 SDS、跳表、哈希表等)、持久化机制(RDB 快照与 AOF 日志)、高并发优化(惰性删除、定期删除)及分布式架构(主从复制、Sentinel、Cluster)。通过合理的缓存策略和数据结构选择,Redis 在高并发系统中表现卓越,为大规模应用提供可靠的存储与加速方案。
2025-03-20 22:00:00
1260
原创 物联网中台规划详细设计方案
业务中台模块是现代企业架构中的重要组成部分,它提供了一种将企业内部各业务系统或服务进行整合和集成的方式,以实现业务的高效协同和资源的共享。BI报表是一种强大的数据分析工具,可以帮助企业更好地理解和分析其业务数据,发现数据背后的规律和趋势,为企业的决策提供有力支持。
2024-03-15 13:42:12
742
原创 cmd执行命令出现SecurityError: (:) [],ParentContainsErrorRecordException
cmd执行命令出现SecurityError: (:) [],ParentContainsErrorRecordException
2022-07-17 13:29:43
2061
原创 SpringBoot+Mybatis别名匹配失败 Could not resolve type alias
项目场景:通过SpringBoot添加Mybatis双数据源使用实体类绝对路径正常,使用别名项目启动异常,一直报找不到别名实体类错误问题描述:项目启动失败:org.apache.ibatis.type.TypeException: Could not resolve type alias ‘User’Cause: java.lang.ClassNotFoundException: Cannot find class: UserCaused by: org.apache.ibatis.bu.
2020-11-25 18:17:10
2580
1
转载 Mongo使用Docker部署副本集
目录使用Docker部署MongoDB副本集 1. 创建目录 2. 创建密钥 3. 创建mongodb三节点 4. 配置副本集 5. 验证数据同步 6. 附:其它操作 6.1 备份数据 6.2 恢复数据 6.3 创建用户 使用Docker部署MongoDB副本集mongodb从4.0开始支持事务,最近在使用mongodb的过程中,发现在单节点状态下,无法支持事务,只有配置了副本集才支持事务,故留下搭建MongoDB单机三节点副本集的记录.
2020-10-19 14:13:18
556
1
原创 单实例Mongo升级为副本集
背景因为是做短信业务的,随着公司业务增加,数据库压力也日益增加,目前数据量在70亿左右,Mongo只存储一周内的数据,数据量将近1亿左右。之前想要节省成本,所以一直都是单实例。随着接入客户日益增多,每天短信发送量也开始大幅度增加,最担心的就是过节假日,一直比较担心如果Mongo突然挂了,哈 哈!那就是面向死亡编程了。纠结经过几次讨论最终决定采用Mongo副本集读写分离处理,于是开始了服务改造。升级将单实例Mongo改为支持副本集实例 增加配置副本集...
2020-10-19 11:32:37
1356
原创 Linux Centos Mongo安装
安装1、配置系统资源包管理创建 /etc/yum.repos.d/mongodb-org-4.4.repo 资源库文件,添加添加以下内容[mongodb-org-4.4]name=MongoDB Repositorybaseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/gpgcheck=1enabled=1gpgkey=https://www.mongodb.org/static/
2020-10-16 15:39:03
194
原创 Mongo排序超出最大内存错误
背景MongoDB是一个文档数据库,这意味着它将数据存储在类似JSON的文档中。我们认为,这是考虑数据的最自然方法,比传统的行/列模型更具表现力和功能。现象排序、分页功能也是在使用过程中最常见的查询,最近Spring data mongo使用排序、分页功能查询数据量在5000w左右的数据时出现超出最大内存限制错误。代码分析Page<VmMessageDtlVO> data = new Page<>();// add common conditionCrite
2020-09-22 14:14:45
4342
原创 SpringBoot redis GEO 实战应用
上篇文章(Redis地理算法GEO解析和应用)我们对redis GEO算法进行解析以及相关shell命令的使用,这篇文章将带你进行实战应用。依赖注:jedis可以不引入,这里只是为了方便查看源码进行解析 <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis --> <dependency>
2020-07-16 14:28:26
3751
原创 Mysql千万级别表分区优化
通过上篇文章(https://blog.youkuaiyun.com/qq_31150503/article/details/105450236)相信大家已经能够运用MyISAM进行水平分表优化接下来使用Mysql分区进行数据存储优化,也是目前公司采用的大批量数据存储优化方案。方案:根据日期进行分区存储1、创建分区表-- 创建数据分区 根据日期进行分区存储create table dept(...
2020-04-11 14:05:10
25303
原创 Mysql千万级别水平分表优化
需求:随着数据量的增加单表已经不能很好的支持业务,千万级别数据查询缓慢Mysql数据优化方案:方案一:使用myisam进行水平分表优化 方案二:使用mysql分区优化一:Myisam水平分区1、创建水平分表 user_1:-- 创建水平分表create table user_1( id varchar(50) PRIMARY key COMMENT '主键id', u...
2020-04-11 13:30:02
26338
原创 Mysql千万级别数据存储优化
因为公司是做短信业务的,随着数据量的增加每天新增数据将近200w+,数据全部存放至Mongodb中,总数据量将近3.2亿,业务查询相关出现缓慢,于是决定将一周以前的数据存储至Mysql中并对其进行优化处理。公司内部方案方案一:采用Tidb进行查询优化优点:支持高并发、高可用支持无限水平扩展。详细可见:(https://pingcap.com/docs-cn/dev/key-fea...
2020-04-11 12:00:16
25271
原创 SpringBoot+Mybatis+druid配置双数据源
最近因为公司业务,数据量比较大,需要进行数据库查询优化,于是采用了TiDB分布式数据库,使用集群的方式减轻数据库压力。中间引入了双数据源处理,也走了很多弯路在此进行记录,仅供参考1、pom.xml引入相关相关配置 <dependency> <groupId>com.alibaba</groupId> ...
2019-12-28 17:59:09
22927
4
原创 docker compose构建TiDB集群后,Tikv-server内存占用比较高,怎么优化
最近使用TiDB数据库进行数据优化查询,使用docker compose 构建完后出现内存占用很高的情况,过于占用资源解决方案:1、修改了conf/tikv.toml2、修改docker-compose.yml 文件中的Tikv文件...
2019-12-28 16:57:27
7360
原创 idea svn主干合并分支版本Missing ranges异常Error:svn: E195016
在svn分支进行开发是最常见的,主干和生产始终保持版本一直,如果生产需要临时修复则直接在主干进行修改测试提交即可,所以主干进行版本提交也是很常见的事情,但是在分支功能开发完成后将分支合并主干的时候就会出版本丢失问题错误提示:Error:svn: E195016: Reintegrate can only be used if revisions 8893 through 9534...
2019-07-27 23:35:49
33316
原创 那些年微信支付踩过的坑
因为需求原因项目中需要引入微信和支付宝支付功能,自己做微信支付,遇到的坑在这里记录一下将微信java代码引入,配置好相应的配置,使用App进行支付发现执行第10步的时候微信支付系统一直返回-1·,然后查阅文档微信只给出以下几种情况原因,只想说尼玛能不能再具体一点然后开始验证可能出现的原因:1、签名错误通过执行第4步和第5步微信返回相应参数信息没有发生异常,然后又通过调用微信内部...
2019-04-26 09:40:20
37184
原创 Java8 新特性Lambda表达式之入门与探索
之前因为公司服务器一直使用jdk1.7环境所以java8的很多新特性都不能在项目中使用,前几个月于是就把公司java环境进行升级处理,然后在项目中开始使用java8新语法特性。之前自己的开源项目就一直使用jdk1.8所以对新特性不能用在公司项目中很烦,造成出现大部分垃圾代码,趁着此次机会对Lambda表达式进行总结。为什么要用Lambada表达式Lambda表达式说白了就是一...
2019-04-25 20:21:04
48268
原创 java设计模式之代理模式
代理模式定义:是指一个类别可以作为其它东西的接口。代理者可以作任何东西的接口:网络连接、存储器中的对象、文件或其它昂贵或无法复制的资源。举一个简单的例子:说现在有一家公司要拍古装电视剧有剧本,想要有流量就需要有明星参演,于是想要邀请胡歌参演,但是不能直接去找胡歌本人所以只能去找胡歌的经纪人谈关于签约参演的事情代理模式角色:抽象对象角色 (明星) 具体对象角色(胡歌) 代理对象角色(...
2019-04-04 16:40:09
43277
原创 微擎系统在生产运行异常
最近学习微擎系统,在本地所有功能都是正常的但是部署到生产环境则部分功能异常 点击一直没有反应 显示空白页?对比了一下参数也完全一样1、数据库相关的配置已经更改为生产2、将生产的数据库拉至本地然后配置为本地数据库 所有功能都能正常使用解决方案:首先我把data/config.php文件中的开发者模式打开$config['setting']['development'] = 1;...
2019-04-03 09:32:38
434
原创 java设计模式之工厂模式
工厂模式:工厂模式是创建对象的核心设计原则之一,允许客户端以某种方式创建库的对象,使其不与库的类层次结构紧密耦合。工厂模式的几种形态:简单工厂,一个单一的工厂类根据客户端传入的参数不同然后选择实现不同的具体对象。 工厂方法,也可以指作为“工厂”的方法,这个方法的主要目的就是创建对象,而这个方法不一定在单独的工厂类中。这些方法通常作为静态方法,定义在方法所实例化的类中。 抽象工厂,抽象工...
2019-04-02 11:22:42
290
原创 java设计模式之单例模式
单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的一个类只有一个实例。即一个类只有一个对象实例。实现单例模式的思路是:一个类能返回对象一个引用(永远是同一个)和一个获得该实例的方法懒汉方式。指全局的单例实例在第一次被使用时构建。 饿汉方式。指全局的单例实例在类装载时构建。1、单例模式之饿汉模式package ...
2019-03-29 18:06:02
20427
原创 java设计模式之装饰者模式
说到装饰者模式那么何为装饰者模式呢? the decorator pattern is a design pattern that allows behavior to be added to an individual object, dynamically, without affecting the behavior of other objects from the same ...
2019-03-29 16:15:09
29780
原创 java设计模式之观察者模式
先给大家举一个简单的例子,相信大家瞬间就明白了,在某东购商城有一个降价通知功能,只要你登录了账号点击“降价通知”,然后只要该商品出现降价就会给你进行通知。观察者模式顾名思义就是一个或多个观察者对象对一个被观察者对象,如果该被观察者对象发生变化所有的观察者都会发生自动更新。观察者:这里指点击“降价通知的”用户具体被观察者对象:这里指鬼谷子全书现在我们就开始创建一个观察者模式1...
2019-03-28 15:41:48
50972
转载 java设计模式之策略模式
学习策略模式看了很多篇文章,强烈推荐一篇讲解策略模式非常好的文章,只需要五分钟就能明白设计模式之策略模式的使用转载:https://www.cnblogs.com/lewis0077/p/5133812.html...
2019-03-27 21:34:03
158
原创 java使用ajax请求下载excel响应结果显示乱码
需求:前端进行一简单条件查询请求,通过后台到数据库中根据条件进行查询数据,然后将查询到的数据通过excel直接响应给用户进行下载现象:前端页面设计好了,文件下载方法也已完成,然后进行测试,发现前端点击下载按钮后要么没响应要么可以下载但是文件一直打不开,使用浏览器开发者模式查看返回响应的信息就是以下情况全部是乱码的然后通过浏览器直接使用url请求发现是可以下载成功的并且可以打开的,然后就看了...
2019-03-27 21:19:17
25913
9
原创 cannot resolve configuration property 'eureka.client.serviceUrl.defaultZone'
编写微服务时候eureka客户端进行注册服务yml也引入也相关配置一切配置Ok,奇怪的是该客户端服务启动成功所有接口通过ip也能正常访问但是一直不能注册到EurekaServer中心,相同的配置在其他项目中就是好的。然后application.yml文件一直提示“cannot resolve configuration property 'eureka.client.serviceU...
2019-02-18 16:40:11
43942
原创 Docker 安装以及常用命令
一、Docker安装1、Docker安装参考教程ubuntu:https://blog.youkuaiyun.com/u010889616/article/details/80170767centos:https://www.cnblogs.com/wang-yaz/p/10429899.html二、Docker常用命令2、查看所有运行中的容器docker ps3、查询...
2019-02-18 15:55:21
20704
1
原创 实战---在公司项目中引入rabbitMQ,并进行分通道消息发送
最近因为一个需求需要对大批量的用户进行消息推送功能,就想到了使用RabbitMQ进行处理。然后就对RabbitMQ进行抽离变成一个工具类直接调用即可,废话不多说直接开始1、安装RabbitMQ https://blog.youkuaiyun.com/red_sheeps/article/details/783863032、添加VirtualHost -------member3、在项目中引...
2019-01-29 19:05:54
41589
1
原创 SpringCloud 运行Eureka Server启动成功但是一直不能加载Eureka Server的Home首页
今天遇到了一个很有意思的问题,运行Eureka Server启动成功但是一直不能加载Eureka Server的Home首页后台日志打印也没有报错,显示正常build.gradle文件配置如下buildscript { ext { springBootVersion = '2.0.0.RELEASE' } repositories { maven {url 'http://ma...
2019-01-08 16:08:25
17449
4
原创 SpringCloud利用Eureka实现服务之间传递数据
相信大家最关心的肯定不是什么一大堆的破理论,然后还似懂非懂的,最关心得莫过于服务之间的参数传递,数据获取。 Ok,今天就告诉大家三种微服务之间传输数据的方式,分别是:1、最基本的利用Ip端口进行请求访问接口实现数据的传输2、使用Eureka取代Ip(硬编码)的方式实现数据的传输3、使用Feign更加快捷"分服务"的方式实现微服务之间的数据传输(对Feign一点不了解的暂时不用理解,就...
2018-04-12 21:40:23
39374
03xls格式报表导出、07xlsx格式导出、csv格式报表导出工具类
2017-09-12
jdk1.6.0_144
2017-09-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人