- 博客(46)
- 资源 (21)
- 收藏
- 关注
原创 Go 语言包初始化顺序详解
Go语言程序初始化顺序遵循严格规则:1. 递归初始化所有依赖包;2. 单个包内先初始化变量再执行init函数;3. 多文件包中,先处理所有文件的包级变量(文件顺序不确定),再按文件名顺序执行init函数。示例显示,当导入dao和root包时,会先初始化依赖包的变量和init函数,再执行主包的变量初始化和init函数,最后执行main函数。特别注意的是,多文件包的初始化顺序中,变量初始化优先于init函数,且init函数按文件名字母顺序执行。
2025-12-11 16:32:12
219
原创 Docker 安装 canal 详细步骤
本文详细介绍了基于Docker部署Canal实现MySQL数据库增量数据订阅的完整流程。主要内容包括:1)Canal工作原理,通过模拟MySQL从库获取二进制日志实现数据变更捕获;2)Docker环境搭建,创建专用网络并部署MySQL、Canal-admin和Canal-server服务;3)关键配置详解,包括MySQL的binlog开启、Canal连接参数及实例配置;4)Go语言客户端实现数据变更监听的具体代码示例。文章还提供了常见问题排查方法,如内存不足导致服务启动失败的解决方案。
2025-09-26 18:51:09
1306
1
原创 MCP 原理初探及基于go语言开发MCP服务的实现
本文系统介绍了 MCP(Model Context Protocol)协议的核心概念、通信机制与关键组件,并结合 Go 语言给出具体的 MCP 服务实现示例。此外,还详细讲解了调试工具 MCP Inspector 的基本使用方法。
2025-09-09 12:29:56
1515
1
原创 Goframe 框架下HTTP反向代理并支持MCP所需的SSE协议的实现
本文介绍了基于Goframe框架实现MCP服务的HTTP反向代理方案。MCP(ModelContextProtocol)是一个采用JSON-RPC 2.0格式的AI应用接口协议,支持标准输入输出和SSE传输。文章详细展示了MCP服务实现代码,包括工具定义和处理器注册,并提供了反向代理服务的完整实现方案。特别针对Goframe 1.16版本的SSE协议兼容性问题,提出了两种解决方案:使用RawWriter或升级到Goframe V2。
2025-09-01 12:17:22
1129
原创 Redis 基础篇
Redis(Remote Dictionary Server),即远程字典服务,是一个开源的高性能键值存储数据库,可以用作数据库、缓存和消息中间件。本文总结了redis 常用数据类型及命令、主从复制、redis管道、持久化、集群等基本概念及用法。
2025-01-05 16:03:37
788
原创 Mysql 存储引擎原理探究
否则,读取磁盘上的页。在对缓冲池的脏页进行刷新时,并不直接写磁盘,而是会通过memcpy函数将脏页先复制到内存中的doublewrite buffer,之后通过doublewrite buffer再分两次,每次1MB顺序地写入共享表空间的物理磁盘上,然后马上调用fsync函数,同步磁盘,避免缓冲写带来的问题。聚集索引(clustered index)就是按照每张表的主键构造一棵B+树,同时叶子节点中存放的即为整张表的行记录数据,也将聚集索引的叶子节点称为数据页,每个数据页都通过一个双向链表来进行链接。
2024-12-13 12:57:22
1229
原创 go 垃圾回收机制原理分析及源码探究
Go语言的垃圾回收(Garbage Collection,简称GC)机制是一种自动的内存管理方法,它负责自动释放不再使用的内存,以避免内存泄漏和碎片化。
2024-11-12 16:27:34
1458
原创 阿里云环境下用docker搭建redis主从复制
redis主从复制可将主redis中的数据同步到从redis中,具有读写分离、容灾恢复、数据备份、支持高并发等特性。本文演示在阿里云环境下,用 docker 搭建 redis 主从复制(一主二从)的操作过程
2024-10-24 18:12:41
1236
原创 go 语言 Gin Web 框架的实现原理探究
从源码角度分析gin框架实现原理,包括gin.Engine数据结构、注册路由树、服务启动流程、gin.Context数据结构等
2024-10-23 02:24:48
1446
原创 Docker 安装FileBeat、Elasticsearch及Kibana详细步骤
本文简述免费开源的日志监控平台ELK Stack(Elasticsearch、Logstash、Beats、Kibana)的 docker 安装步骤。
2024-09-03 23:57:09
3286
1
原创 Windows 环境下 Go 语言使用第三方压缩包 gozstd 的报错处理
gozstd是一个针对Zstandard(简称Zstd)的Go语言包装器,它提供了简单且高效的API,使得开发者能够在Go程序中便捷地进行数据压缩和解压操作。gozstd可用于数据存储和传输、日志处理、实时流处理、云服务等场景。
2024-08-19 21:28:24
1424
1
原创 Delphi 利用LiveBindings绑定JSON数据到列表控件
为了提供数据绑定方案,Delphi FMX 框架提供了 LiveBindings 的技术。LiveBindings 基本上是一种基于表达式的机制,其中通常有一个源组件和一个目标组件,目的是将一个或多个涉及源成员的表达式绑定到目标的一个或多个属性。为了实现这一点,系统需要在某个地方存储涉及组件(在表单、框架或数据模块中)的绑定表达式集合(TBindingList 组件)。为了使数据对表达式引擎可用,您需要使用中间组件(BindSources)在表达式引擎和实际数据存储之间充当中介。
2024-08-06 20:36:48
868
原创 windows系统中开发的GO程序生成docker镜像并部署到阿里云服务(linux系统)的操作说明
本文简述将go程序生成docker镜像的操作方法,以及如何部署到阿里云服务。
2024-06-19 01:47:34
1511
1
原创 Go微服务框架Kratos中makefile命令的使用方法及报错处理
运用 kratos 微服务框架开发项目时,可以使用提供的 makefile 中的命令自动且快速生产相关代码,提高开发效率
2024-06-13 18:40:03
1674
1
原创 VirtualBox 虚拟机中的 centos7 系统拉取 docker 镜像常见报错及解决方法
一、拉取镜像时报错:Error response from daemon: Get "https://registry-1.docker.io/v2/": tls: failed to verify certificate: x509: certificate signed by unknown authority。这通常是因为证书链中的某个证书没有被Docker所信任的根证书颁发机构(CA)签名,或者系统的CA证书存储已经损坏或未更新。2、打开daemon.json,添加阿里云的镜像仓库路径。
2024-06-07 03:33:03
1734
3
原创 Windows 宿主机访问 VirtualBox 虚拟机中创建的 docker 容器中的 mysql8.0 的数据
在开发环境中,一般使用 windows 系统进行开发,但需要在 linux 系统中创建运行 mysql8.0 的 docker 容器中进行测试(win10特定版本或win11才能安装 docker),为了方便还需要在windows 系统中通过 SQLyog 工具查询 docker 容器中的数据库
2024-06-05 01:43:20
1273
原创 go 微服务框架 kratos 日志库使用方法及原理探究
文章简单介绍了 kratos 日志库的使用方法,包括打印全局信息、日志脱敏过滤、日志输出到文件等方法。另外介绍了第三方日志库 zap 的使用方法,以及将 zap 适配到 kratos 日志库的方法。
2024-05-24 21:09:22
2346
1
原创 go 微服务框架kratos错误处理的使用方法及原理探究
通过go语言原生http中响应错误的实现方法,逐步了解和使用微服务框架 kratos 的错误处理,以及探究其实现原理
2024-05-23 17:50:48
2084
1
原创 go 微服务框架kratos使用中间件的方法
在go语言中,中间件是一种用于处理http请求的开发模式,允许开发人员在请求到达处理程序之前或之后执行特定的操作,如日志记录、身份验证、错误处理等。②像添加内置中间件一样,将自定义中间件添加到 http.Middleware 和 []http.ServerOption 中。中间件通常是一个函数,它接收一个 `http.Handler` 作为参数并返回另一个 `http.Handler`。1、创建中间件函数,输入参数 http.Handler,输出参数 http.Handler。2、自定义中间件使用方法。
2024-05-22 17:25:33
1906
2
原创 Go 和 Delphi 定义可变参数函数的对比
使用可变参数函数具有灵活性、重用性、简化调用等优点,各个语言有各自定义可变参数函数的方法,也有通用的处理方法,比如使用数组、定义参数结构体、使用泛型等。这里总结记录一下 go、delphi 的常用的定义可变参数函数的方式!
2024-05-22 12:10:28
644
1
原创 Go微服务开源框架kratos的依赖注入关系总结
Kratos 一套轻量级 Go 微服务框架,包含大量微服务相关框架及工具。该文章为学习开源微服务框架kratos的学习笔记,其中主要归纳了kratos项目的依赖注入关系
2024-05-15 22:37:40
696
原创 Delphi 解决字符串型的枚举值设置和读取的方法
例如订单状态的枚举值为:0:未支付 1:支付中 2:已支付 3:已退款,现在有一个需求需要在业务中判断订单的状态,处理相应的逻辑,并将订单状态对应的中文描述提示给用户。对于枚举类型字段,一般数据库中存储的是整型值,但在业务处理中使用整型值可读性不强,且显示对应中文描述不方便。此方法的缺点:在代码中用0、1、2、3表示订单状态,可读性不强,且对应中文描述不方便管理。
2024-05-09 12:30:04
819
1
原创 《微服务设计》读书笔记
《微服务设计》读书笔记,宏观上介绍了微服务的概念、优点,设计微服务的原则,以及从测试、部署、监控、安全等方面阐述微服务治理
2024-04-28 17:02:33
537
原创 Go语言gin框架中加载html/css/js等静态资源
Gin框架没有内置静态文件服务,但可以使用gin.Static或中间件来提供静态文件服务。
2024-03-18 18:42:55
4165
原创 Delphi程序打开时自动以管理员方式运行
实现功能:程序打开时自动以管理员方式运行实现原理:依据UAC(用户账户控制User Account Control,简写作UAC)的标准,使用管理员权限需要提供一个提权申请,这个申请是利用资源文件的方式进行的实现步骤:1、将制作好的资源文件UAC.RES拷贝到delphi工程目录下(点击此处下载UAC.RES)2、打开主工程文件,在{$R *.res} 这行代码下面,添加...
2019-10-12 17:28:06
1275
原创 Delphi创建COM组件并分别用Delphi和html调用该组件的简单实例
一、功能介绍及效果图用delphi xe6 创建一个简单的COM组件,并分别测试了用delphi和HTML调用该组件的方法ShowWuXiaNames。效果图如下: 图一:在Windows中注册的COM组件 图二:Delphi调用COM组件...
2019-06-17 18:17:46
3105
原创 Delphi 获取Windows服务状态、启动和停止服务
以下为Delphi获取Windows服务、启动和停止服务的代码,使用方法如下:if SERVICE_RUNNING = ServiceGetStatus('', '服务名') then StopServices('服务名', true);StartServices('服务名', false);---------------------------------------------...
2019-05-22 10:56:28
2422
1
原创 Windows命令查看活动连接及根据PID查看运行程序的路径、程序名等
1、查看活动连接netstat -na -o2、根据PID获得运行程序的路径及程序名等wmic process get name,executablepath,processid|findstr 加上PID
2019-05-13 17:57:37
10091
原创 Delphi 读取文本文件的两种方式
用两种方式读取文本文件:文件流读取和文件变量读取一、文件流方式{*******************************************************}{功能:读取文本文件的内容 }{参数: ...
2019-05-09 17:01:05
9843
delphi 中鼠标移动事件
2012-09-28
sql函数和事务
2014-03-13
sql 游标、存储过程
2014-03-26
delphi 动态创建的panel的位置显示
2014-03-25
虚拟机安装 Mac OS X 系统的引导文件darwin.iso 、darwin_snow_legacy.iso 和 Rebel EFI.iso
2013-08-25
delphi中实现以管理员方式打开程序所需的资源文件
2019-10-12
sql分页存储过程
2014-03-21
自己用的sql语句
2014-03-14
播放本地多种格式的图片
2012-10-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅