golang

Wang's Blog4 小时前
开发语言·golang·go-zero·filebeat
Go-Zero 项目开发43:基于 Filebeat 收集各个服务的日志信息在微服务架构中,日志分散在各个服务节点上。Logstash 虽然具备强大的日志采集、过滤和转发能力,但它由 Java 实现,启动速度较慢,运行时内存占用较高。如果让 Logstash 和业务服务部署在同一台机器上,很容易与业务进程争抢 CPU 和内存资源,影响核心服务的稳定性。
FellAveal12 小时前
笔记·学习·golang
【Go语言入门学习笔记】Part19.速率控制、原子计数器、互斥锁(Mutex)、状态协程一、前言一些关于并发操作的组件。二、学习代码速率控制:原子计数器:互斥锁:状态协程:
Wang's Blog19 小时前
golang·prometheus·go-zero
Go-Zero 项目开发44:集成 Kibana 日志可视化与 Prometheus 性能监控在微服务架构下,服务实例往往分散在多台机器上,传统的单机监控手段已无法满足需求。我们需要一套能够聚合日志、可视化分析,同时又能实时监控服务性能指标的方案。本文将基于 go-zero 框架,结合 ELK(Elasticsearch、Logstash、Kibana)与 Prometheus,演示如何从零构建日志可视化仪表盘,并对各个服务进行性能监控。
JL1518 小时前
java·架构·golang
Java+Go 混合架构怎么搭?收官 50 道面试题 + 学习路线本文为《Java工程师转Go实战》连载 第 20 篇 / 共 20 篇 上一篇:Java CRUD 迁移实战
Wang's Blog19 小时前
golang·grafana·prometheus
Go-Zero 项目开发45: Prometheus + Grafana 安装部署与服务监控实战Prometheus 是一套开源的监控与告警系统,它通过拉取(Pull)模式从各个目标服务的 /metrics 端点采集时序数据。采集方式主要分为两种:
FellAveal1 天前
笔记·学习·golang
【Go语言入门学习笔记】Part18.工作池与WaitGroup(也即协程池)一、前言两个功能相似的多个同类协程使用同类资源时候需要用到的协程池,满足并发工作需求。二、学习代码工作池:用result通道来收集完成情况
geovindu2 天前
开发语言·后端·算法·golang·搜索算法
go: Breadth First Search Algorithm and Depth First Search Algorithm项目结构:调用:输出:
Wang's Blog1 天前
开发语言·分布式·golang
Go-Zero项目开发40: 基于Jaeger的分布式链路跟踪实战在一个典型的IM系统中,客户端A向客户端B发送消息,底层实际流程如下:当客户端B无法收到消息时,问题可能出现在任意环节:发送时未指定正确的目标、消费者推送逻辑错误、WebSocket 推送失败等。面对分布式环境下的长调用链,传统的日志排查显得力不从心。分布式链路跟踪正是为了应对这一难题,通过记录一次请求在多个服务间的完整路径,帮助开发者快速定位故障点、分析性能瓶颈,并梳理服务依赖关系。
TDengine (老段)1 天前
大数据·数据库·物联网·golang·rust·时序数据库·tdengine
TDengine Go 与 Rust 连接器 — 高性能异步访问分类:11.客户端与连接器 | 篇章:05 Go/Rust 连接器 详情Go 和 Rust 连接器都是 TDengine 高性能场景的常用选择,常用于编写数据采集网关、流处理服务、TaosX 插件。本文统一讲解两者用法。
Wang's Blog2 天前
开发语言·golang·go-zero
Go-Zero项目开发38:深入限流器实现与应用在高并发系统中,限流是保障服务稳定的重要手段。它的本质是控制单位时间内的请求量,防止系统因过载而雪崩。常见的限流指标有:
xcLeigh2 天前
开发语言·后端·golang
Go入门:main包与main函数的特殊地位大家好,我是你们的Go语言向导。上一篇我们全面解析了Go源文件的基本结构。今天我们把焦点放在Go程序中最特殊也是最重要的组合——main包与main函数。每一个可运行的Go程序都离不开它们,但你真的完全理解它们吗?
JL152 天前
java·架构·golang
Java 分层架构迁移到 Go:controller/service/dao 怎么落?本文为《Java工程师转Go实战》连载 第 18 篇 / 共 20 篇 上一篇:GMP 与 GC 下一篇:Java CRUD 迁移实战
Wang's Blog2 天前
开发语言·后端·golang·go-zero
Go-Zero项目开发39: 熔断、限流与降级的高可用实践在微服务架构中,一个请求可能穿过多个服务,任意下游出现延迟或故障都会影响整体可用性。当依赖的服务发生异常时,我们不能让用户看到错误白屏,而是期望返回一份可接受的备用数据,这就是降级。
FfHUCisI2 天前
golang
快速排序(Quick Sort)快速排序是实际工程中应用最广泛的排序算法,它的设计哲学可以概括为一个词——分治(Divide and Conquer)。
高铭杰2 天前
java·学习·golang
Golang sync.Mutex实现原理学习按 Go 1.25.10 的 sync.Mutex 实现整理。公开的 sync.Mutex 只是包装,核心代码在 internal/sync/mutex.go
ttwuai2 天前
数据库·人工智能·mysql·golang
AI 生成后台改数据后,操作日志别只记按钮:Go + MySQL 怎么验AI 生成的后台页面能新增、编辑、删除,并不代表上线后能追责。真正出问题时,最麻烦的不是接口返回 200,而是你只知道“有人改过”,不知道谁改了哪一行、从什么值改到什么值、当时命中了哪个权限码、请求来自哪个租户或角色。
Wang's Blog2 天前
开发语言·微服务·golang·go-zero
Go-Zero项目开发34: 微服务超时控制与重试机制实践在微服务架构中,一次请求往往需要跨越多个服务节点。当某个下游服务因资源争抢、网络抖动或瞬时硬件故障等原因无法及时响应时,调用方会陷入长时间的等待。这会直接导致用户体验下降、系统吞吐量降低以及调用链上的资源浪费。
Wang's Blog3 天前
开发语言·后端·golang
Go-Zero 项目开发26: 实现用户在线离线状态维护在即时通讯(IM)系统中,用户在线状态是最基础的功能之一。当用户登录后,好友列表中对应的头像会从灰色变为彩色,表示上线;退出或断开连接后恢复灰色,表示离线。看似简单的功能,背后却涉及登录状态记录、关系链查询、状态变更通知等多方面设计。
FfHUCisI3 天前
golang
循环链表(Circular Linked List)循环链表是一种特殊的单链表,其尾节点的 Next 指针不指向 nil,而是回指到头节点,从而形成一个闭合的环。
Wang's Blog3 天前
开发语言·微服务·golang·go-zero
Go-Zero项目开发30: 微服务配置中心的设计与实现在微服务系统中,随着业务拆分,部署的服务数量迅速增长。一个典型的项目中可能包含用户服务、订单服务、支付服务、消息队列消费端等多个独立进程,每个进程都携带自己的配置文件。除此之外,MySQL、Redis、ElasticSearch 等基础组件的连接信息同样分布在各个配置文件中。当某项配置需要变更——例如切换数据库地址或调整日志级别——运维人员不得不依次进入不同服务的部署目录,修改对应的配置文件,然后重启或 reload 服务。这种方式存在以下明显缺陷: