golang
wangyish201201
善于学习
展开
-
轻量级日志收集工具Filebeat
引言 日志对于程序非常重要,日志对于定位问题,数据分析有着十分强大的作用,是程序员和运维人员重要的工具。线上90%以上Bug都是依靠程序日志输出定位到。 日志存储选择 日志数据是一种时序数据,是一种记录当前时刻的状态的数据,只是做数据的追加,不做修改,定期删除,日志数据互相之间没有直接依赖关系,同时数据量巨大,根据这些特点logs要能被快速低成本存储,快速查询分析。 如果采用关系型数据库存储查询,成本会非常高,并且关系数据库对于巨额数据查询分析显得不那么给力,所以如果没有非常特殊的要求,不会选择用关系型数据原创 2020-09-21 17:48:26 · 696 阅读 · 0 评论 -
ETCD原理和基本实现
什么是 ETCD 官方定义为:Distributed reliable key-value store for the most critical data of a distributed system 简单直直译对就是:分布式系统中最关键的数据进行可靠的键值存储 ETCD 名字含义 /etc 是linux 操作系统的配置存储目录, d durtubute 分布式缩写,简单理解为分布式配置数据库。 ETCD 特性和应用场景 ETCD主要为了存储系统关键配置数据,配置数据很少修改,符合读多写少特性,根据此特原创 2020-09-21 17:46:32 · 278 阅读 · 0 评论 -
Jaeger入门简介
Jaeger主要用于监视和诊断基于微服务的分布式系统,包括: 分布式上下文传播、分布式事务监控、根本原因分析、服务依赖性分析、性能/延迟优化。用于程序间(服务间)轨迹追踪、行为追踪、调用关系追踪。 Logging主要是记录当前点离散事件(文本型描述数据),Metrics主要是记录当前点数值(度量值),Logging、Metrics只是对当前系统状况的离散记录,而tracing是对过程的一个记录,一个用户请求会调用多个服务,tracing用于记录这个过程中每一步的log Metrics数据(如 事件内容 执行原创 2020-09-21 17:39:40 · 778 阅读 · 0 评论 -
NSQ消息队列
异步任务与消息队列 同步任务:一定要等任务执行完了,得到结果,才执行下一个任务。 异步任务:不用等任务执行完,直接执行下一个任务。 异步任务最简单可以用异步线程实现,golang 中可以用goroutine实现,但受时间和不确定因素限制,进程有可能超时、退出或者被杀死,消息队列可以定义任何时间的延迟,几天都可以。异步线程、goroutine只是单机的实现,消息队列是分布式的,可以跨语言夸系统。消息队列是独立的,跨线程概念的,实现跨主机的分布式并发。 消息队列实现分布式的异步任务,利用分布式架构,实现可扩展性原创 2020-09-21 17:36:05 · 462 阅读 · 0 评论 -
Go语言特性介绍
采用goroutine的方式使多线程编写更加容易、代码可读性更好,可以简单理解为订阅者发布者模式,设计类似于unix管道通信模式, 对于消息队列编程有了解的话很容易理解goroutine的处理模式。 能直接编译成二进制文件没有第三方依赖,因为go是静态编译,包含自己runtime,相对于c会大一些, 但相对java 这种依赖虚拟器的语言编译后的文件小的多。对于docker环境更小的镜像意味着更快的...原创 2019-12-19 09:20:50 · 119 阅读 · 0 评论