07 2021 档案

golang的select典型用法
摘要:golang 的 select 的功能和 select, poll, epoll 相似, 就是监听 IO 操作,当 IO 操作发生时,触发相应的动作。 示例: ch1 := make (chan int, 1) ch2 := make (chan int, 1) ... select { case 阅读全文

posted @ 2021-07-30 14:37 ExplorerMan 阅读(944) 评论(0) 推荐(0)

vscode配置git和提交代码到github教程
摘要:用了git最方便的就是比如在公司写了很多代码后回到家打开vscode只需要点击一下pull就能全部同步过来。是不是很方便。。。。毕竟之前我都是拿u盘拷贝回家或者存到云盘再下载下来。。 我这里用的是国内的码云托管的代码,,github都是英文看不懂。。 因为vscode中带的有git管理功能,只需要学 阅读全文

posted @ 2021-07-30 10:51 ExplorerMan 阅读(8920) 评论(0) 推荐(1)

VsCode中好用的git源代码管理插件GitLens
摘要:git多人协作的时候需要查看日志,如果能在当前代码中查看到那是很方便的一件事,能省去很多时间去其他工具查看,提高工作效率。 VsCode中的GitLens插件刚好能满足这个需求,而且搭配Cmder使用,很舒服,不会出现换行不工整的问题,还可以设置自己喜欢的主题,可以用爱不释舍来形容。 GitLens 阅读全文

posted @ 2021-07-30 10:44 ExplorerMan 阅读(3183) 评论(0) 推荐(0)

GoMock框架使用指南
摘要:序言 要写出好的测试代码,必须精通相关的测试框架。对于Golang的程序员来说,至少需要掌握下面四个测试框架: GoConvey GoStub GoMock Monkey 读者通过前面三篇文章的学习可以对框架GoConvey和GoStub优雅的组合使用了,本文将接着介绍第三个框架GoMock的使用方 阅读全文

posted @ 2021-07-29 14:17 ExplorerMan 阅读(853) 评论(0) 推荐(0)

golang对结构体排序,重写sort
摘要:package main import ( "fmt" "sort" ) type Log struct { UserID int Message string Num float64 CreateTime string } type Wrapper struct { log []Log by fu 阅读全文

posted @ 2021-07-28 16:12 ExplorerMan 阅读(235) 评论(0) 推荐(0)

Go语言开发Prometheus Exporter示例
摘要:一、Prometheus中的基本概念Prometheus将所有数据存储为时间序列,这里先来了解一下prometheus中的一些基本概念 指标名和标签每个时间序列都由指标名和一组键值对(也称为标签)唯一标识。 metric的格式如下: <metric name>{<label name>=<label 阅读全文

posted @ 2021-07-27 19:35 ExplorerMan 阅读(1322) 评论(0) 推荐(0)

golang 字符串拼接性能比较
摘要:背景最近在做一个服务发现/注册的agent, 各个服务需要通过这个agent来注册自己的服务,在完成开发后,测试性能时发现性能达不到要求,通过pprof 来确认cpu主要耗费在gc上,分析结果主要是由于字符串拼接导致,故需要测试一下字符串拼接的几种方法的性能;12字符串拼接的几种方法直接使用加号进行 阅读全文

posted @ 2021-07-27 19:27 ExplorerMan 阅读(252) 评论(0) 推荐(0)

golang中的strings.Compare
摘要:golang中字符串操作函数strings.Compare package main import ( "fmt" "strings" ) //golang字符串操作func main(){ s := "Hello world hello world" str := "Hello" //var s 阅读全文

posted @ 2021-07-27 19:25 ExplorerMan 阅读(406) 评论(0) 推荐(0)

各大厂分布式链路跟踪系统架构对比
摘要:随着互联网架构的扩张,分布式系统变得日趋复杂,越来越多的组件开始走向分布式化,如微服务、消息收发、分布式数据库、分布式缓存、分布式对象存储、跨域调用,这些组件共同构成了繁杂的分布式网络,那现在的问题是一个请求经过了这些服务后其中出现了一个调用失败的问题,只知道有异常,但具体的异常在哪个服务引起的就需 阅读全文

posted @ 2021-07-27 14:15 ExplorerMan 阅读(835) 评论(0) 推荐(0)

Golang 程序中实现优雅关闭 HTTP SERVER
摘要:Golang 中实现一个 HTTP SERVER 异常的简单,利用标准库 net/http 的实现仅需数行代码即可,但是一个生产环境可用的 HTTP SERVER 还必须考虑更多的问题,其中如何实现优雅关闭 HTTP SERVER 是一个必须要处理的问题。这里所说的 优雅 即是指在 HTTP SER 阅读全文

posted @ 2021-07-27 11:54 ExplorerMan 阅读(419) 评论(0) 推荐(0)

Golang的time.NewTicker周期性定时器使用案例
摘要:Ticker是一个周期触发定时的计时器,它会按照一个时间间隔往channel发送系统当前时间,而channel的接收者可以以固定的时间间隔从channel中读取事件。 一.通过NewTicker函数定义定时器 package main import ( "fmt" "time" ) func mai 阅读全文

posted @ 2021-07-26 20:22 ExplorerMan 阅读(478) 评论(0) 推荐(0)

彻底搞懂golang的GOROOT和GOPATH
摘要:目录 1、GOPATH 和 GOROOT 2、修改 GOPATH 和 GOROOT 3、HelloWord——GOPATH版 4、一些踩坑经验 1、GOPATH 和 GOROOT不同于其他语言,go中没有项目的说法,只有包, 其中有两个重要的路径,GOROOT 和 GOPATH Go开发相关的环境变 阅读全文

posted @ 2021-07-20 11:23 ExplorerMan 阅读(4736) 评论(0) 推荐(0)

微服务之-ServiceMesh
摘要:今年,ServiceMesh(服务网格)概念在社区里头非常火,有人提出2018年是ServiceMesh年,还有人提出ServiceMesh是下一代的微服务架构基础。作为架构师,如果你现在还不了解ServiceMesh的话,是否感觉有点落伍了?那么到底什么是ServiceMesh?它诞生的背景是什么 阅读全文

posted @ 2021-07-12 19:33 ExplorerMan 阅读(136) 评论(0) 推荐(0)

markdown文件生成目录的方式
摘要:markdown语法简单好上手,在项目中很多文档都是采用markdown语法完成的,以下介绍两种在markdown文档中自动生成目录的方式。 一、有道自动生成 在文章开始地方输入[toc],即可在对应位置插入目录 [toc] 注意:凡是文章标题带有#(1-6个)的都会被捕获到目录中。 二、npm 语 阅读全文

posted @ 2021-07-08 16:05 ExplorerMan 阅读(3022) 评论(0) 推荐(0)

Kafka集群管理工具kafka-manager的安装使用
摘要:一.kafka-manager简介 kafka-manager是目前最受欢迎的kafka集群管理工具,最早由雅虎开源,用户可以在Web界面执行一些简单的集群管理操作。具体支持以下内容: 管理多个集群 轻松检查群集状态(主题,消费者,偏移,代理,副本分发,分区分发) 运行首选副本选举 使用选项生成分区 阅读全文

posted @ 2021-07-08 10:27 ExplorerMan 阅读(988) 评论(0) 推荐(0)

Kibana7.9.2设置elasticsearch索引过期时间,到期自动删除
摘要:目录一、背景二、设置索引生命周期策略(ILM)三、手动给索引设置删除策略四、查看结果五、自动给索引添加删除策略六、参考一、背景ELK系统里面存放了大量日志索引,只需要保留15天的日志索引,希望到期自动删除对应的索引;本文的解决方案是给索引添加生命周期策略,不需要手动设置定时器去调用api删除; 二、 阅读全文

posted @ 2021-07-05 15:32 ExplorerMan 阅读(2895) 评论(0) 推荐(0)

标记语言MarkDown快速入门篇
摘要:一.Markdown概述 1>.什么是Markdown Markdown是一种标记语言,用于文档排版,它相比于HTML标签要简单的多。 Markdown的流行度非常高,很多IDE都集成了Markdown功能,由于其简单方便,基本上已经成为程序员写文档的事实标准。 温馨提示: 关于Markdown编辑 阅读全文

posted @ 2021-07-02 20:40 ExplorerMan 阅读(510) 评论(0) 推荐(0)

文档工具GitBook使用指南
摘要:一.安装Gitbook 1>.安装nodejs 较新版本的gitboot关于左侧导航栏使用了ajax技术,导致使用gitboot必须得基于HTTP协议,它不像旧版本默认支持本地文件访问,即不能双击打开Markdown文件,因此本篇博客安装的nodejs版本偏低。 nodejs下载地址: https: 阅读全文

posted @ 2021-07-02 16:49 ExplorerMan 阅读(893) 评论(0) 推荐(0)

logstash中将kafka数据直接存储到es中
摘要:下载 建议到官网下载最新版https://www.elastic.co/cn/downloads/logstash本文使用logstash7.0.0https://artifacts.elastic.co/downloads/logstash/logstash-7.0.0.tar.gz wget h 阅读全文

posted @ 2021-07-01 16:59 ExplorerMan 阅读(1469) 评论(0) 推荐(0)

kafka producer.poll producer.flush consumer.poll的区别
摘要:参考文献:https://docs.confluent.io/current/clients/confluent-kafka-python/index.html#consumer Producer.poll(timeout) timeout (float) – Maximum time to blo 阅读全文

posted @ 2021-07-01 15:37 ExplorerMan 阅读(982) 评论(0) 推荐(0)

KafkaConsumer 长时间地在poll(long )方法中阻塞
摘要:一,问题描述 搭建的用来测试的单节点Kafka集群(Zookeeper和Kafka Broker都在同一台Ubuntu上),在命令行下使用: ./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 阅读全文

posted @ 2021-07-01 15:36 ExplorerMan 阅读(1055) 评论(0) 推荐(0)

Kafka重平衡机制
摘要:当集群中有新成员加入,或者某些主题增加了分区之后,消费者是怎么进行重新分配消费的?这里就涉及到重平衡(Rebalance)的概念,下面我就给大家讲解一下什么是 Kafka 重平衡机制,我尽量做到图文并茂通俗易懂。 重平衡的作用 重平衡跟消费组紧密相关,它保证了消费组成员分配分区可以做到公平分配,也是 阅读全文

posted @ 2021-07-01 15:27 ExplorerMan 阅读(511) 评论(0) 推荐(0)

史上最全、最详细的 kafka 学习笔记!
摘要:一、为什么需要消息系统 1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。 2.冗余: 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险。许多消息队列所采用的"插入-获取-删除"范式中,在把一个消息从队列中删除之前,需要你的处理系统明确的 阅读全文

posted @ 2021-07-01 15:26 ExplorerMan 阅读(1269) 评论(0) 推荐(0)

如何确定Kafka的分区数、key和consumer线程数
摘要:在Kafak中国社区的qq群中,这个问题被提及的比例是相当高的,这也是Kafka用户最常碰到的问题之一。本文结合Kafka源码试图对该问题相关的因素进行探讨。希望对大家有所帮助。 一个消费者组中的消费者数量和分区的关系,比如一个组中有3个消费者,那么topic的分区数3,刚刚好,如果,消费者小于3, 阅读全文

posted @ 2021-07-01 14:42 ExplorerMan 阅读(1922) 评论(0) 推荐(0)

golang中使用kafka
摘要:golang中比较好用的kafka client有 sarama confluent-kafka-go go_kafka_client optiopay-kafka siesta 其中 sarama的使用者应该是最多的, 然后还有一个sarama的cluster版本sarama-cluster 本文 阅读全文

posted @ 2021-07-01 11:36 ExplorerMan 阅读(566) 评论(0) 推荐(0)

导航