JAVA RPC (三) 之thrift序列化协议入门杂谈
首先抱歉让大家久等了,最近工作的原因,再加上自己维护koalas rpc利用的大部分时间,一直没腾出空来写这篇文章。
先放出来自研的企业级RPC框架源代码地址,上面有使用方式和部署环境说明,说环境部署,其实只需要傻瓜式的安装一个zookeeper就可以了。
地址:https://gitee.com/a1234567891/koalas-rpc,三分钟一个企业级的RPC框架就诞生了。没有那么多繁杂的API,没有那么多需要踩的坑,拿来即用。完全开源
----------------------------广告到此为止----------切切切----------------我切切切------------------------------------------
关于thrift的基本知识,这里不做太多阐述,先说一下为什么要用thrift。
thrift本身不光是对象序列化协议,它本身封装了java 底层的nio(虽然这里有bug,我在做自定义协议的时候,竟然发现低版本thrift server和client竟然不支持,后面的讲解中我会写出来,这篇文章先不讲),也就是说thrift本身是协议+一套完整的基于java nio Selector rpc框架,如果有时间我会在接下来的时间里简单介绍一下java nio。但是这种点对点模型不适合用于实际生产中,首先对spring的支持需要自己手动去写,对服务的动态发现需要自己通过zk,redis之类的中间件去维护,负载等等。扯多了。想对thrift有一定了解的朋友先移步
https://blog.csdn.net/lk10207160511/article/details/50450541
https://www.cnblogs.com/cyfonly/p/6059374.html
https://blog.csdn.net/sunmenggmail/article/details/46818147
https://www.cnblogs.com/exceptioneye/p/4945073.html
https://blog.csdn.net/hrn1216/article/details/51306395
相信大家看完上面的文章对thrift应该会有一定的认识,虽然现在一定懵逼,这些个server模型到底是什么意思,ractor模型到底是啥东西,netty也在用,thrift的TThreadedSelectorServer模型也在用,之后会为大家一一讲解。
既然thrift 可以序列化,本身也能做RPC服务端,那么我就想到了只要是网络传输,那么服务端怎么少了了netty(主要还是为了折腾),所以服务端打算用thrift 的TThreadedSelectorServer和netty server。
高级java交流群:825199617
欢迎热爱源码志同道合的朋友加入。
koalas rpc源码地址https://gitee.com/a1234567891/koalas-rpc
JAVA RPC (三) 之thrift序列化协议入门杂谈的更多相关文章
- JAVA RPC (五) 之thrift序列化RPC消息体
让大家久等了.继续更新thrift序列化的消息体,下面我们一步一步的看一看thrift的rpc是怎么实例化消息体的. 首先我们先准备一个request文件 namespace java bky str ...
- JAVA RPC (四) 之thrift序列化普通对象
先简单写一个thrift文件 本地通过thrift编译之后会生成一个java源文件.------编译口令 :thrift -gen java mytestrequest.thrift 编译后的源代码如 ...
- JAVA RPC(二)序列化协议杂谈
序列化和反序列化作为Java里一个较为基础的知识点,大家心里也有那么几句要说的,但我相信很多小伙伴掌握的也就是那么几句而已,如果再深究问一下Java如何实现序列化和反序列化的,就可能不知所措了!遥记当 ...
- JAVA RPC (六) 之thrift反序列化RPC消息体
我们来看一下服务端的简单实现,直接上thrift代码,很直观的来看一看thrift的server到底干了些什么 public boolean process(TProtocol in, TProtoc ...
- Thrift RPC实战(三) thrift序列化揭秘
本文主要讲解Thrift的序列化机制, 看看thrift作为数据交换格式是如何工作的? 1.构造应用场景: 1). 首先我们先来定义下thrift的简单结构. 1 2 3 4 5 namespace ...
- REST RPC HTTP vs 高性能二进制协议 序列化和通信协议
edisonchou https://mp.weixin.qq.com/s/-XZXqXawR-NxJMPCeiNsmg .NET Core微服务之服务间的调用方式(REST and RPC) Edi ...
- JAVA RPC(一)RPC入门
为什么要写这个RPC 市面上常见的RPC框架很多,grpc,motan,dubbo等,但是随着越来越多的元素加入,复杂的架构设计等因素似使得这些框架就想spring一样,虽然号称是轻量级,但是用起来却 ...
- Java序列化与反序列化学习(三):序列化机制与原理
Java序列化算法透析 Serialization(序列化)是一种将对象以一连串的字节描述的过程:反序列化deserialization是一种将这些字节重建成一个对象的 过程.Java序列化API提供 ...
- 基于Netty的RPC架构学习笔记(九):自定义序列化协议
文章目录 为什么需要自定义序列化协议
随机推荐
- DQL、DML、DDL、DCL区别
DQL(data query language)数据查询语言 主要是由SELECT构成的查询语句 基本语法:select 字段名 from 表名 where 查询条件 DML(data manipul ...
- 转 -Filebeat + Redis 管理 LOG日志实践
Filebeat + Redis 管理 LOG日志实践 小赵营 关注 2019.01.06 17:52* 字数 1648 阅读 24评论 0喜欢 2 引用 转载 请注明出处 某早上,领导怒吼声远远传来 ...
- 【easy】110. Balanced Binary Tree判断二叉树是否平衡
判断二叉树是否平衡 a height-balanced binary tree is defined as a binary tree in which the depth of the two su ...
- 【原创】运维基础之keepalived
keepalived 2.0.12 官方:http://www.keepalived.org/ 一 简介 Keepalived is a routing software written in C. ...
- 【原创】大叔问题定位分享(12)Spark保存文本类型文件(text、csv、json等)到hdfs时为什么是压缩格式的
问题重现 rdd.repartition(1).write.csv(outPath) 写文件之后发现文件是压缩过的 write时首先会获取hadoopConf,然后从中获取是否压缩以及压缩格式 org ...
- OrCAD Capture CIS 16.6 为原理图中的Off-Page Connector添加页面编号
操作系统:Windows 10 x64 工具1:OrCAD Capture CIS 16.6-S062 (v16-6-112FF) 为原理图中的Off-Page Connector添加页面编号 一般来 ...
- sublime的插件
记录一下常用的插件: 1. htmlpretty 用于HTML.CSS.JS的格式化,以方便阅读代码.插件全名是HTML-CSS-JS Pretty.安装后使用方法是: 打开一个HTML/CSS/JS ...
- IIS 支持 m3u8
加上俩 MIME 类型就可以了 <mimeMap fileExtension=".m3u8" mimeType="application/x-mpegURL&quo ...
- 【JAVA】servlet 定时启动
步骤一: web.xml中加上如下的代码: <load-on-startup>10</load-on-startup>这句话是重点. <servlet> <s ...
- 西北地区打不开github的解决办法~
泱泱我大西北,github打不开,的确痛苦的. http://ipaddress.com/ip_lookup/ 先查github.com 可能存在打不开的情况~ 随便找一个web在线代理,就可以查到了 ...