自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 gradle指定子项目的目录

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

2023-12-19 11:31:09 407

原创 spring boot 中动态注册mybatis mapper

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

2023-12-14 16:13:42 273

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

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

2023-10-29 22:48:13 525

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

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

2023-09-13 10:37:58 396

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

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

2023-09-13 09:59:58 468

原创 一款多租户开发框架

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

2023-08-15 17:30:49 277

原创 Go 框架推荐

【代码】Go 框架推荐。

2023-07-17 14:54:49 632

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

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

2023-06-21 11:33:01 1729

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

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

2023-06-07 17:51:02 508

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

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

2023-05-11 09:25:43 307 1

原创 Kafka Kraft 单节点安装

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

2023-04-04 20:19:35 270

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

多租户业务云平台设计

2023-01-31 17:45:10 89

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

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

2022-12-06 13:55:13 983

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

nacos替换MySQL为Postgresql

2022-12-03 21:39:18 650

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

k8s 以sidecar形式部署java应用

2022-07-05 10:17:19 548

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

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

2022-05-26 23:21:10 200

原创 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 1294 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 5166

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

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

2022-01-14 10:49:44 551

原创 自定义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 2962

原创 修改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 782

原创 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 5371 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 7411

原创 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 1697 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 603

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

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

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

2021-05-18 22:30:38 500 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 1044 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 663

原创 优化SpringCloud本地开发方式

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

2021-03-13 09:49:19 669

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

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

2020-12-16 13:09:41 785

原创 json数据构造神器jsontemplate和javafaker结合

构造json数据在工作中我们有时需要生成测试数据. 最好要符合业务格式等. 从GitHub上发现了随机构造json的一个类库. 与javafaker结合使用效果更好.githubjavafakerjsontemplatejsontemplate首先需要新建一个json模板基础用法就不再贴了. 在github上有例子.{name: @s(length=8),age: @i(min=0,max=1),fullName: $fullName,city: $city}根据javafa

2020-11-16 09:49:31 556

原创 zk 启用kerberos后 hbase连接不上问题

背景当cdh集群启动kerberos认证后. 启动hbase是hmaster 死活起不来. 思考可能是认证问题. 使用getAcl 看hbase节点的权限发现hbase用户并没有可操作的权限. 需要给hbase增加权限. 主要出现 KeeperErrorCode = NoAuth for /hbase/flush-table-proc/acquired等错误流程为zk增加一个超级用户https://www.jianshu.com/p/373d52375a65使用超级用户为hbase目

2020-09-27 16:26:43 844 1

原创 Phoneix 写入优化

phoenix 写入优化phoenix是HBase上的SQL组件. 提供了基于jdbc访问HBase的方式. 在写入数据时可以通过phoenix的SQL将数据写入hbase . phoenix 提供了许多特性. 列编码压缩等. 但是在压测写入的时候发现了一些问题. 主要是写入性能不高. 我们主要是消费rabbitmq的数据然后通过phoenix再写入到hbase. 压测时每秒只能写入1700条左右. 经过以下调整提高到了7000每秒. 所以开始查找问题.总结了一下几点.表元数据缓存UPDATE_CAC

2020-09-24 13:47:30 1371

原创 spring cloud gateway 请求流程分析

getaway 调用ribbon流程org.springframework.cloud.client.loadbalancer.ServiceInstanceChooser#chooseorg.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient#chooseorg.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient#getServer(java.lang.S

2020-08-28 20:56:52 1209

原创 Hadoop使用Lzo 压缩时需要注意的点

环境postgrescdh6.3.2从pg从导出数据写入到hdfs上. 写入时使用lzo对数据进行压缩遇到的问题写入可以成功.但是使用lzo的库创建索引提示Invalid LZO header . 但是在linux上lzo 命令压缩文件然后上传到hdfs是可以的.思考是lzo是不支持流式压缩的.解决通过看hadoop压缩类CompressionOutputStream 发现其子类有BlockCompressorStream 注释说它与基于“基于块”的压缩算法一起工作,而不是*基于流的压缩

2020-07-31 15:35:25 566

原创 HBase多表 bulkLoad

hbase 中快速导入大数据量可以使用bulkload 但是官方只有单表的load的相关案例. 经过查看一些源码MultiTableHFileOutputFormat可以支持多表bulkloadexamplepackage com.cc.example;import org.apache.commons.lang3.StringUtils;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileSys

2020-07-09 15:17:08 573 3

原创 HBASE hbck2 解决 rit

配置HBCK2git clone https://github.com/apache/hbase-operator-tools.git --depth 1mvn clean package -Dmaven.skip.test=trueCDH 集群的话将其上传至/opt/cloudera/parcels/CDH/lib/hbase/lib路径下region卡在OPENING/CLOSING 状态CDH6.3.2 HBase 2.1.0 环境当region卡在OPENING等状态. 需要用hbck

2020-05-13 14:59:45 823

原创 Rabbitmq 消息可靠性总结

Rabbitmq 消息可靠性rabbitmq Serverexchange 持久化queque 持久化message 持久化生产者消费者生产者publisher-confirms: true # 关于可靠性投递的配置.消息到达broker的exchangepublisher-returns: true # 关于可靠性投递的配置. 消息到达queue事务性事务机制可以保证消息一定到达服务器. 但是这种方式性能不高消费者acknowledge-mode: auto #

2020-05-11 16:50:12 202

原创 使用redis zset做流式数据预聚合统计

IoT场景流计算在IoT场景有时我们想看某个设备的每小时/每天的工时信息. 电压的平均值.油耗的总值 平均值 等这时我们可以用一些流计算框架来做例如flink sparkstream 等. 但是如果用flink来做的话 每台设备一个时间窗口 如果设备量很多十万 二十万的话窗口会很多.会存在窗口风暴的问题.Redis 流计算如果说我们只想看某设备每天的工时信息.不妨也可以使用redis 的 ...

2020-05-01 11:51:15 1672

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

linux下搭建开发环境

2016-03-11

centos6.5安装

从虚拟机到centos的安装

2016-03-11

struts2AndUploadify集成

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

2016-01-20

空空如也

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

TA关注的人

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