java 自己动手实现一个分布式系统 之 Netty篇 序列化扩展 thrift插件安装

 linux下thrift安装和rhbase安装:

https://blog.csdn.net/qq_21153619/article/details/82250725

1、概述
Thrift最初由Facebook开发的,后来提交给了Apache基金会将Thrift作为一个开源项目。当时facebook开发使用它是为了解决系统中各系统间大数据量的传输通信以及系统之间语言环境不同需要跨平台的特性问题。Thrift是一个跨语言的服务部署框架。Thrift通过一个中间语言(IDL, 接口定义语言)来定义RPC的接口和数据类型,然后通过一个编译器生成不同语言的代码(目前支持C++,Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk和OCaml),并由生成的代码负责RPC协议层和传输层的实现。

Thrift实际上是实现了C/S模式,通过代码生成工具将接口定义文件生成服务器端和客户端代码(可以为不同语言),从而实现服务端和客户端跨语言的支持。在Thirft描述文件中声明自己的服务,这些服务经过编译后会生成相应语言的代码文件,然后实现服务便可以了。其中protocol(协议层, 定义数据传输格式,可以为二进制或者XML等)和transport(传输层,定义数据传输方式,可以为TCP/IP传输,内存共享或者文件共享等)被用作运行时库。

2、下载
http://archive.apache.org/dist/thrift/0.11.0/

3、安装
在C盘新建一个Thrift文件夹,将下载的thrift-0.11.0.exe重新命名为thrift.exe后放到Thtift文件夹下


4、配置环境变量


5、验证是否安装成功
Ctrl+R输入cmd打开DOS窗口,在窗口输入thrift -version

即为安装成功

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要自定义一个序列化的 `io.netty.channel.Channel`,你需要实现以下步骤: 1. 创建一个 Java 类来实现你的 Channel。这个类需要继承 `io.netty.channel.AbstractChannel` 类,并且实现必要的构造函数和方法。 2. 为了实现信息的接收与发送,你需要覆盖 `io.netty.channel.AbstractChannel` 类中的 `doBind()`、`doConnect()`、`doWrite()`、`doReadMessages()` 方法。这些方法分别负责绑定、连接、写入数据和读取数据。 3. 为了实现序列化,你需要实现 `java.io.Serializable` 接口,并且在你的 Channel 类中添 `writeObject()` 和 `readObject()` 方法。这些方法分别负责将 Channel 对象序列化成字节流和反序列化字节流成 Channel 对象。 下面是一个简单的示例代码: ```java import io.netty.channel.AbstractChannel; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; public class MyChannel extends AbstractChannel implements Serializable { // 构造函数 public MyChannel(Channel parent) { super(parent); } // 实现信息的接收与发送 @Override protected void doBind(SocketAddress localAddress) throws Exception { // 绑定操作 } @Override protected void doConnect(SocketAddress remoteAddress, SocketAddress localAddress) throws Exception { // 连接操作 } @Override protected void doWrite(ChannelOutboundBuffer outboundBuffer) throws Exception { // 写入数据操作 } @Override protected void doReadMessages(List<Object> buf) throws Exception { // 读取数据操作 } // 实现序列化 private void writeObject(ObjectOutputStream out) throws IOException { // 将 Channel 对象序列化成字节流 } private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { // 将字节流反序列化成 Channel 对象 } } ``` 你可以根据你的具体需求进行更改和扩展
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值