
Golang
文章平均质量分 93
Golang开发技术介绍。
萤火架构
程序员,AI探索者。+V: yinghuojun007
展开
-
Go使用双检锁的最佳实践
从其他语言转入Go语言的同学经常会陷入一个思考:如何创建一个单例?有些同学可能会把其它语言中的双检锁模式移植过来,双检锁模式也称为懒汉模式,首次用到的时候才创建实例。原创 2022-05-27 08:33:55 · 505 阅读 · 0 评论 -
Golang:将日志以Json格式输出到Kafka
在上一篇文章中我实现了一个支持Debug、Info、Error等多个级别的日志库,并将日志写到了磁盘文件中,代码比较简单,适合练手。有兴趣的可以通过这个链接前往:https://github.com/bosima/ylog/releases/tag/v1.0.1工程实践中,我们往往还需要对日志进行采集,将日志归集到一起,然后用于各种处理分析,比如生产环境上的错误分析、异常告警等等。在日志消息系统领域,Kafka久负盛名,这篇文章就以将日志发送到Kafka来实现日志的采集;同时考虑到日志分析时对结构化数据的原创 2022-05-17 07:47:53 · 1086 阅读 · 0 评论 -
Golang:手撸一个支持六种级别的日志库
Golang标准日志库提供的日志输出方法有Print、Fatal、Panic等,没有常见的Debug、Info、Error等日志级别,用起来不太顺手。这篇文章就来手撸一个自己的日志库,可以记录不同级别的日志。其实对于追求简单来说,Golang标准日志库的三个输出方法也够用了,理解起来也很容易:Print用于记录一个普通的程序日志,开发者想记点什么都可以。Fatal用于记录一个导致程序崩溃的日志,并会退出程序。Panic用于记录一个异常日志,并触发panic。不过对于用惯了Debug、Info、原创 2022-05-16 07:36:36 · 1080 阅读 · 0 评论 -
go-micro集成RabbitMQ实战和原理
在go-micro中异步消息的收发是通过Broker这个组件来完成的,底层实现有RabbitMQ、Kafka、Redis等等很多种方式,这篇文章主要介绍go-micro使用RabbitMQ收发数据的方法和原理。Broker的核心功能Broker的核心功能是Publish和Subscribe,也就是发布和订阅。它们的定义是:Publish(topic string, m *Message, opts ...PublishOption) errorSubscribe(topic string, h Ha原创 2022-05-07 07:18:27 · 637 阅读 · 2 评论 -
go-micro集成链路跟踪的方法和中间件原理
前几天有个同学想了解下如何在go-micro中做链路跟踪,这几天正好看到wrapper这块,wrapper这个东西在某些框架中也称为中间件,里边有个opentracing的插件,正好用来做链路追踪。opentracing是个规范,还需要搭配一个具体的实现,比如zipkin、jeager等,这里选择zipkin。链路跟踪实战安装zipkin通过docker快速启动一个zipkin服务端:docker run -d -p 9411:9411 openzipkin/zipkin程序结构为了方便演示,原创 2022-05-05 07:36:42 · 1801 阅读 · 0 评论 -
go-micro使用Consul做服务发现的方法和原理
go-micro v4默认使用mdns做服务发现。不过也支持采用其它的服务发现中间件,因为多年来一直使用Consul做服务发现,为了方便和其它服务集成,所以还是选择了Consul。这篇文章将介绍go-micro使用Consul做服务发现的方法。关于Consul的使用方式请参考我的另一篇文章:使用Consul做服务发现的若干姿势 。原创 2022-04-25 07:39:42 · 2304 阅读 · 0 评论 -
go-micro开发RPC服务的方法及其运行原理
go-micro是一个知名的golang微服务框架,最新版本是v4,这篇文章将介绍go-micro v4开发RPC服务的方法及其运作原理。原创 2022-04-24 07:40:39 · 2265 阅读 · 0 评论 -
基于知名微服务框架go-micro开发gRPC应用程序
go-micro是golang的一个微服务框架。这篇文章将介绍使用go-micro最新版本v4开发gRPC服务的方式。原创 2022-04-21 07:14:29 · 755 阅读 · 0 评论 -
解决go-micro与其它gRPC框架之间的通信问题
在之前的文章中分别介绍了使用gRPC官方插件和go-micro插件开发gRPC应用程序的方式,都能正常走通。不过当两者混合使用的时候,互相访问就成了问题。原创 2022-04-22 07:17:39 · 613 阅读 · 0 评论 -
十分钟学会Golang开发gRPC服务
gRPC是Google发起的一个开源RPC框架,使用HTTP/2传输协议,使用Protocol Buffers编码协议,相比RESTful框架的程序性能提高不少,而且当前流行的编程语言基本都已经支持。Golang开发gRPC应用程序的套路也已经很清晰,这篇文章就来做一个简单的介绍,算是入门。1、安装protoc这个工具也称为proto编译器,可以用来生成各种开发语言使用proto协议的代码。下载地址:https://github.com/protocolbuffers/protobuf/releas原创 2022-04-20 07:27:00 · 2676 阅读 · 0 评论