我们计划使用服务结构重新设计我们的微服务服务,我有一些问题,希望您可以帮助我,我们走了:
通讯堆栈
我们所有的服务都使用net.tcp在WCF上,所以理论上我们可以重用WCF通信栈,但我不确定这是最好的方法,默认通信栈和WCF之间的区别是什么?
扩展
我们有很多使用WCF的扩展点的实现,如果我们选择WCF通信栈我们还能使用它吗?我们基本上使用IServiceBehavior
,IOperationInvoker
,OperationContext
和ServiceSecurityContext
:
1。安全性 ServiceSecurityContext
/ OperationContext
获取IP,如果呼叫在内部网中正在进行呼叫的域帐户,我检查了StatelessServiceContext但找不到任何属性我可以得到这个信息。
2。参数和时间 IOperationInvoker
记录方法的参数以及完成操作所花费的时间,阅读this看来,如果实现启动/停止方法,则持续时间已完成自动地,我不确定这是否会在属性的上下文中发挥作用,并在发生错误时使用IErrorHandler
。
第3。通知 IErrorHandler
记录异常,然后向开发人员团队发送电子邮件,我们目前正在使用SMTP服务器执行此操作,是否有更好的方法在azure中发送通知?
感谢您的时间
答案 0 :(得分:0)
回答这个问题:
通讯堆栈 从未在默认侦听器和WcfCommunicationListener之间进行性能比较,但我们选择了WCF重用所有组件,并作为第一个版本来了解服务结构的工作原理。
<强>扩展强>
安全性所有代码的工作原理相同,我们需要对上下文的工作方式进行一些更改,但所需的所有信息都在那里(加上节点上的一些数据)运行)
参数和时间我们使用Azure Service Profiler和我们自己的Microsoft.Diagnostics.Tracing.EventSource实现,使用IOperationInvoker捕获数据,很棒
通知 IErrorHandler继续工作,但我们使用sendgrid发送电子邮件。