探究Dubbo服务注册发现的原理
先来看看看看springboot整合dubbo的常规用法 下面是三个服务的调用链路 项目结构 服务提供者(例如pay-service)需要提供接口服务(@Service) 服务消费者(例如user-service)需要指定服务接口(@Reference),接口多实现可能需要配合version属性 这样就完成了基本的上游对下游服务的调用 探究下底层实现知道dubbo是基于netty实现的,所以它实现这种rpc调用的特点较其他(如feign-http)更适用高并发以及短链接的项目,接下来用netty的代码简单复现下基本的dubbo应用 1这里改一下,dubbo不仅仅只有netty的实现,还支持rmi协议,http协议等等 配合dubbo的服务注册发现链路图 简单捋顺下思路,看看我们需要哪几样东西 一个共享容器,用来存储服务地址(ip,port等),当服务存在多个,还需要负载均衡,以及服务信息修改后的通知功能 为了确定唯一的服务接口信息,需要包含接口名(像dubbo一样,多实现可能需要再加一个version),方法名,方法参数类型列表,方法值列表 ...
探究Dubbo服务注册发现的原理(二)
在上一篇我提到了dubbo的rpc是基于netty实现的,而且也按照它的原理简单的写了些代码,大致的梳理了一个整体的链路.而这一篇,我打算在上一篇的基础上,把整体的代码运用到正式项目中,看看该怎样实现1这里改一下,dubbo不仅仅只有netty的实现,还支持rmi协议,http协议等等 整体的项目结构如下 服务层链路就是简单的调用消费端接口,然后消费端再去服务端发送远端请求 然后接口层还是按照dubbo的服务最佳实践提到的,分离维护 先来看下消费者的代码(pom就是一个web和我手写的rpc) 12345678910@RestControllerpublic class ConsumerController { @Autowired ApplicationContext applicationContext; @GetMapping("/{name}") public String test(@PathVariable String name){ PayServic...
