使用 Netty + Protobuf 开发自定义的 RPC 功能

一 点睛

RPC 是指一个节点通过网络请求另一个节点提供的服务,这里所说的“提供的服务”可以具体化为“提供的方法”或“提供的属性”。

本篇实现一个最简单的 RPC 功能:调用的双方都是采用 Java 语言编写,并且调用的服务是远程提供的“属性”。

二 实战

1 将 message 以规定的语法结构编写到 Student.proto 文件中。

netty\protobuf\Student.proto

syntax = "proto2" ;

package netty.protobuf ;

option optimize_for = SPEED ;

option java_package = "netty.protobuf" ;

option java_outer_classname = "StudentMessage" ;

message Student

{

    required string name = 1 ;

    optional int32 age = 2 ;

}

2 根据  Student.proto 生成 Java 存储数据的数据结构,即 Java 类

E:\JVMDemo\demo2022>protoc --java_out=src/main/java src/main/java/netty/protobuf/Student.proto

该命令会根据 Student.proto 定义好的规则,在 src/main/java 目录下生成包 "netty.protobuf",并在该包中生成 StudentMessage.java

3 客户端主程序类

package netty.protobuf;

import io.netty.bootstrap.Bootstrap;
import io.netty.channel.Channel;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioSocketChannel;

public class MyNettyClientTest {
    public sta
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值