服务韧性是微服务里非常重要的一项技术,它可以在服务环境不可靠的情况下仍能提供适当的服务,大大提高了服务的容错能力。它使用的技术包括服务超时 (Timeout),服务重试 (Retry),服务限流(Rate Limitting),熔断器 (Circuit Breaker),故障注入(Fault Injection)和舱壁隔离技术(Bulkhead)。 你可以用代码也可以用Service Mesh来实现这些功能,Service Mesh是将来的方向。但实现它们需要大量的工作,因此需要考虑清楚到底哪些服务真正需要它们。
阅读更多 →
全链路跟踪包括不同的场景,例如在函数内部跟踪,数据库跟踪和跨进程跟踪。 每个场景都有不同的问题和解决方案。如果你想设计更好的跟踪解决方案或为你的应用选择最适合的跟踪工具或库, 那你需要对每种情况都有清晰的了解。
阅读更多 →
“我写了一系列关于用清晰架构(Clean Architecture)和SOLID设计Go Microservice和gRPC 的文章。它讨论了应用程序设计,应用程序布局和项目结构,日志记录,错误处理,事务管理,应用程序容器(Application Container)和依赖注入(Dependency Injection)。“
阅读更多 →
在微服务架构中,需要调用很多服务才能完成一项功能。服务之间如何互相调用就变成微服务架构中的一个关键问题。服务调用有两种方式,一种是RPC方式,另一种是事件驱动(Event-driven)方式,也就是发消息方式。消息方式是松耦合方式,比紧耦合的RPC方式要优越,但RPC方式如果用在适合的场景也有它的一席之地.
阅读更多 →
程序容器使用依赖注入创建具体类型并将它们注入每个函数。 在它内部使用工厂方法模式。
阅读更多 →