文章 2024-07-12 来自:开发者社区

Go语言中的map为什么默认不是并发安全的?

今天我们聊一个 Go 语言中的 “热门” 话题——为什么 Go 语言中的 map 默认不是并发安全的呢? 对于广大 Go 程序员来说,尤其是那些刚跨入 Go 世界的新朋友们,这个问题或许让你们摸不着头脑。别急,让我们一起慢慢揭开这层神秘的面纱。 Go 语言中 map 的基本使用 首先,我们得知道 map 是什么。在 Go 中&...

Go语言中的map为什么默认不是并发安全的?
文章 2024-06-19 来自:开发者社区

go语言并发实战——日志收集系统(十) 重构tailfile模块实现同时监控多个日志文件

前言 在上一篇文章中,我们实现了通过etcd来同时指定多个不同的有关分区与日志文件的路径,但是锁着一次读取配置的增多,不可避免的出现了一个问题:我们如何来监控多个日志文件,这样原来的tailFile模块相对于当下场景就显得有些捉襟见肘了,所以对tialFile模块进行重构就成了我们必须要做的事情了。 TailFiile模块的重构流程 储存数据结构体的重构 在上一篇...

go语言并发实战——日志收集系统(十) 重构tailfile模块实现同时监控多个日志文件
文章 2024-06-19 来自:开发者社区

go语言并发实战——日志收集系统(九) 基于etcd的代码重构思考与初步实现

前言 在之前我们j基于sarama,tail还有go-ini实现了日志收集系统客户端的编写,但是我们梳理一下可以发现,该客户端还存在一些问题: 客户端一次只能读取一个日志文件,无法同时读取多个分区 无法管理日志存放的分区(topic)那我们一个如何去解决这个问题呢?在前两篇文章中我们介绍了etcd,它通过可以存储键值对并且通过watch操作来实现对键值对的实...

go语言并发实战——日志收集系统(九) 基于etcd的代码重构思考与初步实现
文章 2024-06-19 来自:开发者社区

go语言并发实战——日志收集系统(十一)基于etcd来监视配置文件的变化

前言 在我们实际生产中,我们常常因为新的项目或者新的功能进而要对配置文件进行修改,但是在生产环境下我们不是每次配置文件发生变化都重启一次系统,这无疑是不切实际的,所以我们需要对配置文件进行实时监控,而今天我们所要展示的也就是如何基于etcd来监控配置文件的变化。 etcd对配置项监控的流程 需求分析 首先我们来看我们日志收集服务的主要工作流程: ...

文章 2024-06-19 来自:开发者社区

go语言并发实战——日志收集系统(八) go语言操作etcd以及利用watch实现对键值的监控

有关包的安装 我们要实现go语言对第三方包的操作需要我们下载第三方包go.etcd.io,下载命令: go get go.etcd.io/etcd/client/v3 ...

go语言并发实战——日志收集系统(八) go语言操作etcd以及利用watch实现对键值的监控
文章 2024-06-19 来自:开发者社区

go语言并发实战——日志收集系统(七) etcd的介绍与简单使用

什么是etcd etcd是基于Go语言开发的一个开源且高可用的分布式key-value存储系统,我们可以在上面实现配置共享与服务的注册与发现。 和它比较相似的还有我们之间所提到的Zookeeper以及consul.(注:后面我们学习微服务的时候etcd和consul会有广泛的使用) etcd有以下几点特点: 完全复制:集群中的每个节点都可以使用完整的存...

go语言并发实战——日志收集系统(七) etcd的介绍与简单使用
文章 2024-06-19 来自:开发者社区

go语言并发实战——日志收集系统(六) 编写日志收集系统客户端

上节回顾 在上一篇文章中我们介绍了编写客户端的四个步骤,分别是: 读取配置文件,寻找日志路径 初始化服务 根据日志路径l来收集日志 将收集到的日志发送Kafka中关于上述的内容博主画了一个思维导图(有点丑,大家勉强看看,以前没画过): ...

go语言并发实战——日志收集系统(六) 编写日志收集系统客户端
文章 2024-06-19 来自:开发者社区

go语言并发实战——日志收集系统(五) 基于go-ini包读取日志收集服务的配置文件

实现日志收集服务的客户端 前言 从这篇文章开始我们就正式进入了日志收集系统的编写,后面几篇文章我们将学习到如何编写日志收集服务的客户端,话不多说,让我们进入今天的内容吧! 需要实现的功能 我们要收集指定目录下的日志文件,将它们发送到Kafka中 实现的步骤 读取配置文件,寻找日志路径 初始化服务 根据日志路径去利用t...

go语言并发实战——日志收集系统(五) 基于go-ini包读取日志收集服务的配置文件
文章 2024-06-19 来自:开发者社区

go语言并发实战——日志收集系统(三) 利用sarama包连接KafKa实现消息的生产与消费

环境的搭建 Kafka以及相关组件的下载 我们要实现今天的内容,不可避免的要进行对开发环境的配置,Kafka环境的配置比较繁琐,需要配置JDK,Scala,ZoopKeeper和Kafka,这里我们不做赘述,如果大家不知道如何配置环境,这里我们个大家找了一篇博文供大家参考: sarama包的安装 今天我们所时机的内容需要用到go语言的第三方包sarama...

go语言并发实战——日志收集系统(三) 利用sarama包连接KafKa实现消息的生产与消费
文章 2024-06-19 来自:开发者社区

go语言并发实战——日志收集系统(二) Kafka简介

消息队列的通信模式 点对点模式 消息生产者生产消息发送到消息队列(queue),消费者从queue中取出并且消费信息,而这条信息被消费后queue中就没有了这条信息,不存在重复消费 发布/订阅 基本概念发布者发布消息发送到消息队列(topic),订阅者从topic中取出并且消费信息,而这条信息被消费后topic中还存在这条信息,存在重复消费 ...

go语言并发实战——日志收集系统(二) Kafka简介

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

开发与运维

集结各类场景实战经验,助你开发运维畅行无忧

+关注