自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(173)
  • 资源 (3)
  • 收藏
  • 关注

原创 解决RedisTemplate的json反序列泛型丢失问题

Redis反序列化类型转换问题及解决方案 在使用RedisTemplate存储对象时,使用GenericJackson2JsonRedisSerializer可能引发反序列化时类型转换异常(LinkedHashMap无法转具体类型)。本文提出了三种解决方案: 类型注解方案:通过ObjectMapper激活类型注解,但会增加存储空间、降低可读性; 二次转换方案:先获取Object再转换,简单但影响性能; 动态类型方案:利用ScopeValue传递类型信息,需要改造序列化器但性能较好。 推荐根据性能需求选择方案

2025-05-21 17:25:27 443

原创 如何绕过myabtis-plus的逻辑删除条件

mp中所有方法都会带上逻辑删除,如果启用了逻辑删除,有时候我们需要忽略逻辑删除.改如何实现。

2025-04-05 21:20:19 267 1

原创 记knife4j的Controller接口不能排序的问题

在使用knife4j构建接口文档时有时需要Controller接口级别的排序. 在使用过程中发现接口不能排序.排查发现如下问题,相关框架是springboot3 + sprind doc。

2025-04-05 11:54:57 206 1

原创 koupleless 合并多个微服务应用到一个应用实例(包含springcloud gateway)

Koupleless 是一种模块化的 Serverless 技术解决方案。基础原理是拆分成了基座+模块的概念。spring cloud gateway是webflux 和tomcat 部署到一起需要修改一些东西,基座需要引入。

2025-03-17 11:23:11 529

原创 K8s环境下使用sidecar模式对EMQX的exhook.proto 进行流量代理

对于在k8s的集群的来说也是支持的,因为每个pod都有一个sidecar对于sidecar 也可以动态升级,不影响主容器因每个pod都有一个sidecar,所有挂掉一台不会影响emqx集群github。

2024-10-12 11:38:36 620 1

原创 spring boot jar 分离自动部署脚本

远程部署时spring boot 包,比较大。可以采用依赖库和业务包分离的方式。提供一个脚本进行自动部署。

2024-09-30 10:41:05 614

原创 spring boot 3.2.x 使用CDS加速启动

spring boot 启动加速,类共享模式

2024-07-11 11:08:25 647

原创 使用javassist对类做字节码增强

在日常开发中我们依赖的三方库里的类是无法改动的. 但可以使用javassist 在启动时对类的字节码做改动.达到修改类的作用。利用javassist 可以将方法的入参和返回值打印出来.在启动之前对类的字节码做修改。

2024-05-09 16:16:13 275

原创 在spring中使用bytebuddy 对bean做Aop拦截

拦截spring 中的某个bean拦截其方法的调用。在其前后做一些类似于aop的操作。

2024-05-06 16:10:00 832 1

原创 gradle指定子项目的目录

【代码】gradle指定子项目的目录。

2023-12-19 11:31:09 546

原创 spring boot 中动态注册mybatis mapper

mapper不仅要注册到mybatis中还需要注册到spring 里。这样可以将某些业务单独封装成业务组件,项目中开箱即用。

2023-12-14 16:13:42 517

原创 gradle多模块依赖管理最佳实践

gradle 多模块依赖管理最佳实践

2023-10-29 22:48:13 922

原创 时序数据库的关键技术点总结

SQL解析skiplist内存合并,有序落盘LRU 时序文件索引缓存。

2023-09-13 10:37:58 493

原创 Spring Boot 事务管理与myabtis的事务执行过程分析

多数据源下要保证SqlSessionFactory和DataSourceTransactionManager的数据源用的同一个。如果在原来的事务下再开线程做业务操作,则事务和主线程事务是不同的(连接不同)

2023-09-13 09:59:58 549

原创 一款多租户开发框架

是一个基于springboot的多租户的开发神器. 包含了多租户场景下业务封装和组件抽象。

2023-08-15 17:30:49 398

原创 Go 框架推荐

【代码】Go 框架推荐。

2023-07-17 14:54:49 718

原创 HBase 遇到的问题以及处理

每次合并后,如合并 A 和 C,HBase 将开始对 RegionD 进行压缩。这种场景下,和以上的处理方式相同,需要注意的是这Region进行Compact的时候不能合并成功,在hbase shell 进行合并后,可以观察HMaster的日志,如果最终可以合并成功,则不会出现error日志信息,如果遇到始终不能合并的Region,可以先尝试将此Region下线掉(unassign region),再次上线(assign region),再执行merge操作。可以看到属于该表的每个区域的开始键/结束键。

2023-06-21 11:33:01 2171

原创 spring boot 使用gradle 构建不包含依赖的jar包,独立制定jar路径

【代码】spring boot 使用gradle 构建不包含依赖的jar包,独立制定jar路径。

2023-06-07 17:51:02 1184

原创 SpringCloudStream配置Rabbitmq的延迟队列配置

使用springCloudStream实现Rabbitmq的延迟队列主要在配置如何配置。Rabbitmq需要安装延迟队列插件安装延迟插件。

2023-05-11 09:25:43 441

原创 Kafka Kraft 单节点安装

【代码】Kafka Kraft 单节点安装。

2023-04-04 20:19:35 388

原创 (idea) 多租户多条产品线架构设计

多租户业务云平台设计

2023-01-31 17:45:10 142

原创 Spring 6.x 的 AoT 相关支持的注解

Spring 6.x 与 Spring Boot 3.x 对AoT的支持的相关内容

2022-12-06 13:55:13 1368

原创 使用javaagent替换nacos数据库MySQL到Postgresql

nacos替换MySQL为Postgresql

2022-12-03 21:39:18 774

原创 k8s 以sidecar的模式部署java应用.

k8s 以sidecar形式部署java应用

2022-07-05 10:17:19 753

原创 轻量级Master-Worker 模型实现多线程的ETL

背景在业务开发中.通常我们会遇到将数据库中的某些数据转换成另一种数据.即 ETL, 一般我们会把这个ETL过程改成多线程的. 已提高处理速度. 本文总结一种方法进行多线程ETL的方法.抽象使用生产者和消费者模型(类似内存消息队列)+多线程模式抽象,生产者: Producer抽取数据的抽象, 即数据产生端.容器: Container暂存生产者锁产生的数据. 等待消费者来拉取数据消费者: Consumer负责拉取容器的数据. 然后由Master分派给具体的Worker来执行管理者 Mast

2022-05-26 23:21:10 267

原创 postgresql jdbc getGeneratedKeys 方法返回主键

最近在做java agent 将xxl-job 迁移到postgresql时发现在 pg 的jdbc 驱动中 getGeneratedKeys 的方法和mysql中返回主键的实现有所区别pg的主键是bigserial mysql主键autoincrment例如: pg与 mybatis中 如果没有keyColumn="id" 这一行, 是不能返回id的. 但是mysql是可以的查看mybatis源码得知org.apache.ibatis.executor.statement.PreparedStat

2022-05-06 11:11:44 1470 1

原创 macOS 下编译TDengine

切换到一个最新的tag上git clone https://github.com/taosdata/TDengine.gitgit checkout ver-2.4.0.10git checkout -b ver-2.4.0.10 ver-2.4.0.10git submodule update --init --recursivemkdir debug && cd debugcmake .. && cmake --build .需要安装cmake等..

2022-04-06 14:00:51 5396

原创 spring-kafka 自定义序列化方式

配置类 @Bean KafkaDefaultKafkaProducerFactoryCustomizer kafkaDefaultKafkaProducerFactoryCustomizer() { return new KafkaDefaultKafkaProducerFactoryCustomizer(objectMapper()); } @Bean KafkaDefaultKafkaConsumerFactoryCustomizer de

2022-01-14 10:49:44 673

原创 自定义swagger的basepath

自定义basePathnew Docket(DocumentationType.SWAGGER_2).pathProvider(new IPathProvider(pathProperties))自定义PathProviderpublic class IPathProvider implements PathProvider { private PathProperties pathProperties; public IPathProvider(PathPr

2021-12-19 15:14:26 3309

原创 修改Swagger2ControllerWebMvc 的返回值.

swagger Swagger2ControllerWebMvc 返回值修改有些场景下相对swagger-doc 返回的文档信息做些增强等. 但pringfox.documentation.swagger.v2.path 无法自定义controller , 所以可以使用切面方式拦截下最后序列化的地方.序列化@Aspect@Component@AllArgsConstructorpublic class SwaggerAspect { private final ServerPrope

2021-11-30 15:36:14 997

原创 Istio 集成 Nacos 作为注册中心

springboot + nacos + istioserver 配置nacos.discovery.server-addr=192.168.27.173:8848server.port=10016spring.application.name=mesh-servernacos.discovery.auto-register=truenacos.discovery.register.group-name=group1nacos.discovery.register.healthy=true

2021-09-22 15:38:17 6207 8

原创 K8s 安装使用 apisix

apisixApache APISIX是一个动态的、实时的、高性能的 API 网关. 本文主要测试在k8s环境下使用apisix-ingress-controlle使用Helm Chart安装所有的pod,svc等都放到了default的namespace下apisix$ helm repo add apisix https://charts.apiseven.com$ helm repo update$ helm install apisix apisix/apisixapisix-da

2021-08-23 21:18:37 7860

原创 SpringCloud 微服务客户端服务列表缓存优化. nacos2.0.2 与 spring-cloud-loadbalancer

获取所有服务列表com.alibaba.cloud.nacos.discovery.NacosDiscoveryClient#getServices发一个grpc请求获取服务列表根据serviceId获取服务列表com.alibaba.nacos.client.naming.NacosNamingService#selectInstances()com.alibaba.nacos.client.naming.cache.ServiceInfoHolder#getServiceInfocom

2021-08-10 15:29:20 2093 3

原创 K8s 作为 SpringCloud 微服务的开发环境

云原生下本地开发最近把公司微服务开发环境都迁移到k8s中. 之前部署在一台实体机上面. 记录下踩到的坑技术栈Nacos 2.0.2SpringCloud 2020.01问题nacos 2.0.2 使用grpc 需要暴露更多端口. 且需要tcp代理. ingress 解决不了问题.本地服务调用与开发环境通用服务之间服务调用的网络隔离问题.nacos 问题.使用 kubefwd 解决服务注册地址直接写 k8s 部署nacos的 service name, 再使用kubefwd将ser

2021-08-02 16:56:51 699

原创 rabbitmq-cli-consumer 命令行消费功能

rabbtimq-cli-consumer使用kafka是可以使用kafka的cli来消费topic的数据. 在rabbtimq中官方是不支持的. 可以使用 命令行消费来解决 download使用方式executable使用此参数指定一个可执行的文件. 例如php. 可以将消费到的数据写到一个文件中#!/usr/bin/env php<?php// This contains first argument$message = $argv[1];// Decode to get o

2021-06-20 18:13:59 669 2

原创 多租户场景中seata的TCC模式优化

seata与多租户多租户模式为一个租户一个DataSource 隔离性比较好. 同时对业务拆分了微服务后就带来了分布式事务问题. 可以使用seata来解决这类问题.测试过程中对AT模式没有什么问题. 但是在TCC模式下commit/cache会丢失数据源的信息所以要在执行之前要切换当前租户.TCC模式下多数据源问题分析....

2021-05-18 22:30:38 599 2

原创 golang连接开启kerberos的phoenix query server服务端

phoenix query server其他语言可以连接phoenix 可以通过 phoenix query server 连接calcite-avatica-go新建项目Phoenix-Golang项目go.modmodule Phoenix-Golanggo 1.15require github.com/apache/calcite-avatica-go/v5 v5.0.0 // indirectexamplepackage mainimport ( "database

2021-05-18 22:14:21 1204 1

原创 swagger 生产环境关闭的另一个方案

方案一使用开关.通过swagger的Docke的的api来关闭. 但是还是会将swagger的jar包打到生产的jar中.其入侵性依然存在.方案二将swagger配置抽取成一个springboot starter打包时根据参数控制是否将此starter在运行时打到生产的jar中.maven 的profile可以直接控制. 在gradle中我们可以这样做plugins { id 'org.springframework.boot'}def profile = System.get

2021-04-08 17:08:00 792

原创 优化SpringCloud本地开发方式

SpringCloud本地开发本地启动多个服务新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入本地启动多个服务你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器,

2021-03-13 09:49:19 784

原创 Spring聚合多个服务的接口数据

背景有时我们在项目中需要聚合多个接口成一个接口给前端提供数据. 使用并行会提升性能. 在spring 中提供的@Async 可以异步执行.编码 CompletableFuture<AppMachineInfoV3Dto> todaySummaryCount = machineTodaySummaryAggregatorService .getMachineTodayInfo(licenseId); CompletableFuture<LG

2020-12-16 13:09:41 860

centos6.5安装

从虚拟机到centos的安装

2016-03-11

linux下开发环境jdk,tomcat.idea,git,maven,postgresql,rabbitmq

linux下搭建开发环境

2016-03-11

struts2AndUploadify集成

多文件上传和struts集成,解决上传文件时表单跟着提交.

2016-01-20

空空如也

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

TA关注的人

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