Go的一些开源包了解与认知

Beego

  • beego是一个快速开发Go应用的http框架
  • beego可以用来快速开发API、Web、后端服务等各种应用,是一个RESTFul的框架,主要设计灵感来源于PHP的一些框架,但是结合了Go本身的一些特性(interface、struct继承等)而设计的一个框架。
  • beego可以用来快速开发API、Web、后端服务等各种应用,是一个RESTFul的框架,主要设计灵感来源于tornado、sinatra、flask这三个框架,但是结合了Go本身的一些特性(interface、struct继承等)而设计的一个框架。
  • 抛出代码质量和框架的质量不说。只说一点,作者为golang在中国的普及作出了不可磨灭的贡献。
  • beego作者水平略有不足,写的代码存在超多层的循环嵌套结构,这是网上很多人批评的,但作者自己不承认问题、拒绝修正…
  • 某些源码发现一层层的嵌套令人真的痛苦

etcd

etcd 是一个分布式的 kv 存储,具有高性能和可靠的优点。etcd 可以应用到以下场景:

  • 服务发现:所有服务将元信息存储到以某个 prefix 开头的 key 中,然后消费者从这些 key 中获取服务信息并调用。消费者也可以 watch 这些 key 的变更,以便在服务增加和减少时及时获得通知。

  • 配置共享:应用将配置信息存放到 etcd,当配置信息被更改时可以通过 watch 机制从 etcd 及时获得通知。

  • 分布式锁:由于 etcd 中的数据是一致的,当多个应用同时去创建一个 key 时只有一个会成功,创建成功的应用即获取了锁。

  • etcd 还有更多的应用场景,例如集群监控,Leader 竞选等。需要注意的是,应该使用 etcd 来存储一个关键的控制数据,对于应用数据应该只在数据量较小时存储。

etcd 已经应用到很多的项目中,其中最著名的莫过于 kubernetes。etcd 已经是一个相当成熟的项目,当你的项目中有需要服务发现,配置共享等功能时,可以考虑使用 etcd。

tail

  • 文件打包相关的操作

Sarama

  • Sarama是MIT许可的Apache Kafka版本0.8(及更高版本)的Go客户端库
发布了40 篇原创文章 · 获赞 26 · 访问量 7679

猜你喜欢

转载自blog.csdn.net/weixin_44879611/article/details/104545804