m6web / xrequestuid-bundle
此包已废弃,不再维护。未建议替代包。
关于此包最新版本(v3.0.1)没有提供许可证信息。
允许在通过guzzle传播的header中设置ids的sf2捆绑包
v3.0.1
2020-01-30 16:06 UTC
Requires
- php: ^7.0
Requires (Dev)
- atoum/atoum: ^2.8|^3.0
- guzzlehttp/guzzle: ~6.0
- m6web/coke: ~1.2
- m6web/symfony2-coding-standard: ~1.2
- symfony/symfony: ^2.7|^3.0|^4.0
This package is auto-updated.
Last update: 2022-03-01 00:13:12 UTC
README
要将此实现到Symfony 3或Symfony 4应用程序中,请至少使用版本v3.0.0
。
为什么?
"微服务中酷的地方是您只需一个客户端http调用就可以在您的基础设施中生成15个http调用"
这种情况导致API系统之间的调用跟踪困难重重,尤其是在内部调用失败时。此包提供了一种生成新请求的id并相应配置guzzle服务的解决方案,以便它们在子http请求中使用这些id。
此包将生成和/或转发以下两个header:X-Request-Uid和X-Request-Parent-Uid。
如何?
当请求到达时,如果存在X-Request-Id,则将其复制到X-Request-Parent-Id中。如果不存在,则通过uniqId_service生成它。
所有您的guzzle服务都被一个代理装饰,该代理将在所有调用中添加这两个header。
最后,这两个header都添加到响应中,以供调试目的。
您现在可以将这两个header添加到日志文件中,并跟踪调用。
配置
m6_web_x_request_uid: request_uid_header_name: X-Request-toto # optionnal, X-Request-Uid by default request_parent_uid_header_name: X-Parent # optionnal, X-Request-Parent-Uid by default uniqId_service: myservice # optionnal, a service implementing UniqIdInterface services: # list of guzzle services to decorate - test.guzzle1 services: test.guzzle1: class: 'GuzzleHttp\Client'
如果您有其他创建guzzle服务的包,请确保在您的AppKernel
文件中将此包添加到它们之后。
您可以定义自己的uniqId服务或直接使用包中提供的一个(它执行基本的php uniqid
)。
相关
- 使用GuzzleHttp Bundle来实例化您的guzzle服务。
- 使用LogBridge Bundle来查看发生问题时的情况。
待办事项
- 添加更多测试
- 添加更多文档