![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Dubbo
Alagagaga
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
展开
-
手撸一个RPC框架——傻瓜式教程(七)
RPC框架——傻瓜式教程(七) 我们的RPC框架已经很完美了,最后做一点优化吧,做个服务端自动注册服务 服务端自动注册服务 本篇介绍一下如何基于注解进行服务的自动注册,这里需要一些反射知识。 注解 首先我们需要定义两个注解:Service 和 ServiceScan: Service @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface Service { public String nam原创 2020-08-06 22:52:27 · 668 阅读 · 0 评论 -
手撸一个RPC框架——傻瓜式教程(六)
RPC框架——傻瓜式教程(六) 今天的内容是自动注销服务和负载均衡策略 自动注销服务和负载均衡策略 自动注销服务 在(五)我们实现了服务的自动注册和发现,但是还是有问题的,如果你启动完成服务端后把服务端给关闭了,并不会自动地注销 Nacos 中对应的服务信息,这样就导致了当客户端再次向 Nacos 请求服务时,会获取到已经关闭的服务端信息,最终就有可能因为连接不到服务器而调用失败。 那么我们就需要一种办法,在服务端关闭之前自动向 Nacos 注销服务。但是有一个问题,我们不知道什么时候服务器会关闭,也就不知原创 2020-08-06 22:33:25 · 784 阅读 · 0 评论 -
手撸一个RPC框架——傻瓜式教程(五)
RPC框架——傻瓜式教程(五)原创 2020-08-06 21:30:04 · 659 阅读 · 0 评论 -
手撸一个RPC框架——傻瓜式教程(四)
RPC框架——傻瓜式教程(四) 上一篇里面说了Json序列化的缺点,就是在某个类的属性反序列化时,如果属性声明为 Object 的,就会造成反序列化出错,通常会把 Object 属性直接反序列化成 String 类型,就需要其他参数辅助序列化。并且,JSON 序列化器是基于字符串(JSON 串)的,占用空间较大且速度较慢。 Kryo序列化 Kryo 是一个快速高效的 Java 对象序列化框架,主要特点是高性能、高效和易用。最重要的两个特点,一是基于字节的序列化,对空间利用率较高,在网络传输时可以减小体积;原创 2020-08-06 16:34:51 · 417 阅读 · 0 评论 -
手撸一个RPC框架——傻瓜式教程(三)
RPC框架——傻瓜式教程(三) 完成了昨天的注册服务以后,我们今天继续做出新的改进,记得我们在(一)里面提到过,BIO的方式效率很低,所以我们今天换成NIO,用上netty原创 2020-08-06 16:06:11 · 641 阅读 · 0 评论 -
手撸一个RPC框架——傻瓜式教程(二)
RPC框架—傻瓜式教程(二) 在教程(一)中我们做的简易版实在是太辣鸡了,问题太多了 比如在注册完 helloService 后,服务器就自行启动了,也就是说,一个服务器只能注册一个服务,所以在这里我们进行第二步改进——服务的注册和服务器启动分离,使得服务端可以提供多个服务 服务注册 我们需要一个容器,这个容器很简单,就是保存一些本地服务的信息,并且在获得一个服务名字的时候能够返回这个服务的信息。于是我们创建一个 ServiceRegistry 接口 ServiceRegistry public int原创 2020-08-05 17:24:49 · 706 阅读 · 0 评论 -
手撸一个RPC框架——傻瓜式教程(一)
RPC框架—傻瓜式教程(一) 前言,太久没写博客了,有点手生,总结一下自己对RPC框架的学习过程 首先我们知道RPC的全名是,全程服务调用,我们用它来做什么,简单地说就是客户端通过接口调用服务端的函数或者方法。 但是这个看起来很简单的事情,还需要我们思考很多,序列化和反序列化,还有协议的约定,一大堆。 所以要想深入了解RPC框架,我们还要从浅到深,一点一点实现它。 开发环境: windows10 IDEA Maven 前期准备 首先我们创建一个maven项目,在pom.xml里导入我们的dependenc原创 2020-08-05 16:58:44 · 1968 阅读 · 0 评论