一.服务端启动流程
1.启动socket
io.grpc.ServerBuilder.forPort(port):服务启动第一步,绑定了个SocketAddress,端口为给定port,地址为localhost(根据InetAddress.anyLocalAddress()获得)
2.绑定服务
1)InternalHandlerRegistry:内部注册中心,服务需要注册到这个类里面,此类有一个HashMap<String, ServerServiceDefinition>
2)这里服务类似于一个功能,客户端从注册中心选取相应的功能调用
3.创建服务
1)有两个地方要注意:protocolNegotiator里面绑定的是Http2ConnectionHandler,sslContext是null
2)创建了一个NettyServer,被封到了ServerImpl中,拿到了服务实例
4.启动
1)创建执行器——一个线程池:作用是
2)创建group1——NioEventLoopGroup
3)创建group2——NioEventLoopGroup
4)启动
比起大型分布式应用,过程要少一些,但关于netty和http的背景比较多,后面再对上面的内容细化