1.rpc的本质

一个服务,比如说idip,mail这种的,他是一个进程,监听在一个端口,一个服务器可以起多个服务,只要多个端口不互相占用就可以了。一个服务又有多个协议,一次rpc调用就是一个协程(轻量级线程),所以对单机器来说,微服务本质也是并发的情况的。

2.请求rpc会发生什么

3.ctx

ctx是随着内存传递的,不能跨网络(如果不发生自己起服务(RPC Client)调用自己的话,跨端口可以简单看成跨网络),一个端口,他们都是在同一个内存块的,所以ctx是可以传递的,都是内存的函数调用嘛,但是如果起了服务,那么就跨网络了,ctx额外带的东西是会丢失的,traceid是框架强制封装带的。这就是我们的现象的解释,通用方法里面传递,我们自己的idip发邮件的服务还是有的,但是发邮件服务中间调用paly,mail的client来使用服务的时候,这就是跨网络了,我们的ctx额外的东西就穿不过去了。