- 博客(165)
- 收藏
- 关注
原创 多租户系统域名化改造实践:从 IP 参数到二级域名访问
本次多租户域名化改造的核心是“租户标识的统一透传与兼容适配”Nginx 层通过map指令高效解析二级域名,实现租户标识的自动提取和优先级控制;前端兼容两种访问方式,统一从响应头获取租户 ID,保证系统无感知切换。改造后既保留了原有 IP + 参数的访问方式,又实现了二级域名直访,显著提升了多租户系统的访问体验和可维护性。
2026-01-23 09:24:40
735
原创 GaussDB(DWS) 地理空间匹配适配
核心任务:基于含精准经纬度坐标的警情数据,通过空间几何计算判定每个警情所属的预设围栏区域,最终输出 “警情信息 - 经纬度 - 围栏标识” 的关联整合结果,为后续区域警情分析、资源调度提供数据支撑。解决:使用的jdbcUrl jdbc:gaussdb://host:port/database?currentSchema=默认模式。原因:使用的jdbcUrl jdbc:gaussdb://host:port/database导致。含具体警情相关信息及对应的经纬度坐标(示例数据如下)
2026-01-23 09:21:09
655
原创 kingbase地理空间匹配适配
核心任务:基于含精准经纬度坐标的警情数据,通过空间几何计算判定每个警情所属的预设围栏区域,最终输出 “警情信息 - 经纬度 - 围栏标识” 的关联整合结果,为后续区域警情分析、资源调度提供数据支撑。证书下载地址https://www.kingbase.com.cn/download.html#authorization?将/home/kingbase/data/etc 下面的证书进行更换。含具体警情相关信息及对应的经纬度坐标(示例数据如下)
2026-01-12 14:08:43
887
原创 yashandb 地理空间匹配适配
核心任务:基于含精准经纬度坐标的警情数据,通过空间几何计算判定每个警情所属的预设围栏区域,最终输出 “警情信息 - 经纬度 - 围栏标识” 的关联整合结果,为后续区域警情分析、资源调度提供数据支撑。❌ 若部署失败:可检查端口 1688 是否被占用、宿主机。含具体警情相关信息及对应的经纬度坐标(示例数据如下)为实现警情案例的区域化管理与精准溯源,需完成。目录权限、Docker 服务是否正常运行。包含围栏唯一名称及区域范围定义,支持。,表示数据库集群部署成功。YashanDB 基于。
2026-01-12 14:06:49
1031
原创 clickhouse 地理空间匹配适配
核心任务:基于含精准经纬度坐标的警情数据,通过空间几何计算判定每个警情所属的预设围栏区域,最终输出 “警情信息 - 经纬度 - 围栏标识” 的关联整合结果,为后续区域警情分析、资源调度提供数据支撑。针对「区域围栏匹配警情信息」场景,设计两张核心表:围栏信息表(存储圆形 / 多边形围栏)、警情信息表(存储警情坐标与详情),表引擎选用 MergeTree 确保查询性能。通过「交叉连接 + 空间判断」筛选出匹配围栏的警情,再通过左连接保留所有警情信息,最终生成包含「警情详情 + 匹配围栏名称」的结果表。
2026-01-08 09:18:28
1036
原创 dm8 地理空间匹配适配
核心任务:基于含精准经纬度坐标的警情数据,通过空间几何计算判定每个警情所属的预设围栏区域,最终输出 “警情信息 - 经纬度 - 围栏标识” 的关联整合结果,为后续区域警情分析、资源调度提供数据支撑。针对「区域围栏匹配警情信息」场景,设计两张核心表:围栏信息表(支持圆形 / 多边形围栏)、警情信息表(存储警情坐标与详情),采用 DM8 默认的行存储引擎(高效支持空间查询)。插入深圳地区典型商圈 / 区域围栏数据,以及对应警情数据,为后续地理匹配做准备。最终生成包含「警情详情 + 匹配围栏名称」的结果表。
2026-01-08 09:16:33
808
原创 doris 地理空间匹配适配
核心任务:基于含精准经纬度坐标的警情数据,通过空间几何计算判定每个警情所属的预设围栏区域,最终输出 “警情信息 - 经纬度 - 围栏标识” 的关联整合结果,为后续区域警情分析、资源调度提供数据支撑。Doris 支持丰富的地理空间函数,基于 WKT(Well-Known Text)格式实现空间数据的存储与计算,满足点、线、面的空间关系判断和距离计算需求。本实战以警情位置匹配地理围栏为场景,实现「点在多边形内」「点在圆形围栏内」两种匹配逻辑。为实现警情案例的区域化管理与精准溯源,需完成。2.2 函数测试示例。
2026-01-06 09:24:47
947
原创 oracle19地理空间匹配适配
核心任务:基于含精准经纬度坐标的警情数据,通过空间几何计算判定每个警情所属的预设围栏区域,最终输出 “警情信息 - 经纬度 - 围栏标识” 的关联整合结果,为后续区域警情分析、资源调度提供数据支撑。优化说明:修复日志查看容器名不一致问题,增加目录提前创建逻辑,避免挂载失败,同时优化脚本可读性和可维护性。含具体警情相关信息及对应的经纬度坐标(示例数据如下)为实现警情案例的区域化管理与精准溯源,需完成。包含围栏唯一名称及区域范围定义,支持。
2026-01-06 09:22:46
732
原创 OpenGauss 5.x 地理空间匹配适配
核心任务:基于含精准经纬度坐标的警情数据,通过空间几何计算判定每个警情所属的预设围栏区域,最终输出 “警情信息 - 经纬度 - 围栏标识” 的关联整合结果,为后续区域警情分析、资源调度提供数据支撑。含具体警情相关信息及对应的经纬度坐标(示例数据如下)为实现警情案例的区域化管理与精准溯源,需完成。包含围栏唯一名称及区域范围定义,支持。
2026-01-05 09:22:27
882
原创 MySQL 5.7 地理空间匹配适配
核心任务:基于含精准经纬度坐标的警情数据,通过空间几何计算判定每个警情所属的预设围栏区域,最终输出 “警情信息 - 经纬度 - 围栏标识” 的关联整合结果,为后续区域警情分析、资源调度提供数据支撑。优化说明:修复日志查看容器名不一致问题,增加目录提前创建逻辑,避免挂载失败,同时优化脚本可读性和可维护性。含具体警情相关信息及对应的经纬度坐标(示例数据如下)为实现警情案例的区域化管理与精准溯源,需完成。包含围栏唯一名称及区域范围定义,支持。
2026-01-05 09:17:33
1005
原创 使用Java将HTML内容转换为Word文档
通过上述方法,我们可以快速实现HTML到Word的转换功能。虽然方案相对简单,但在许多实际项目中都能发挥重要作用。对于更复杂的需求,可以考虑集成专业的文档处理库如Flying Saucer或Docx4j。希望这个小技巧能帮助到正在做类似功能的开发者朋友们!博客地址代码下载下面的markdown-to-word。
2025-12-19 15:33:32
1349
1
原创 Spring Boot WebFlux 实现流式数据传输与断点续传
本文介绍了基于Spring Boot WebFlux的流式数据传输方案,支持断点续传功能。通过Redis存储会话状态和数据片段,结合Reactor的Flux异步处理,实现了AI对话助手在页面刷新后仍能继续输出的效果。核心设计包括:1) Redis存储已生成数据片段和接收进度;2) 异步数据生成避免阻塞;3) 合并历史数据和新数据的响应式流;4) 使用AtomicInteger确保线程安全。该方案有效解决了传统方案中上下文丢失、资源浪费等问题,提升了用户体验。
2025-12-19 15:28:44
1218
4
原创 安装 YashanDB
本文介绍了国产新型数据库YashanDB的快速部署方法,主要包括三部分内容:Docker部署:通过docker-compose方式快速部署YashanDB 23.4版本,提供了完整的部署脚本,包含端口映射、数据卷挂载等关键配置。连接验证:详细说明如何通过yasql工具验证数据库安装结果,查看实例状态,以及通过docker命令启停数据库集群。DBeaver连接:指导如何在DBeaver客户端中配置YashanDB JDBC驱动,包括驱动文件导入、连接参数设置等步骤。文档提供了完整的命令和截图,
2025-06-17 10:20:15
1302
原创 安装ClickHouse
本文详细介绍如何使用Docker快速部署ClickHouse列式数据库,并进行基本测试。主要内容包括:Docker部署:通过docker-compose一键部署ClickHouse 25.4.2.31版本,配置数据库、用户名/密码(123456)、端口映射(8123/9000)和数据持久化。连接验证:通过curl命令验证服务可用性使用浏览器访问http://ip:18123/play进入交互式控制台使用DBeaver工具成功连接基础测试:用户管理(创建/查询/授权)数据库操作(创建/
2025-06-17 10:09:56
1078
原创 23种设计模式
保证一个类只有一个实例,并且提供一个访问该全局访问点它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。实现了创建者和调用者分离,工厂模式分为简单工厂、工厂方法、抽象工厂模式通过代理控制对象的访问,可以在这个对象调用方法之前、调用方法之后去处理/添加新的功能。(也就是AO的P微实现)代理在原有代码乃至原业务流程都不修改的情况下,直接在业务流程中切入新代码,增加新功能,这也和Spring的(面向切面编程)很相似。
2025-05-01 18:00:00
1599
原创 Arthas神器:在线诊断、性能调优、动态改代码,10 分钟定位线上bug
Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。(阿尔萨斯)是阿里开源的Java诊断工具,主打“
2025-05-01 06:00:00
1773
原创 deepseek4j-easy-rag快速入门
向量数据库是一种专门用于存储、管理和查询高维向量数据的数据库,广泛应用于机器学习、人工智能和数据科学领域。它们支持快速相似性搜索,特别适合图像识别、自然语言处理和推荐系统等任务。Milvus:在查询每秒(QPS)方面表现最佳,适合大规模向量相似性搜索,支持多种索引类型。Qdrant:以可扩展性和性能优化著称,适合大规模场景。Weaviate:提供良好的开发体验,性能均衡,适合需要同时处理向量和结构化数据的应用。Chroma:易于使用,适合原型设计和中小型应用。
2025-04-21 09:22:27
1192
原创 deepseek4j-demo快速入门
实现ai对话在你的 中添加以下依赖:2.2.基础配置在 或 中添加必要的配置:2.3. 基础使用示例2.3.1. 流式返回示例2.3.2. 进阶配置示例ChatCompletionRequest 配置构造2.3.3. 多轮会话2.3.4. 同步输出 (非实时响应流)2.4. 前端调试页面see.html3. 测试3.1. chat单元测试点击连接博客地址代码下载下面的deepseek4j-demo
2025-04-21 09:18:55
1106
原创 jdk node redis nginx mysql直接部署
将jdk,node,redis,nginx,mysql 编译后,使用rpm打包,再进行服务部署。现场环境有不少是直接使用rpm包进行安装系统,所以需要将环境进行编译后打包成rpm进行部署。
2025-04-17 11:46:45
643
原创 麒麟ARM64环境部署Puppeteer相关服务
Puppeteer: 是 Google Chrome 的 Headless 版本的一个工具,它提供了一个高级的 API 来控制 Chrome。当项目上遇到无法使用默认的PhantomJS打印时,则需要考虑替代方案,目前市面推荐的是采用“Node+Puppeteer+Chromium”替代(后文均简称Puppeteer)。标准产品默认的后台打印使用PhantomJS技术,这种技术在信创环境支持较弱,同时随着PhantomJS不再维护,其功能在非信创环境下的兼容性也越来越差。当前目录生成test.pdf。
2025-04-17 11:45:50
1384
原创 mybatis-plus自动填充时间的配置类实现
实现默认设置创建者id,创建者用户名,更新者id,更新者用户名,创建时间,更新时间自定义mapperXml sql暂时不会默认更新上述字段博客地址代码下载下面的mybatis-plus-fieldfill。
2024-12-26 17:07:22
1290
原创 mybatis-plus数据库字段加密处理
以下是几种常见的加密处理方法,包括使用AES加密、自定义TypeHandler、配置加密以及使用加密解密插件。AES(Advanced Encryption Standard)是一种广泛使用的对称加密算法。在MyBatis Plus中,可以通过自定义加解密工具类,并在数据持久化和查询时对敏感字段进行加密和解密。优点:缺点:实现步骤:MyBatis提供了TypeHandler机制,允许用户自定义字段与数据库列之间的映射规则。通过自定义TypeHandler,可以在数据持久化和查询时自动对敏感字段进行加密和解密
2024-12-26 17:00:37
1740
原创 jenkins pipeline打包流程
Jenkins Pipeline 是 Jenkins 提供的一种用于持续集成和持续交付(CI/CD)的脚本化流程工具。它允许你通过编写一个 Jenkinsfile 文件来定义整个构建、测试和部署的流程。本文介绍打包springcloud项目,react项目为docker镜像。
2024-12-13 10:14:17
2025
原创 Jenkins参数化构建详解(This project is parameterized)
本文详细介绍了Jenkins中不同类型的参数化构建方法,包括字符串、选项、多行文本、布尔值和git分支参数的配置,以及如何使用ActiveChoiceParameter实现动态获取参数选项。通过示例展示了传统方法和声明式pipeline的语法。
2024-12-12 17:00:11
3992
原创 jenkins harbor安装
Docker私有仓库是用于存储和管理Docker镜像的私有存储库。Docker默认会有一个公共的仓库Docker Hub,而与Docker Hub不同,私有仓库是受限访问的,只有授权用户才能够上传. 下载和管理其中的镜像。这种私有仓库可以部署在本地云环境中,用于组织内部开发. 测试和生产环境中的容器镜像管理。保证数据安全性。Harbor是一个开源的企业级Docker Registry服务,它提供了一个安全. 可信赖的仓库来存储和管理Docker镜像。Harbor翻译为中文名称为"庇护;居住;
2024-12-12 16:51:03
1053
原创 麒麟x86启动docker tomcat7报错
宿主机Kylin-Server-10-SP2-x86启动docker容器报错。 library initialization failed - unable to allocate file descriptor table - out of memory
2024-12-03 09:26:55
451
原创 camunda开源流程引擎数据库表结构详细介绍
Camunda bpm流程引擎的数据库由多个表组成,表名都以ACT开头,第二部分是说明表用途的两字符标识。笔者在工作中用的Camunda7.19版本共49张表。'RE’表示流程资源存储,这个前缀的表包含了流程定义和流程静态资源(图片,规则等),共5张表。ACT_RE_DEPLOYMENT与ACT_RE_PROCDEF之间通过部署ID相关联,表示哪个部署包含了哪个流程定义。
2024-11-29 17:57:38
1949
原创 camunda流程引擎 API 接口介绍
其中,流程定义是 BPMN 2.0流程对应的 Java 对象,它代表了流程每一步的结构和行为;开始表单是在流程开始前显示给用户的表单,而任务表单则是在用户准备要完成任务的时候显示的表单。当执行流程的时候,引擎会收集到大量的数据(收集哪些数据是可配的),比如流程实例的开始事件、谁做了某项任务、花了多长时间完成这个任务、流程实例执行经过了哪些路径等。流程变量是特定于流程实例的数据,它可以在流程的各种构造中使用。部署流程意味着这个部署包会被首先上传到流程引擎,流程引擎会检查并解析所有的流程,然后再存入数据库。
2024-11-29 17:56:57
1314
原创 camunda多租户实现流程
多租户考虑的是单个 Camunda 安装应该为多个租户提供服务的情况。对于每个租户,应做出一定的隔离保证。例如,一个租户的流程实例不应干扰另一租户的流程实例。多租户可以通过三种不同的方式实现。一种方法是每个租户使用。另一种方法是仅使用一个流程引擎并将数据与相关联。第三种。这三种方式在数据隔离级别、维护工作量和可扩展性方面有所不同。
2024-11-29 17:46:20
1174
原创 Spring Boot 项目集成camunda流程引擎
使用camunda开源工作流引擎有:通过docker运行、使用springboot集成、部署camunda发行包、基于源代码编译运行等多种方式。文本重点介绍如何在Spring Boot应用程序中如何集成Camunda Platform开源流程平台,这也是项目中最为常见的一种使用方式。在本教程中,我们假设您熟悉 Java Web 应用程序开发和 Spring Boot 的基础知识。前提条件是您已经安装了 Eclipse/IDEA等Java开发工具和 Camunda Modeler流程设计器。
2024-11-29 15:19:17
3358
原创 Springboot+mybatis-plus+dynamic-datasource+继承DynamicRoutingDataSource切换数据源 多租户
dynamic-datasource 跨库进行切换数据源可以用DynamicDataSourceContextHolder.push()在过滤器[filter]里切换拦截器里切换数据源方法内部硬编码切换通过service,mapper加注解进行切换@DS (不推荐,有切面没有切成功的,如本类调用自己的方法)重写DynamicRoutingDataSource选择器,自定义上下文获取租户id获取对应的DataSource。
2024-05-10 09:51:20
1947
1
原创 Springboot+mybatis-plus+dynamic-datasource+Hikari 手动切换数据源
苞米豆团队支持多种数据源切换方案,核心都是基于。本文我们利用filter和拦截器,以及方法中硬编码和注解 这四种方式动态手动切换数据源。在使用 dynamic-datasource 库时,您可以通过过滤器(Filter)来实现在请求处理过程中切换数据源。下面是一种基本的实现方式:创建 DynamicDataSourceFilter 在过滤器的 doFilter 方法中,获取当前请求的上下文信息,例如请求参数、请求头等。
2024-05-10 09:46:11
2956
原创 docker 部署haproxy cpu占用特别高
HAProxy(High Availability Proxy)是一个开源的高性能负载均衡器和反向代理服务器。它使用C语言编写,具备高并发(一万以上)和高性能的特点,特别适用于需要处理大量并发连接的场景。
2024-01-05 09:43:17
1494
2
原创 redis 三主六从高可用dockerswarm高级版(不固定ip)
此博客解决,redis加入集群后,是用于停掉后重启,将nodes.conf中的旧的Ip替换为新的IP,从而达到不会因为IP变化导致集群无法正常使用,以及使用docker stack 启动多个副本 ,自动化脚本加入集群跨主机安装rediscluster集群,本文采用swarm的方式,使用同一个网络,通过对挂载目录的使配置文件互相同步,从而让redis集群失败自重启达到集群的高可用。
2024-01-03 16:51:33
1498
原创 redis 三主六从高可用docker(不固定ip)
此博客解决,redis加入集群后,是用于停掉后重启,将nodes.conf中的旧的Ip替换为新的IP,从而达到不会因为IP变化导致集群无法正常使用跨主机安装rediscluster集群,本文采用swarm的方式,使用同一个网络,然后分别在对应的机器启动。
2023-12-28 10:18:25
935
2
原创 docker部署mysql主主备份 haproxy代理(swarm)
mysql 连接方式 haproxy:3306 admin/hancloud1234!复制下面的sh命令即可获取第二步所需的安装文件。出现下面的日志代表启动成功。出现下面的日志代表启动成功。
2023-12-22 10:23:44
1119
原创 docker部署mysql主主备份(keepalived)跨主机自动切换
主主复制即在两台MySQL主机内都可以变更数据,而且另外一台主机也会做出相应的变更。聪明的你也许已经想到该怎么实现了。只不过在配置的时候我们需要注意一些问题,例如, 两台MySQL之间互为彼此的从库,同时又是主库。这种方案,既做到了访问量的压力分流,同时也解决了“单点故障”问题。任何一台故障,都还有另外一套可供使用的服务。执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化。重复,server-id不能重复等等。主主复制----->互为主从。,防止主服务器状态值变化。
2023-12-22 08:47:10
2590
3
原创 docker 安装keepalived
Keepalived 是 Linux 下一个轻量级别的高可用解决方案。高可用(High Avalilability,HA),其实两种不同的含义:广义来讲,是指整个系统的高可用行,狭义的来讲就是之主机的冗余和接管,它与 HeartBeat RoseHA 实现相同类似的功能,都可以实现服务或者网络的高可用,但是又有差别,HeartBeat 是一个专业的、功能完善的高可用软件,它提供了HA 软件所需的基本功能,比如:心跳检测、资源接管,检测集群中的服务,在集群节点转移共享IP地址的所有者等等。
2023-12-14 09:04:02
3718
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅