proemergotech/correlate-php-psr-7

用于处理微服务中传入的关联ID头部的PSR-7中间件。

dev-master 2017-09-13 14:21 UTC

This package is not auto-updated.

Last update: 2024-09-15 03:08:41 UTC


README

概述

当我们与微服务一起工作时,很难跟踪整个系统中的请求。我们针对这个问题提出了一种解决方案。我们为每个请求和每个服务生成一个唯一的版本4 uuid,并通过请求头部将此ID传递给其他服务。我们称此为关联ID

安装

  • 通过composer安装
composer require proemergotech/correlate-php-psr-7

Slim 3框架的配置

要将此类用作中间件,您可以使用 ->add( new ExampleMiddleware() ); 函数链在 $appRoutegroup() 之后,以下代码中的任何一个都可以代表 $subject

$logger = $app['monolog']; // Must be \Monolog\Logger

// This is an optional callback function to set correlation id to a DIC.
$callback = function($correlationId) use ($app) { 
    $app->getContainer()['cid'] = $correlationId;
}

$subject->add(new \ProEmergotech\Correlate\Psr7\Psr7CorrelateMiddleware($logger, $callback));

传递 \Monolog\Logger 是可选的。

用法

如果提供了可选的 \Monolog\Logger 实例到中间件的构造函数中,则此中间件会自动将关联ID(来自请求头部)添加到每个日志消息中。

如果您想使用它,可以在路由控制器中访问关联ID。

$cid = $request->getAttribute(\ProEmergotech\Correlate\Correlate::getParamName());

贡献

请参阅 CONTRIBUTING.md 文件。

致谢

此包由 Soma SzélpálPro Emergotech Ltd. 开发。

许可

本项目根据 MIT 许可证 发布。