【发布时间】:2017-07-12 16:35:27
【问题描述】:
在API Gateway 应用程序中,我设置为请求traceId。然后通过HTTP 将其传递给我的无状态服务。但是服务应该通过RPC(使用IServiceRemotingListener)调用另一个服务。如何将该 traceId 传递给其他服务?
到目前为止我已经完成了(根据this):
public interface ICommunicationService : IService
{
Task<string> FooAsync();
}
public class Stateless1 : StatelessService, ICommunicationService
{
protected override IEnumerable<ServiceInstanceListener> CreateServiceInstanceListeners()
{
return new[] { new ServiceInstanceListener(c => this.CreateServiceRemotingListener(c)) };
}
public Task<string> FooAsync()
{
return Task.FromResult("TraceId: " + TraceId);
}
}
并尝试使用它:
ICommunicationService service = ServiceProxy.Create<ICommunicationService>(new Uri("fabric:/App/Stateless1"));
string message = await service.FooAsync();
如何将该 TraceId 传递给其他服务 b RPC?
【问题讨论】:
标签: c# azure rpc microservices azure-service-fabric