RPC系列-初体会

RPC(Remote Process Call) 远程过程调用,是分布式服务调用的流行的解决方案,现在比较流行的RPC框架有Google的grpc,脸谱的Thrift,Hadoop的子项目Avro-RPC等。
作为RPC的菜鸟,该怎么建立起对RPC的初步认识呢,那就亲自手动的自己敲一个简单的RPC实现,对RPC的理解有很大的帮助。下面是自己模拟简单实现RPC的实现,代码简陋,适合初学(最好自己使用过RPC技术)。
建立两个项目RpcService,RpcClient
一、Rpc服务端(RpcService)
服务器端建立对外提供服务的service,rpc的发布,开启服务,对应的包结构:
com.hhh.rpc.service –服务提供
com.hhh.rpc.publish –服务发布
com.hhh.app –服务开启

1、 对外提供的服务
1.1 服务接口

package com.hhh.rpc.service;

/**
 * Created by 泡泡 on 2017/3/23.
 * 服务提供
 */
public interface GreetService {
   
    String greet(String msg);
}

1.2 服务实现

package com.hhh.rpc.service.impl;

import com.hhh.rpc.service.GreetService;

/**
 * Created by 泡泡 on 2017/3/23.
 * 服务实现
 */
public class GreetServiceImpl implements GreetService {
   

    @Override
    public String greet(String msg) {
        return "servive greeting:" + msg != null ? msg :"Hello RPC!";
    }
}

2、服务发布
服务发布利用传统的阻塞Socket通信

package com.hhh.rpc.publish;

import java.io.*;
import java.lang.reflect.Method;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**
 * Created by 泡泡 on 2017/3/23.
 * 服务发布
 */
public class RpcPublish {
   
    private static final ExecutorService executor = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
    /**
     * host:对外暴露的服务地址
     * port:服务端口
     **/
    public static void publish(String host,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值