个人简介

Echo Blog


江湖无名 安心练剑
  • 基于 netty4 手写 rpc-13-callType 调用方式
    callType 调用方式 说明 不同的场景我们会希望有不同的调用方式。 常见的有三种调用方式: (1)sync 同步调用 (2)async 异步调用 (3)oneWay 单向调用 个人感觉(1)(3)是最常见的需求,所以本次优先实现了这两种。 实现思路 不同的调用方式只是处理的行为不同而已。 可以将这个配置传递,分别在 client/server 的端进行相应的处理。 ...
    2018-08-24 08:23:15 | Java
  • 基于 netty4 手写 rpc-12-load balance 负载均衡
    load balance 当我们有多个服务端时,就需要负载均衡进行选择。 策略 负载均衡的策略有很多,比如随机选择,权重选择,最小负载等等。 实现思路 直接将所有可以选择的服务端列举出来,通过实现对应的策略,选择一个即可。 代码实现 接口 为了便于拓展,我们定义一个接口。 /* * Copyright (c) 2019. houbinbin Inc. * rpc Al...
    2018-08-24 08:23:15 | Java
  • 基于 netty4 手写 rpc-11-register center 注册中心
    register 注册中心 上一节我们实现了 register 注册中心的基本实现,当然客户端和服务端也需要相关的实现调整。 服务端 ServiceRegistry 接口 调整如下: package com.github.houbb.rpc.server.registry; /** * 服务注册类 * (1)每个应用唯一 * (2)每个服务的暴露协议应该保持一致 * 暂...
    2018-08-24 08:23:15 | Java
  • 基于 netty4 手写 rpc-10-register center 注册中心
    register 注册中心 需求 服务的注册与发现,是一个很常见也很有用的需求。 可以让我们不关心服务端的 ip 信息,只关心服务本身。 思路 实现的方式 SimpleRpcRegister 为 rpc 提供的默认实现方案。 实际可以结合 redis,zk 等常见的成熟框架实现。 其实可以把 register 当做是服务端,此时的 server/client 都是客户端。 ...
    2018-08-24 08:23:15 | Java
  • java 从零开始手写 RPC (07)-timeout 超时处理
    《过时不候》 最漫长的莫过于等待 我们不可能永远等一个人 就像请求 永远等待响应 超时处理 java 从零开始手写 RPC (01) 基于 socket 实现 java 从零开始手写 RPC (02)-netty4 实现客户端和服务端 java 从零开始手写 RPC (03) 如何实现客户端调用服务端? java 从零开始手写 RPC (04) 序列化 java 从零开始...
    2018-08-24 08:23:15 | Java
  • java 从零开始手写 RPC (06) reflect 反射实现通用调用之客户端
    通用调用 java 从零开始手写 RPC (01) 基于 socket 实现 java 从零开始手写 RPC (02)-netty4 实现客户端和服务端 java 从零开始手写 RPC (03) 如何实现客户端调用服务端? java 从零开始手写 RPC (04) -序列化 上一篇我们介绍了,如何实现基于反射的通用服务端。 这一节我们来一起学习下如何实现通用客户端。 因为内容较...
    2018-08-24 08:23:15 | Java
  • java 从零开始手写 RPC (05) reflect 反射实现通用调用之服务端
    通用调用 java 从零开始手写 RPC (01) 基于 socket 实现 java 从零开始手写 RPC (02)-netty4 实现客户端和服务端 java 从零开始手写 RPC (03) 如何实现客户端调用服务端? java 从零开始手写 RPC (04) -序列化 前面我们的例子是一个固定的出参和入参,固定的方法实现。 本节将实现通用的调用,让框架具有更广泛的实用性。 ...
    2018-08-24 08:23:15 | Java
  • java 从零开始手写 RPC (04) -序列化
    序列化 java 从零开始手写 RPC (01) 基于 socket 实现 java 从零开始手写 RPC (02)-netty4 实现客户端和服务端 java 从零开始手写 RPC (03) 如何实现客户端调用服务端? 前面几节我们实现了最基础的客户端调用服务端,这一节来学习一下通讯中的对象序列化。 为什么需要序列化 netty 底层都是基于 ByteBuf 进行通讯的。 ...
    2018-08-24 08:23:15 | Java