- 博客(144)
- 收藏
- 关注
原创 oracle值sql记录
有张原始表tschedule 和新表bjcodechange ,需要将原始表的compeny_code字段和bjcodechange 的oldwindcode 进行关联替换成bjcodechange表的newwindcode字段。但是有特殊字符的数据如下 注意测试原始表的compeny_code字段的内容许如下所示。由于本人sql比较薄弱 将一些常用又使用的sql语句记录与大家分享。步骤1:拆分后的中间数据 (split_data)无特殊字符的查询很简单 如下。
2025-04-17 14:01:14
388
原创 《DeepSeek RAG 增强检索知识库系统》Ollama RAG 知识库上传、解析和验证之四
存储到PostgreSQL向量库 : 将向量化后的文本片段及其标记存储到 PostgreSQL 向量库中。PostgreSQL 提供了高效的向量索引和搜索功能,能够支持大规模的文本数据存储和检索。向量化 : 使用 Spring AI 提供的向量模型将标记后的文本片段转换为向量表示。3:TokenTextSplitter : 用于将解析后的文本内容拆分为更小的片段,便于后续处理和存储。4:PostgreSQL向量库 : 用于存储处理后的文本向量数据,支持高效的相似性搜索和检索。
2025-04-08 10:50:16
87
原创 《DeepSeek RAG 增强检索知识库系统》Ollama DeepSeek 流式应答页面对接之三
主要我们可以清楚地表达编写页面诉求,AI 工具就可以非常准确且迅速的完成代码的实现。这里我们可以选择的 AI 有很多,包括;注意:原本的 json 文件很大,不适合全部发给 openai。自从有了 AI 工具以后,所有以前头疼前端页面开发的后端程序员👨🏻💻,都漏出了友善😊微笑!要告诉 AI 你的接口请求方式。虽然有AI可以帮助生成,不过有时候并不能一次就成功。// 使用EventSource接收流式响应。// 添加初始AI消息占位。// 构建API URL。
2025-04-07 17:27:17
82
原创 《DeepSeek RAG 增强检索知识库系统》Ollama DeepSeek 流式应答接口实现之二
对接 AI 的方式有很多,比如;AI 官网提供的 SDK、自研 SDK 组件、one-api 服务类统一包装接口,其中自研类 SDK 已经在星球 openai 项目对接 chatglm、chatgpt 的时候进行设计,为了差异化学习到不同技术,本项目会采用 Spring AI 框架进行对接。Project Reactor 是一个用于构建响应式应用程序的库,Flux 是 Reactor 中的一个核心组件,用于表示一个异步序列,可以发出 0 到 N 个元素,并且可以是有限的或无限的流。可以看到接口的反馈结果。
2025-04-07 17:14:33
76
原创 《DeepSeek RAG 增强检索知识库系统》初始化知识库工程&提交代码之一
如果安装过程中比较慢,推荐使用 docker-compose -f docker-compose-environment-aliyun.yml up -d 带有镜像地址方式安装。1.Windows + wsl2,本地使用 powershell 切换到工程文件夹,执行 docker-compose -f docker-compose-environment-aliyun.yml up -d。课程中有云服务器的操作教程,部署起来更方便。在对应的工程代码,进入工程下 docs/dev-ops,执行安装脚本。
2025-04-07 17:07:25
160
原创 Git 使用说明和配置
因为进入公司后,就不只是你一个人在一个工程上写代码,而是所有这个项目组的伙伴都需要在这个工程上写代码,大家要在统一的Git的规范完成代码开发和提交。只要你的代码是通过 Git 检出的,那么通过配置 Git 的 IntelliJ IDEA 打开工程,就会自动的被 Git 管理。zip 下载的代码,只是当前分支的,下载后用 IntelliJ IDEA 打开也没有 Git 标识,不能进行仓库的pull、push、checkout等操作。因为我们所有的都是合并到 test 分支,所以 test 分支丢失也没问题。
2025-04-07 13:33:35
736
原创 spring之添加freemarker模版熏染
公司在做一些基础的功能 不需要重复去操作 比如说单表的增删改查业务代码从controller->service->dao层的相关代码都可以不用程序员去手动编写每一行代码,能更好的利用工具很好的生成。初始化不同数据库链接方式。
2025-03-31 15:11:29
400
原创 DeepSeek部署
当前测试环境部署的DeepSeek(简称DS)采用Ollama(用于多种模型集成运行的工具)加载DeepSeek-R1-Distill-Qwen-14B方式。api接入dify调用ds示例:http请求头http请求体数据API秘钥可通过在dify如下方式创建(先创建和发布聊天助手)Ollama服务:Ollama 是一个开源工具,专为在本地计算机上快速部署和运行大型语言模型(LLMs)而设计。其目标是简化模型的本地化使用流程,尤其适合开发者、研究人员及对隐私敏感的用户.
2025-03-05 18:12:02
147
原创 AI大模型之一 GodeGPT调用Dify+DeepSeek属于自己私域模型
提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。该项目将 Dify API 转换为 OpenAI API 格式,让您可以在首选的 OpenAI 客户端中访问 Dify 的 LLM、知识库、工具和工作流程。特征: 将 Dify API 转换为 OpenAI API 支持推流和拦截 在 dify 上支持聊天、完成、代理和工作流机器人 API。
2025-03-03 15:24:07
1007
原创 docker拉取镜像超时的解决方案
在使用docker拉取镜像的时候 会出现一直尝试拉取到超时退出 网上很多提供的公开仓库镜像源 配置到json的docker文件还是不行于是改用其他方案 通过购买的云服务厂商提供的镜像地址已解决问题 如下记录解决问题的过程。
2025-02-26 10:39:17
639
原创 FastExcel的使用
FastExcel 是一款基于 Java 的开源库,旨在提供快速、简洁且能解决大文件内存溢出问题的 Excel 处理工具。它兼容 EasyExcel,提供性能优化、bug 修复,并新增了如读取指定行数和将 Excel 转换为 PDF 的功能。
2025-01-24 15:53:40
1068
原创 python爬虫框架Scrapy简介
Scrapy 是基于 Python 的一个非常流行的网络爬虫框架,可以用来抓取 Web 站点并从页面中提取结构化的数据。下图展示了 Scrapy 的基本架构,其中包含了主要组件和系统的数据处理流程(图中带数字的红色箭头)。
2025-01-23 10:04:31
2464
2
原创 python框架之Django使用
稍具规模的软件系统都会使用MVC架构(或者是从MVC演进出的其他架构),Django项目中我们称之为MTV,MTV中的M跟MVC中的M没有区别,就是代表数据的模型,T代表了网页模板(显示数据的视图),而V代表了视图函数,在Django框架中,视图函数和Django框架本身一起扮演了MVC中C的角色。Web开发的早期阶段,开发者需要手动编写每个页面,例如一个新闻门户网站,每天都要修改它的HTML页面,随着网站规模和体量的增大,这种做法一定是非常糟糕的。Python的Web框架有上百个,比它的关键字还要多。
2025-01-22 14:58:11
855
原创 python操作mysql
我们推荐大家使用纯 Python 的三方库pymysql,因为它更容易安装成功。下面我们仍然以之前创建的名为hrs的数据库为例,为大家演示如何通过 Python 程序操作 MySQL 数据库实现数据持久化操作。首先,我们可以在命令行或者 PyCharm 的终端中通过下面的命令安装pymysql,如果需要接入 MySQL 8,还需要安装一个名为cryptography的三方库来支持 MySQL 8 的密码认证方式。创建链接—>获取游标---->发出sql---->结果执行---->关闭连接。
2025-01-22 10:52:02
1605
原创 深夜把玩 ApiPost,分享细腻的体验!
ApiPost 是一款帮助研发和测试人员进行接口开发调试的工具和服务,之所以说它是服务,因为它不只是提供基本接口的调用功能,还包括把接口信息push到云平台生成接口文档(支持私有化部署)让大家共同维护和使用,也可以允许协同的方式进行维护接口、调试接口、使用接口,与此同时还集成了接口 Mock、JMeter 的相关功能。那这样情况咋办,其实也好办,就是前端小伙伴通过后端研发提交的接口信息、描述字段,来 Mock 出接口数据,有了一个简单的数据调用,前端同学就可以与后端同学一起动工了。
2025-01-21 14:16:49
801
原创 谁说明天上线,这货压根不知道开发流程!
互联网中一般中大型项目的开发过程,涉及的流程一般较多,也需要合理的把控。否则可能会出现一些过程中的风险,导致项目不能如期上线。当然也并不是所有项目都需要这样处理,例如一些小功能的迭代和简单需求的开发,可以简化流程,快速迭代。盖茅坑、猪圈、三居室还是不同的,不能一概而论做好技术分析、复盘、总结、归纳,沉淀出的技术资料非常有价值,既可以把项目开发经验传承给新人,也可以让所有人做好各自的技术成长。并且通过复盘和总结,又可以提炼出更多新的思路和提升技术氛围。
2025-01-21 11:15:02
742
原创 代码评审的重要性
而是要有一些非常友好的提示,并且在服务端的流程里,有一定的补偿机制,来保证最终的调用成功,或者逆反。直接带来的结果可能包括;很多时候因为你,走神、疏忽、手滑,写出来的错误代码,IntelliJ IDEA,都会给你警告⚠提示,只是你,没有去看、没有去看、没有去看!这句话是我经常用的,因为我们编程很多时候都是在处理异常流程,正常流程往往并不难,难的是分析出这段开发的代码有多少异常流程有没有处理。3:需求分支,也是个人开发的分支,同一个需求下,大家在这个分支写代码,当然也可能这个系统模块的分支就一个人在开发。
2025-01-21 10:03:03
760
原创 python爬取指定网站的邮箱-多线程
最近利用工作之余时间创建了个专属的群,给大家接单也多一份外快,知道的人也多起来了。一次经过朋友的介绍说有个需求:获取深圳中心,深圳外国语学校等高校的海外录取情况,看到家长为了孩子的前途,用上了科技的狠活。我决定帮助父母实现这一愿景,于是抱着一种学习python的心态取搞,其实并不难。当然映java也可以实现,毕竟python是专业的,所以我也就学着使用python实现这一需求。以下代码为调试后的最终代码 拿来即用。
2025-01-16 10:53:38
1101
原创 用Java实现JVM《命令行工具》/《搜索class文件》之一
2:配置内容:-Xjre “C:\Program Files\Java\jdk1.8.0_121\jre” D:\bugstock\interview-master\jvm\target\test-classes\com\lm\test\jvm2\HelloWorld.class。为了更好的学习jvm阅读过《Java虚拟机规范》、《自己动手写Java虚拟机》,尤其是《自动动手写java虚拟机》可以更加清晰的看到全貌。Notepad++ (插件安装HEX-Editor,用于查看class字节)
2025-01-15 17:27:55
323
原创 HashMap 源码分析(下)
HashMap 这种散列表的数据结构,最大的性能在于可以 O(1)时间复杂度定位到元素,但因为哈希碰撞不得已在一个下标里存放多组数据,那么 jdk1.8 之前的设计只是采用链表的方式进行存放,如果需要从链表中定位到数据时间复杂度就是O(n),链表越长性能越差。HashMap 是基于数组+链表和红黑树实现的,但用于存放 key 值得的数组桶的长度是固定的,由初始化决定。我们讲解并用数据验证了,HashMap 中的,散列表的实现、扰动函数、负载因子以及扩容拆分等核心知识点以及相应的作用。
2025-01-15 14:11:21
700
原创 HashMap 源码分析(上)
到一个下标值,也就是我们上面做的散列列子。乍一看可能有点晕😵怎么都在向右移位 1、2、4、8、16,这主要是为了把二进制的各个位置都填上 1,当二进制的各个位置都是 1 以后,就是一个标准的 2 的倍数减 1 了,最后把结果加 1 再返回即可。初始化大小里,都可以知道,散列数组需要一个 2 的倍数的长度,因为只有 2 的倍数在减 1 的时候,才会出现 01111 这样的值。5. 这里所有的元素存放都需要获取一个索引位置,而如果元素的位置不够散列碰撞严重,那么就失去了散列表存放的意义,没有达到预期的性能。
2025-01-15 13:49:43
929
原创 HashCode 为什么使用 31 作为乘数?
s[0]*31^(n-1) + s[1]*31^(n-2) + …这个过程比较简单,与原 hash 函数对比只是替换了可变参数,用于我们 统计不同乘积数的计算结果。2, 3, 5, 7, 17,31, 32, 33, 39, 41, 199,最终返回一个 list 结果并输出。这个问题其实指的就是,hashCode 的计算逻辑中,为什么是 31 作为乘数。以上就是不同的乘数下的 hash 碰撞结果图标展示,从这里可以看出如下信息;想计算碰撞很简单,也就是计算那些出现相同哈希值的数量,计算出碰撞总量即。
2025-01-15 10:11:41
325
原创 Hive,Oracle,redis同步数据之-将本地数据同步到其他数据库之二
使用CompletableFuture.runAsync方法异步执行每个任务,生成SQL语句并调用jobDBSync.executeOut方法执行同步操作。遍历targetJobs,为每个任务创建一个jobMap,包含源数据库、目标数据库、任务信息和日志标题。创建一个CompletableFuture数组futures,用于存储每个任务的异步执行结果。我们已经将其他数据源的数据同步到本地 现在是要将本地的数据同步到其他数据库了。如果任务执行过程中出现异常,记录错误日志并继续执行下一个任务。
2025-01-13 16:34:05
736
原创 Hive,Oracle,redis同步数据之-从其他数据源同步到本地数据库之一
需要处理成自己公司统一标准的数据集,就会使用到数据的同步和处理清理等操作。由于不同的来源 需要使用对应的处理 故采用实现spring的bean方式 进行拓展。其余的redis和oracle由于很多 这里就不一一提供了 可关注私信我获取源码。下属存放对应的配置文件的信息 和使用xstream流的方式解析获取对应的配置信息。这里给出将其他数据同步到本地数据作为一个方案的演变 分享给大家。树代码中对应的类型链接 提供了不同的实现 如截图。使用异步线程池注解启动。对应的redis的创建。
2025-01-13 15:12:21
589
原创 Spring Boot项目中分布式锁实现方案:Redisson
事实上Redisson并没有不止步于此,在分布式锁的基础上还提供了联锁(MultiLock),读写锁(ReadWriteLock),公平锁(Fair Lock),红锁(RedLock),信号量(Semaphore),可过期性信号量(PermitExpirableSemaphore)和闭锁(CountDownLatch)这些实际当中对多线程高并发应用至关重要的基本部件。Redisson内部提供了一个监控锁的看门狗,它的作用是在Redisson实例被关闭前,不断的延长锁的有效期。
2024-12-31 16:32:21
1628
原创 Zookeeper在中间件的应用和在Spring Boot业务系统中实现分布式锁和注册中心的解决方案
Zookeeper的集群模式安装非常简单,首先按照上面所说的zookeeper遵从只要有半数以上节点存活,Zookeeper集群就能正常服务的原则,所以Zookeeper适合安装奇数台服务器,偶数台机器并不会加强集群的高可用性,反而白白浪费一台机器资源,3台和4台服务器是一样滴,由此我们选择使用3台服务器构建集群,这也是在生产环境中比较合适常见的集群配比了。假设ZooKeeper由5台服务器组成,SID分别为1、2、3、4、5,ZXID分别为8、8、8、7、7,并且此时SID为3的服务器是Leader。
2024-12-31 15:31:57
1415
原创 ELK 使用教程采集系统日志 Elasticsearch、Logstash、Kibana
包括:服务治理(熔断/限流) (opens new window)、监控 (opens new window)和日志,如果你做的系统里没有这样几个东西,一种是说明系统是玩具项目,另外一种就是压根没做过或者没关心过。Elastic Stack 技术栈,别是 Elasticsearch、Logstash、Kibana 组成,简称 ELK 是一套针对日志数据做解决方案的框架。它使您能够聚合来自所有系统和应用程序的日志,分析这些日志,并创建可视化来进行应用程序和基础设施监控、更快的故障排除、安全分析等。
2024-12-30 13:36:38
1751
原创 Prometheus + Grafana 监控,验证 Hystrix 超时熔断
很多伙伴在面试的时候,都可能会被问到;那会不会呢,其实会的,对于一些接口不稳定容易超时但又不熔断的接口,在用户大量请求的情况下,是很容易把Tomcat连接数打满,直至拖垮整个服务,让服务的任何接口都没有响应。所以如果你的应用配置的 Tomcat 连接数不合理,之后接口又容易超时,超时后又没有熔断,那么很容易就会把你的服务拖垮。那是不是,增加了连接数(WC 更多的坑位就好了呢),其实也好不哪去,你总不能给所有的用户都建一个坑位,而且坑位越多,距离也越长了,这就会涉及到线程的切换,也是不小的资源消耗。
2024-12-30 11:13:59
1098
原创 SpringCloud Feign
Spring Cloud 为开发人员提供了一系列工具,用于快速构建分布式系统中的一些常见模式(例如配置管理、服务发现、断路器、智能路由、微代理、控制总线、微服务和契约测试)。Feign 提供了可插拔的编码器和解码器,支持多种数据格式,并且可以与 Spring Cloud 集成,方便地实现负载均衡和服务发现。其简洁的 API 和高度的可扩展性,使得 Feign 成为微服务架构中常用的工具之一。它允许各个服务在启动时注册自己的信息,并能够动态地发现其他服务的位置和状态,从而实现负载均衡和故障转移。
2024-12-30 10:16:17
170
原创 skywalking 全链路监控
配置到 IDEA 程序启动中,VM Options 参数:-javaagent:/Users/fuzhengwei/1024/KnowledgePlanet/road-map/skywalking/docs/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=skywalking-app-dev -Dskywalking.collector.backend_service=127.0.0.1:11800。
2024-12-30 09:52:03
805
原创 通过MySQL binlog日志,使用canal同步分库分表数据,到 Elasticsearch
以及在 application.yml 中配置出需要链接的库表以及同步的目标地址,也就是 es 的地址。本节涉及到了简明教程中所讲解的 Sharding 分库分表 (opens new window)的使用,因为我们需要把分库分表的数据通过 canal 同步到 Elasticsearch。docs/dev-ops/tech-canal-docker-compose.yml:提供了所需的环境安装,mysql、canal-server、canal-adapter、elasticsearch、kibana。
2024-12-27 13:37:05
1147
原创 sharding-jdbc 使用教程和模型结构
分库分表的本质是数据的散列,分摊数据库资源压力。如把原本在一台机器上的数据库存放1000万数据,分摊到n台机上,拆分这1000万的数据和后续的增量。并不会说目前这个业务需求规模不大,就不使用分库分表,而是分库分表都是非常成熟的方案,并不会因为使用了就降低很大的开发效率。提供了 docker 配置数据库环境操作,并提供了对应的建表测试语句。那么所做的CRUD操作,都是需要使用到这个用户ID,并根据ID做路由库表计算。查询的用户ID是已经写入到数据库表里的数据,查询的时候会根据用户ID继续路由计算。
2024-12-27 09:52:13
542
原创 自研数据库分库分表路由组件
在 JDK 源码中,包含的数据结构设计有:数组、链表、队列、栈、红黑树,具体的实现有 ArrayList、LinkedList、Queue、Stack,而这些在数据存放都是顺序存储,并没有用到哈希索引的方式进行处理。4:为了能让数据均匀的分配到不同的库表中去,还需要考虑如何进行数据散列的操作,不能分库分表后,让数据都集中在某个库的某个表,这样就失去了分库分表的意义。1:以上就是我们实现完数据库路由组件后的一个数据源配置,在分库分表下的数据源使用中,都需要支持多数据源的信息配置,这样才能满足不同需求的扩展。
2024-12-27 09:22:05
903
原创 Dubbo
如果是公司里开发,会有专门的自己家部署的,私有Maven中心仓库,就可以通过 deploy 把本地 Jar 发布上去,那么公司里的伙伴,也就都可以引用了。Dubbo 的使用分为2方,一个是接口的提供方,另外一个是接口的调用方。这个信息包括:接口名称、接口入参、接口出参,只有让调用方拿到这些信息以后,它才能依托于这样的接口信息做一个代理操作,并在代理类中使用 Socket 完成双方的信息交互。而 Dubbo 也是在代理里,提供了如此的操作,对接口提供方发送请求消息,并在超时时间内返回接口信息。
2024-12-26 16:23:49
653
原创 Spring Security
其实就算你不使用 Spring Security 你自己做一个登录的功能,以及允许登录的用户可以操作的流程,也要做这样的事情。appAccessDeniedHandler、appUnauthorizedHandler,是自定义的鉴权拦截,如果登录不通过,可以统一返回给前端一个固定的错误码,便于跳转登录。Spring Security 在内部维护一个过滤器链,其中每个过滤器都有特定的职责,并且根据所需的服务在配置中添加或删除过滤器。那么这里所做的就是认证授权的配置,对哪些URL进行放行,哪些是要做拦截。
2024-12-26 13:43:18
929
原创 Spring Dependency Injection - 依赖注入使用技巧
就不知道是怎么注入的了。场景:是一个案例中使用到了 @ConditionalOnProperty 注解,我们也可以自定义一个 Conditional 的实现类,之后把这个实现类配置到需要实例化的对象上面,通过 matches 匹配条件方法的实现,决定是否实例化。场景:模拟创建 createTopic,入参的对象为注入的操作,@Qualifier 注解可以指定要注入哪个名字的对象。用途:当我们为一组接口提供实现类,并需要提供默认的注入的时候,就可以使用 @Primary 注解来限定首选注入项。
2024-12-26 10:54:54
946
原创 在 Docker 中部署 Jenkins,并完成项目的构建和发布
Jenkins 的主要作用是帮助你,把需要在本地机器完成的 Maven 构建、Docker 镜像发布、云服务器部署等系列动作全部集成在一个服务下。简化你的构建部署操作过程,因为 Jenkins 也被称为 CI&CD(持续集成&持续部署) 工具。提供超过 1000 个插件(Maven、Git、NodeJs)来支持构建、部署、自动化, 满足任何项目的需要。代码和打包资料关注我后台私信获取本节会需要用到的环境 Docker&Portainer 快速导航如下。
2024-12-23 13:08:27
1699
原创 Nginx 环境配置
所以直接在 conf.d/default.conf 配置 SSL 就会被加载。conf - 在 conf 下有个 conf.d 的文件夹,把 default.conf 上传进去。1:把下载好的 SSL 文件解压到桌面,你会得到一个文件夹,里面含有 x.key、x.pem 两个文件。好了 Nginx 环境配置 学习结束了 友友们 点点关注不迷路 老铁们!在 default.conf 中添加如下配置后重启 Nginx 即可;
2024-12-23 11:05:08
805
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人