架构
文章平均质量分 83
肥仔哥哥1930
专业、专注、专家
展开
-
基于redisson实现延时队列解耦业务
解耦,让开发只用关注业务基于redisson不用太关注redis底层实现,这里可以理解就是2个队列,一个未到期队列、一个到期队列,随着时间的推移redisson帮我们实现从未到期移动数据到到期,我们只用管从到期取到数据的操作封装还很粗糙,还有进步空间就分享到这,希望能帮到大家,uping!原创 2023-08-24 14:14:36 · 507 阅读 · 0 评论 -
同源部署自定义sessionId解析器实现一个浏览器同时登录正常使用
cookie、session会话关系要清楚理解(理解不清这一切不可为)security安全机制还是很强悍的好,就写到这里希望可以帮到大家,uping。原创 2023-05-26 15:58:39 · 962 阅读 · 0 评论 -
同源部署自定义sessionId解析器设置不同名称cookie
时间紧,马上也要考试了,不废话。今天遇到的场景是2个前端(客户端、运营端)共用一个后端(后端权限框架用的security,集成到springboot2),且2个前端部署在同一个域名下,端口区分终端。希望在一个浏览器同时登录在线,正常使用。简单介绍下Spring 是一个非常流行和成功的 Java 应用开发框架。Spring Security 是基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。原创 2023-05-25 17:30:54 · 1040 阅读 · 0 评论 -
基于缓存的统一请求日志实现
- preHandle、postHandle处理 - pre里处理将请求日志(校验不通过也记录),统一请求标识作为key放redis缓存 - 统一请求标识想办法塞入请求参数 - 具体执行Controller分方法,从请求参数拿到日志,补充业务日志 - postHandle做出参记录处理(需要重写Response,懒得写,我这里就直接用的spring提供的ResponseBodyAdvice处理的,自定义一个实现它就行) - 开启线程异步去记录日志原创 2023-03-25 10:50:09 · 831 阅读 · 0 评论 -
一个基于缓存的业务链路日志记录设计方案
一个简单的全接口日志设计文档,先分享设计文档,后面分享核心设计代码。原创 2023-03-24 11:37:26 · 830 阅读 · 0 评论 -
SpringBoot3集成TDengine自适应裂变存储
首先很遗憾的告诉大家,今天这篇分享要关注才可以看了。原因是穷啊,现在基本都是要人民币玩家了,就比如chatGPT、copilot,这些AI虽然都是可以很好的辅助编码,但是都是要钱。入驻CSDN有些年头了,中间有几年大学毕业,失恋了没有写,沉沦了几年。后面逐渐捡起来,我们之间应该说是互相成就吧,亦师亦友亦笔记。说实话,其实CSDN之前有出一些插件,我很欣慰,也一直在用,其实我一直希望CSDN能出个copilot采用AI辅助就好了。或者国内几大技术论坛能一起搞个也行,其实大家都是有这方面的优势的。。。原创 2023-02-18 15:16:23 · 1558 阅读 · 0 评论 -
SpringBoot3集成Kafka优雅实现信息消费发送
1、SpringBoot3真香2、Kafka的集成已经非常成熟了,资料也多。我这里这个SpringBoot3集成Kafka发送信息目前觉得是独家,你能找到的应该都还是使用的ListenableFuture类。好了,就写到这里,希望能帮到大家,uping!!!原创 2023-02-13 19:19:32 · 4651 阅读 · 1 评论 -
物联网设备流水入库TDengine改造方案
首先,个人赞成1.3方案,建议应用组增加消息队列服务。从稳定性、数据一致性考虑,方案1.3可以保证数据不丢失、且实时性高。原创 2023-02-09 16:41:27 · 1281 阅读 · 0 评论 -
MybatisPlus多表查询之零sql编写实现
MybatisPlus多表查询之零sql编写实现,只要表关系在你心中,就可以放飞自我。。。原创 2023-02-03 19:28:23 · 1711 阅读 · 0 评论 -
SpringBoot3+最新MybatisPlus+Mysql与TDengine双数据源
昨天写的idea+Apifox uploader插件+apifox新年第一天上班就上榜了,真是不错。今天来补一篇,本来应该是在前一篇之前发的。实际上就是最新的springBoot集成最新的mybatisPlus,加双数据源:mysql、TDengine,一个关系型数据库,一个时序数据库。文末有独家demo的git地址。 springBoot3集成的哦,其他依赖也都是最新版本,独家的哦。好了,不废话,直接上重点。 这个没有啥好说的,就是选择spring项目了,下一步下一步,直接看引入原创 2023-01-29 14:29:17 · 6782 阅读 · 5 评论 -
Spring Boot + Disruptor = 王炸!!
Disruptor 是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。Disruptor是LMAX在线交易平台的关键组成部分,LMAX平台使用该框架对订单处理速度能达到600万TPS,除金融领域之外,其他一般的应用中都可以用到Disruptor,它可以带来显著的性能提升。不同的地方在于,Disruptor 是在内存中以队列的方式去实现的,而且是无锁的。下面介绍的概念模型,既是领域对象,也是映射到代码实现上的核心对象。转载 2022-12-28 12:12:31 · 217 阅读 · 1 评论 -
SpringBoot+ElasticSearch就这么简单,而且还可以更简单
ElasticSearch 作为一款常见的搜索引擎,在项目中随时会用到。为方便在项目中访问 ElasticSearch,Spring 官方封装了对 ElasticSearch 的支持。通过 Spring Data 的 ElasticSearch 模块,我们可以方便地使用 ElasticSearch。转载 2022-10-19 09:58:06 · 640 阅读 · 0 评论 -
snack3遇上定义物模型用json串
1、pom.xml增加依赖原创 2022-10-10 21:01:30 · 1699 阅读 · 0 评论 -
拦截器实现mybatis补充过滤条件
怎么说能,没没这时候不得不夸赞下spring,这里这个拦截器的也是跟spring的生命周期有关。关于数据存库、查询的加密解密也可以用这个思路实现。这里其实也有一定的缺点,比如这里相当于增加了一层子查询,那么就会有性能的损失。其次也会影响数据库优化器的优化,索引的命中。这里除了分享,也是自己备忘。真的有点忙,就不多说,最近写博文都少了,55555。原创 2022-08-25 14:21:27 · 1338 阅读 · 0 评论 -
Flink流处理引擎系统学习(一)
自己有时说带不动别人,在别人眼里,又何尝不是被被人这样认为呢?以后还是要摒除内心的杂念,紧下心,自己创造条件UP。正如课程老师说的,未来没有什么谁强谁弱,而是看谁先在自己的短板有所突破。我们做人、做技术人又何尝不是这样呢?原创 2022-04-21 12:58:39 · 1177 阅读 · 0 评论 -
多线程与自动任务的一场悲剧的风花雪月
序今天跟添加分享一个多线程与自动任务谈恋爱的悲惨故事,他们的结合,如果造化弄人,搞不好就是同归于尽。一、相识一次产品设计会上,促使了2个人”多线程“、”自动任务“的结合,本来是计划一起配合用手段调度资源造就稳定、丝滑、流畅的时代。可是造物主要是控制不好,就会是一场所有的所有陪葬的悲剧。二、结合示例1.多线程集成多线程集成是前提,这里就不重复说了,见往期的博文。(下面整体代码示例也有说明)2.自动任务集成这里实现方式很多,也不多说,一般用springBoot的Scheduled就够用了,不需原创 2022-03-17 20:04:29 · 1059 阅读 · 1 评论 -
SpringBoot2.6.x映射本地文件目录为静态资源配置
升级springBoot版本后,静态资源配置失效。spring.resources.static-locations失效过时,替代spring.web.static-locations设置原创 2022-02-15 19:41:37 · 3185 阅读 · 2 评论 -
转码推流简单实现方案(一)
最近工作中用到ffmpeg,刚好趁这个机会跟大家分享下,视频流的转码推流简单方案。这个方案如果不是特别高的并发播放量,还是够用的。当然如果出现高并发播放量,也是可以对模块进行扩容的,这里是分享的方案是分模块实现整个服务。文章目录前言一、整个服务的流程图二、使用步骤1.ffmpeg安装2.验证ffmpeg安装3.验证ffmpeg转码总结前言这是一个简单的系列分享,抽空分阶段分享给大家。一、整个服务的流程图这是一个大致的交互流程图,整个服务分成3个模块,先说下各模块的作用。videoAgen原创 2022-02-14 12:31:10 · 2648 阅读 · 0 评论 -
再好的接口也挡不住程序员敏锐的眼睛
今天主要是来跟大家分享下刷赞的基本思路,实践就用我最爱的CSDN。前言现在总是有好多求赞的信息,有时候看到那些求赞票数低的,还感到心疼。曾经我也是用刷赞的技术跟爱人跟一个新开的健身中心刷到前几名,最后整了个张2折健身卡(环境不错、器材新,主要是有游泳池,而且在家门口)。就这让爱人认识到技术人薅羊毛的可怕,还小小的崇拜了,奖励了鸡腿,可是我现在依然还是肥仔哥哥。。。。。。一、刷赞基本思路基本思路:其实刷赞,主要是找对接口。接口找到了,分析请求参数,剩下的接口会返回你一些信息的,技术人对于提示原创 2022-01-19 12:56:24 · 5021 阅读 · 5 评论 -
新一代VM简单使用与感想
序 一点一点靠近你,在了解新动向过程中,你会发现java还很年轻,还很有活力,还在追求,也许有天依然会重回霸主位置。比如你去了解下GraalVM,它不是什么无中生有的新玩意,但是你看它背后的加持,你会激动不已。一、同了解共激动官网:https://www.graalvm.org/背书组织:基本3大巨头都为它背书,oracle、spring、eclipse有多强&能干啥:https://baijiaha原创 2021-12-01 12:28:28 · 1473 阅读 · 0 评论 -
Redssion分布式锁集成使用
序 计划提前了点,趁空看看这个传说中很牛逼的Redisson分布式锁,集成着玩,后面看场景试试使用。废话后面总结说,这里先上货。一、依赖引入<!-- redisson分布式锁 --><dependency> <groupId>org.redisson</groupId> <artifactId>redisson-spring-boot-star原创 2021-11-09 10:52:24 · 1490 阅读 · 0 评论 -
TLog轻量级日志追踪使用(非微服务)
序 之前发过一个博文介绍了TLog在微服务环境下的使用,当时还误解觉得在非微服务情况下使用这个日志框架没有意义。然当加入组织,细细研读使用文档,才发现自己的无知。作者说的微服务下能显示上下游请求名称、ip等,他说的这个微服务是宽泛的。一、依赖引入 不想包太大,其实可以值引入自己需要的模块,我一般都是图省事的。<!-- TLog引入支持 -->&l原创 2021-11-07 18:43:39 · 1902 阅读 · 0 评论 -
一个优秀活跃的视频转码项目分享
序今天分享一个视频转码的项目。起因是另一个team渝澳了摄像头视频流的播放问题,自从浏览器放弃flash支持后,好多视频格式都不能播放了,于是视频转码就必不可少了。然而很多公司并没有精力、资金去对这块过多的投入,一时间无论是前端播放器插件、还是后端转码项目,都特别火。今天主要是分享下发现的后端转码项目-EasyMedia,这其实也是另一个team哥们发现的,我这里研究下作为技术储备。一、项目说明这个项目是开源的,而且作者说可以任意商用,当然这是暂时的。但是,里面引入了javacv、ffmpeg,这2块原创 2021-08-30 17:34:47 · 1043 阅读 · 0 评论 -
springCloud大版本升级2020.0.1(微服务)
序生活中我是一个爱吃螃蟹的人,工作中我也是一个敢吃且爱吃螃蟹的人。只要有时间,同样的业务场景我都想用用新东西,这样一切才能进步。我就是我,敢怼天、敢怼地,工作中的一些事都敢怼领导,但是不是因为看不得这个领导,一起都是为了精益求精,为了工作,为了心中的巨人。今天主体上结束了一个项目的工作,自我调整下,明天正式进入另一个产品的研发,还是一个人在战斗,微服务一个人做,还好业务线分的不是特别细。今天主要分享下微服务大版本的升级,由2.3.8->目前稳定的最新2.4.3&2020.0.1。一、版本原创 2021-03-19 11:03:55 · 4236 阅读 · 1 评论 -
SpringBoot配置ELK环境
在看大型网站的中间件技术,对于Elasticsearch有点兴趣,所以将配置流程记录了一下为什么要用ELK“ELK实际上是三个工具,Elastricsearch + LogStash + Kibana,通过ELK,用来收集日志还有进行日志分析,最后通过可视化UI进行展示。一开始业务量比较小的时候,通过简单的SLF4J+Logger在服务器打印日志,通过grep进行简单查询,但是随着业务量增加,数据量也会不断增加,所以使用ELK可以进行大数量的日志收集和分析”简单画了一下架构图在环境配转载 2021-01-07 09:16:04 · 200 阅读 · 0 评论 -
彻底搞明白这些:二叉树、平衡二叉树、B-Tree、B+Tree
背景一般说MySQL的索引,都清楚其索引主要以B+树为主,此外还有Hash、RTree、FullText。本文简要说明一下MySQL的B+Tree索引,以及和其相关的二叉树、平衡二叉树、B-Tree,相关的知识网上很多,为了方便自己更快、清楚的了解,文本聚合一些内容以及个人的一些理解。说明二叉查找树(BST)概念二叉查找树是基于二分查找法来提高数据查找速度的二叉树的数据结构;特点二叉查找树是采用二分查找法把数据按规则组装成一个树形结构的数据,减少无关数据的检索,提升了数据检索的速转载 2021-01-07 08:53:32 · 196 阅读 · 0 评论 -
SpringBoot中使用注解来实现 Redis 分布式锁
一、业务背景有些业务请求,属于耗时操作,需要加锁,防止后续的并发操作,同时对数据库的数据进行操作,需要避免对之前的业务造成影响。二、分析流程使用Redis作为分布式锁,将锁的状态放到Redis统一维护,解决集群中单机JVM信息不互通的问题,规定操作顺序,保护用户的数据正确。梳理设计流程 新建注解 @interface,在注解里设定入参标志 增加 AOP 切点,扫描特定注解 建立 @Aspect 切面任务,注册 bean 和拦截特定方法 特定方法...转载 2021-01-07 08:47:04 · 298 阅读 · 1 评论 -
自定义注解缓存反射编码转中文
序上一篇讲到了本地缓存字典,那么我是这么用的呢?这接就来分享给大家,先说下我的使用场景,我这边是因为编码转中文太多了,之前定的是用枚举,我想着有些事可以参与程序逻辑的,也建议上缓存。领导没同意,到现在发现不能满足场景使用了,比如文化程度、名族、籍贯,这些都是输入的编码,数据库表也没有存中文冗余,籍贯存的就是身份证前面几位,你可以想想,这用枚举合适吗?之前建议用缓存,组内另一大佬也没说不用。哎,级别也就比我高一点点而已,不过领导喜欢他。他沉着冷静不爱怼领导,我呢,为了一些技术、业务逻辑有时候就是不同意领导的原创 2020-12-31 21:07:54 · 1927 阅读 · 0 评论 -
Caffeine自定义使用配置多本地缓存(启动加载字典数据)
序Caffeine的坑,多的不想说,唯一想说的就是如果配置了特异性缓存,后面就不再默认创建,这点就比较不太友好。不过也不是什么特别大的问题,最多就是我自行多配置1个默认配置的呗。一、引入jar支持<!-- 缓存支持 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</arti原创 2020-12-31 20:29:47 · 3735 阅读 · 0 评论 -
详解本地缓存之王 Caffeine
概要Caffeine[1]是一个高性能,高命中率,低内存占用,near optimal 的本地缓存,简单来说它是 Guava Cache 的优化加强版,有些文章把 Caffeine 称为“新一代的缓存”、“现代缓存之王”。本文将重点讲解 Caffeine 的高性能设计,以及对应部分的源码分析。与 Guava Cache 比较如果你对 Guava Cache 还不理解的话,可以点击这里[2]来看一下我之前写过关于 Guava Cache 的文章。大家都知道,Spring5 即将放弃掉 Gu转载 2020-12-30 09:01:31 · 1522 阅读 · 0 评论 -
微服务架构:注册中心 ZooKeeper、Eureka、Consul 、Nacos 对比!
序 之前总想着自己弄,可是自己毕竟精力有限,工作场景不一定需要。现在是不是的也转载下,很多老师写的是真不错,分享给大家,扩大传播源,让更多的朋友能阅读到,有什么不好的呢?前言服务注册中心本质上是为了解耦服务提供者和服务消费者。对于任何一个微服务,原则上都应存在或者支持多个提供者,这是由微服务的分布式属性决定的。更进一步,为了支持弹性扩缩容特性,一个微服务的提供者的数量和分布往往是动态变化的,也是无法预先确定的。因此,原本在单体应用阶段常用的静态LB机制就不再适用了,需要引入额...转载 2020-12-10 16:06:45 · 283 阅读 · 0 评论 -
工作流Activiti集成构建自有平台方案
序最近以为工作安排,让我研究工作流。说实话这个一直停留在用的阶段,但是能工作流Activiti网上资料也很多,真要基于这个构建自有工作流也是可以的。下面就说说我的方案与试验。一、 可行性经过4天的学习研究,集成试验,以及流程拆解,交互使用体验。做基本的二次开发改造后,是可行的,就是怎么改造、改造程度、使用深度等都决定二次开发的工作量,同时改造是否优秀、简单明确也是需要后续讨论制定最优方案才行。二、 集成方式集成方式有2种:A、 使用Activiti的用户、角色管理方式,这种方式有工作流管理首页原创 2020-07-14 20:18:17 · 3118 阅读 · 0 评论 -
springBoot集成Hbase(spring-data-hadoop-boot版)
序最近开始一步一步走进大数据,当然是作为程序员。今天就来说说Hbase的集成,首先今天先说下通过spring-data-hadoop-boot的集成吧。老规矩,废话不多说,加班快下班了,就抽20分钟分享。一、maven引包<dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-hadoop-boot&l原创 2020-06-06 18:08:34 · 4901 阅读 · 3 评论 -
设备预警规则设计(使用表达式引擎)
序 一位领导一再强调每个人都是产品,确实作为一个多年编码的程序员,我们都需要有这样的格局眼光。之前要求联动预警可以拖拽配置,这里就分享一下个人的设计想法。一、技术实现准备规则解析:使用表达式引擎JEXL(号称目前最快,灵活)拖拽实现:前端说有插件(H5还是很强大)拖拽配置:抽象出一个简易的设计界面(对元素抽象处理)二、界面设计产品御用设计界面Axure用的真差...原创 2020-05-07 18:21:08 · 2563 阅读 · 3 评论 -
最新版SpringBoot2.2.6.RELEASE+SpringCloudHoxton.SR3原跨域配置无效及各种报错
序 上一篇博文就讲到了我的处理cors跨域,分享了关键代码。原springBoot版本2.2.2.RELEASE、springCloud版本Hoxton.SR1,那是年前的最新版本,现在项升级到当前与时俱进,于是问题就来了,升级后eureka注册中心、配置中心、各服务、网关都正常启动,就是上到外网环境就会出现跨域问题,昨天本来是听说使用undertow容器比tomcat、jetty性...原创 2020-05-01 10:18:02 · 5018 阅读 · 5 评论 -
升级springBoot和springCloud版本后gateway网关跨域Filter无效
序 我是年前搭建的微服务版,springBoot版本2.2.2.RELEASE,springCloud版本Hoxton.SR1。原创 2020-04-29 18:26:12 · 5991 阅读 · 5 评论 -
Base64工具类及2点坑
最近公司做疫情通行这块,设备要求图片传base64字符串,就分享下这个工具类,以及里面的一些坑吧,直接上码。package com.xiaotian.bus.util;import com.easylinkin.bm.thirdapi.request.upload.UploadRequest;import com.easylinkin.bm.thirdapi.response.R...原创 2020-03-30 09:54:49 · 697 阅读 · 0 评论 -
OSS存储工具类分享(阿里)
最近在家办公,居然写的还没什么可写的,这是个坏习惯。多次鼓动下,公司终于换上了阿里的OSS存储。我这边也提前做好准备,尽管还不知道apiKey,apiSecret。系统也刚好还没有这样的工具类,先写着备用吧。废话不多说,直接上码。package com.easylinkin.bm.util;import com.aliyun.oss.OSS;import com.aliyun....原创 2020-03-30 09:40:08 · 1331 阅读 · 1 评论 -
中台真的好可以解决一切问题?
作者 |曹春晖来源 | 码农桃花源从 15 年开始,到 19 年现在为止。各大公司都在吹捧中台理念。仿佛中台是业务复杂性的救世主。是某些架构师和 PM 的新出路。各种割韭菜的讲中台的课程层出不穷。当然,吹牛逼的时候大家都是拣好的说,苦逼的东西就只有内部人士知道。中台到底靠谱还是不靠谱,只凭各路英雄的演讲内容,那看起来是靠谱的。先来看看这些公开的观点,再以我(码农桃花源注...转载 2019-10-09 09:09:54 · 331 阅读 · 0 评论