摘要: 在最近一段时间里,通过搜集有关资料加上自己的理解,设计了一款轻量级RPC,起了一个名字 lightWeightRPC 。它拥有一个RPC常见的基本功能。主要功能和特点如下: 利用Spring实现依赖注入与参数配置 利用Netty来实现客户端与服务端的远程通信 利用Hessian来实现序列化 设置Zo 阅读全文
posted @ 2020-02-19 23:04 房东的小黑黑 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 在本版本中引入了SPI机制,关于Java的SPI机制与Dubbo的SPI机制在以前的文章中介绍过。 传送门: "Dubbo的SPI机制与JDK机制的不同及原理分析" 因为设计的RPC框架是基于Spring的,时常会遇到依赖注入问题。Spring中也有SPI机制,但是它有有个缺点,就是在利用SPI机制 阅读全文
posted @ 2020-02-19 23:02 房东的小黑黑 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 在前两个版本中,每次发起请求一次就新建一个netty的channel连接,如果在高并发情况下就会造成资源的浪费,这时实现 异步请求 就十分重要,当有多个请求线程时,需要设计一个 线程池 来进行管理。除此之外,当前方法过于依赖注册中心,在高并发情况下对注册中心造成了压力;另外如果注册中心出现宕机等情况 阅读全文
posted @ 2020-02-19 23:00 房东的小黑黑 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 在上一个版本中利用netty实现了简单的一对一的RPC,需要手动设置服务地址,限制性较大。 在本文中,利用zookeeper作为服务注册中心,在服务端启动时将本地的服务信息注册到zookeeper中,当客户端发起远程服务调用时,先从zookeeper中获取该服务的地址,然后根据获得的这个地址来利用n 阅读全文
posted @ 2020-02-19 22:59 房东的小黑黑 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 什么是RPC RPC (Remote Procedure Call Protocol), 远程过程调用,通俗的解释就是:客户端在不知道调用细节的情况下,调用存在于远程计算机上的某个对象,就像调用本地应用程序中的对象一样,不需要了解底层网络技术的协议。 简单的整体工作流程 请求端发送一个调用的数据包, 阅读全文
posted @ 2020-02-19 22:58 房东的小黑黑 阅读(401) 评论(0) 推荐(0) 编辑
摘要: 在dubbo中,关于注册中心Registry的有关实现封装在了dubbo registry模块中。提供者(Provider)个消费者(Consumer)都是通过注册中心进行资源的调度。当服务启动时,provider会调用注册中心的register方法将自己的服务通过url的方式发布到注册中心,而co 阅读全文
posted @ 2020-02-19 22:56 房东的小黑黑 阅读(927) 评论(0) 推荐(0) 编辑
摘要: 在网络传输中,怎么确保通道连接的可用性是一个很重要的问题,简单的说,在网络通信中有客户端和服务端,一个负责发送请求,一个负责接收请求,在保证连接有效性的背景下,这两个物体扮演了什么角色,心跳机制能有效的保证连接的可用性,那它的机制是什么,下文中将会详细讲解。 网络层的可用性 首先讲一下TCP,在du 阅读全文
posted @ 2020-02-19 22:55 房东的小黑黑 阅读(1449) 评论(0) 推荐(0) 编辑
摘要: 在上文中介绍了基础类AbstractRegistry类的解释,在本篇中将继续介绍该包下的其他类。 FailbackRegistry 该类继承了AbstractRegistry,AbstractRegistry中的注册订阅等方法,实际上就是一些内存缓存的变化,而真正的注册订阅的实现逻辑在Failbac 阅读全文
posted @ 2020-02-19 22:54 房东的小黑黑 阅读(448) 评论(0) 推荐(0) 编辑
摘要: 从今天开始,将会逐步介绍关于DUbbo的有关知识。首先先简单介绍一下DUbbo的整体概述。 概述 Dubbo是SOA(面向服务架构)服务治理方案的核心框架。用于分布式调用,其重点在于分布式的治理。 简单的来说,可以把它分为四个角色。服务提供方(Provider)、服务消费方(Consumer)、注册 阅读全文
posted @ 2020-02-19 22:53 房东的小黑黑 阅读(473) 评论(0) 推荐(0) 编辑
摘要: 在上一篇文章 Dubbo之服务暴露分析 中介绍了当远程暴露时,如果有注册中心,需要在服务暴露后再将服务注册到注册中心。该篇将介绍该功能的有关步骤。 注册的起点 在 方法包含了服务导出,注册,以及数据订阅等逻辑。其中服务注册先调用 方法。 可以看出,服务注册主要包括两部分, 获取注册中心实例 和 向注 阅读全文
posted @ 2020-02-19 22:51 房东的小黑黑 阅读(704) 评论(0) 推荐(0) 编辑
摘要: Dubbo的服务暴露是一个重要的特性,了解其机制很重要。之前有很多人写了有关的源代码分析,在本文中不再重新分析。官方文档中的一篇写的就很好,本文主要是有关内容进行补充与总结。 传送门: "服务导出" 为什么要服务暴露 服务暴露分为远程暴露和本地暴露。在远程服务暴露中会将服务信息上传到注册中心。这时客 阅读全文
posted @ 2020-02-19 22:46 房东的小黑黑 阅读(537) 评论(1) 推荐(1) 编辑
摘要: Dubbo的服务消费主要包括两个部分。第一大步是 类的 方法调用 的`refer Invoker`实例,这是服务消息的关键。第二大步是把Invoker通过动态代理转换成实现用户接口的动态代理引用。这里的Invoker承载了网络连接、服务调用和重试等功能。 服务暴露起点 在消费者的配置文件中存在这个代 阅读全文
posted @ 2020-02-19 17:28 房东的小黑黑 阅读(239) 评论(0) 推荐(0) 编辑
摘要: Dubbo的服务消费主要包括两个部分。第一大步是 类的 方法调用 的`refer Invoker`实例,这是服务消息的关键。第二大步是把Invoker通过动态代理转换成实现用户接口的动态代理引用。这里的Invoker承载了网络连接、服务调用和重试等功能。 服务暴露起点 在消费者的配置文件中存在这个代 阅读全文
posted @ 2020-02-19 17:26 房东的小黑黑 阅读(69) 评论(0) 推荐(0) 编辑