摘要:
从其他语言转入Go语言的同学经常会陷入一个思考:如何创建一个单例?有些同学可能会把其它语言中的双检锁模式移植过来,双检锁模式也称为懒汉模式,首次用到的时候才创建实例。但是Go没有Java中的volatile修饰符,它怎么保证线程安全呢? 阅读全文
随笔档案-2022年05月
Golang:将日志以Json格式输出到Kafka
2022-05-17 07:48 by 萤火架构, 750 阅读, 收藏, 编辑
摘要:
在上一篇文章中我实现了一个支持Debug、Info、Error等多个级别的日志库,并将日志写到了磁盘文件中,代码比较简单,适合练手。有兴趣的可以通过这个链接前往:https://github.com/bosima/ylog/releases/tag/v1.0.1 工程实践中,我们往往还需要对日志进行 阅读全文
Golang:手撸一个支持六个级别的日志库
2022-05-16 07:37 by 萤火架构, 588 阅读, 收藏, 编辑
摘要:
Golang标准日志库提供的日志输出方法有Print、Fatal、Panic等,没有常见的Debug、Info、Error等日志级别,用起来不太顺手。这篇文章就来手撸一个自己的日志库,可以记录不同级别的日志。 其实对于追求简单来说,Golang标准日志库的三个输出方法也够用了,理解起来也很容易: P 阅读全文
go-micro集成RabbitMQ实战和原理
2022-05-07 07:18 by 萤火架构, 497 阅读, 收藏, 编辑
摘要:
在go-micro中异步消息的收发是通过Broker这个组件来完成的,底层实现有RabbitMQ、Kafka、Redis等等很多种方式,这篇文章主要介绍go-micro使用RabbitMQ收发数据的方法和原理。 Broker的核心功能 Broker的核心功能是Publish和Subscribe,也就 阅读全文
sqlx操作MySQL实战及其ORM原理
2022-05-06 07:43 by 萤火架构, 700 阅读, 收藏, 编辑
摘要:
sqlx是Golang中的一个知名三方库,其为Go标准库database/sql提供了一组扩展支持。使用它可以方便的在数据行与Golang的结构体、映射和切片之间进行转换,从这个角度可以说它是一个ORM框架;它还封装了一系列地常用SQL操作方法,让我们用起来更爽。 sqlx实战 这里以操作MySQL 阅读全文
go-micro集成链路跟踪的方法和中间件原理
2022-05-05 07:37 by 萤火架构, 428 阅读, 收藏, 编辑
摘要:
前几天有个同学想了解下如何在go-micro中做链路跟踪,这几天正好看到wrapper这块,wrapper这个东西在某些框架中也称为中间件,里边有个opentracing的插件,正好用来做链路追踪。opentracing是个规范,还需要搭配一个具体的实现,比如zipkin、jeager等,这里选择z 阅读全文