0
在設置爲請求traceId的API Gateway
應用程序中。然後通過HTTP
傳遞給我的無狀態服務。但服務應通過RPC
(使用IServiceRemotingListener
)調用另一項服務。我怎樣才能將traceId傳遞給其他服務?通過RPC與元數據進行服務結構通信
我到目前爲止已經進行(根據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?
謝謝。是否有其他方式通過IServiceRemotingClient傳遞CorrelationId? –
是的,請檢查:http://stackoverflow.com/questions/34166193/how-to-add-message-header-to-the-request-when-using-default-client-of-azure-serv/34221661# 34221661使用''''IServiceRemotingClient'''和'''ServiceRemotingDispatcher '''的自定義實現。 – LoekD
非常感謝您的聯繫和幫助 –