文章列表
注册中心代码使用 zookeeper 实现,我们通过图片来看看我们注册中心的架构。
首先说明, zookeeper 的实现思路和代码是参考架构探险这本书上的,另外在 github 和我前面配置文件中的 zookeeper 服务器是用的1个月免费适用的阿里云,大家也可以用它当测试用。
不多说,一次性给出注册中心全部代码。
客户端对应的注册中心接口
Copy
public interface
上一章节我们已经实现了从客户端往服务端发送数据并且通过反射方法调用服务端的实现类最后返回给客户端的底层协议。这一章节我们来实现客户端代理类的注入。
承接上一章,我们实现了多个底层协议,procotol 有 netty,http,和 socket 三个实现类,每个实现类都有启动服务端和客户端发送数据两个方法。
问题
如何实现底层协议的选择那?可以通过配置文件来选择协议。
单独的配置文件还是和 Spring 的配置文件结合起来那?我们选择与 Spring 结合的配置文件,自定义一些属性的标签,这样能够更好的利用 Spring 的特性。
自定义 Spring 标签
先看整体的结构:
前言
上一篇文章中我们已经知道了什么是 RPC 框架和为什么要做一个 RPC 框架了,这一章我们来从宏观上分析,怎么来实现一个 RPC 框架,这个框架都有那些模块以及这些模块的作用。
总体设计
在我们的整个框架里比较重 ...
在写代码之前我们先要想清楚几个问题。
我们的框架到底要实现什么功能?我们要实现一个远程调用的 RPC 协议。
最终实现效果是什么样的?我们能像调用本地服务一样调用远程的服务。
怎样实现上面的效果?前面几章已经给大家说了,使用动态代理,在客户端生成接口代理类使用,在代理类的 invoke 方法里面将方法参数等信息组装成 request 发给服务端,服务端需要起一个服务器一直等待接收这种消息,接收之后使用反射调用对应接口的实现类。
首先我们需要实现底层的通信的服务端和客户端,可以有一下几种实现:
基于 Socket 的客户端和服务端(同步阻塞式,不推荐),大家可以当作一个编程练 ...
概述
首先这篇文章是要带大家来实现一个框架,听到框架大家可能会觉得非常高大上,其实这和我们平时写业务员代码没什么区别,但是框架是要给别人使用的,所以我们要换位思考,怎么才能让别人用着舒服,怎么样才能让我们的框架性能优异。通过自己写一个框架,我们能学到的有很多,能让我们脱离 CURD,在更高的层面上去思考。
目的
写这个框架最主要的目的是要让大家了解整个框架的设计思想和用到的技术,并不是让大家关注代码,当然我实现的代码一定不是完美的,还有很多需要改进的地方,希望大家不吝赐教,一起进步。
提前准备