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