我是用GRPC实现了微服务,并且打包进docker,问题是一般微服务如何实时提交日志?以及其他3个问题

第一个问题:我是用GRPC实现了微服务,并且打包进docker,问题是一般微服务如何实时提交日志?

第二个问题:如果1个微服务需要调用其他3个微服务,那么是不是调用的时候要用3个协程?因为并发运行。

第三个问题:还有go语言的协程是多核运行的吗?

阅读 1.7k
2 个回答

1.第一个问题如果用k8s跑的话,可以同步起一个sidecar容器来给日志的agent端做采集,efk全家桶,loki等等都可以。
2.第二个问题取决于你使用的场景,可以采用依赖注入的方式注册相关rpc-service的实例调用,也可以使用mq消息队列的方式去进行处理,也有其他的一些方式,主要还是结合自己的应用场景选型
3.多核,通过设置参数也可以让它单核跑

Q1 日志采集

可以直接上 ELK 一整套方案;另外还可以找云服务商的日志采集服务;

Q2 服务调用

这个取决于你的业务是不是需要同步调用。如果不需要同,那么肯定是并发效率更高。这里推荐 errgroup 这个包很方便的控制如何并发 goroutine

Q3 多核

goroutine 的特点就是可以利用多核

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题