
rpc
文章平均质量分 78
坤少_jkson
别再用廉价的勤奋掩饰你的懒惰
展开
-
简单的RPC实现
/** * * @ClassName: EchoService * @Description: 通过Java原生的序列化,socket通信,动态代理,和反射机制实现最简单的rpc框架 * 1服务提供者:它运行在服务端,负责提供服务接口定义和实现类 * 2服务发布者:它运行在RPC服务端,负责将本地服务发布成远程服务,供其他消费者调用 * 3本地服务代理:它运行在RPC客户端,通过代理原创 2016-10-09 18:04:38 · 440 阅读 · 0 评论 -
基于Netty的RPC架构笔记7之自定义序列化协议
也就是把对象等转化成字节数组,然后再把字节数组转化成对象下面看看列子1种方法package com.cn;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.util.Arrays;public cla原创 2017-03-04 14:25:39 · 1138 阅读 · 0 评论 -
基于Netty的RPC架构笔记6之protocol buff学习
netty入门教程之 了解并学习使用protocol buff1.protocol buff是一种协议,是谷歌推出的一种序列化协议2.Java序列化协议也是一种协议3.两者的目的是,将对象序列化成字节数组,或者说是二进制数据4 但是protocol占用字节比较少,而Java由于保存类信息,字段等信息占用字节特别多,也就是在网络传输过程中特别浪费带宽方法如下:1首先准备pro原创 2017-02-22 22:04:55 · 778 阅读 · 0 评论 -
基于Netty3的RPC架构笔记1之NIO
首先我们都知道BIO是阻塞IO,NIO是非阻塞IO,传统IO好比去饭店吃饭,一个服务员对应一个客人,或者比喻成10086客服中心,一个客服只能服务一个客人的场景,所以传统IO不适合长连接,但是适合短连接, 比如Tomcat6之前都是用BIO,所以之前都是一个线程只能为一个客户端服务,也就说BIO是单线程连单个客户端,通过一个线程池来连多个客户端,而NIO是单线程就可以连接多个客户端下面是传统I原创 2017-01-22 22:18:51 · 690 阅读 · 0 评论 -
基于Netty3的RPC架构笔记2之服务端与客户端
netty版本大致分为 netty3.x 和 netty4.x、netty5.x netty可以运用在以下领域?1分布式进程通信例如: hadoop、dubbo、akka等具有分布式功能的框架,底层RPC通信都是基于netty实现的,这些框架使用的版本通常都还在用netty3.x2、游戏服务器开发最新的游戏服务器有部分公司可能已经开始采用netty4.x 或 nett原创 2017-01-22 22:26:34 · 738 阅读 · 0 评论 -
基于Netty3的RPC架构笔记3之线程模型源码分析
随着用户量上升,项目的架构也在不断的升级,由最开始的MVC的垂直架构(传统项目)到RPC架构(webservice,rest,netty,mina),再到SOA模型(dubbo),再到最近的微服务,又比如Tomcat6之前的IO模型都是BIO 也就是阻塞IO,到后来变成多路复用,也是阻塞IO。到非阻塞NIO,再到异步非阻塞AIO, 言归正传,接着谈netty,传统IO是一个线程服务一个原创 2017-02-05 21:33:32 · 1035 阅读 · 0 评论 -
基于Netty的RPC架构笔记5之心跳
1、学习idleStateHandler, 用来检测会话状态2、心跳其实就是一个普通的请求,特点数据简单,业务也简单3、心跳对于服务端来说,定时清除闲置会话inactive(netty5) channelclose(netty3)4、心跳对客户端来说,用来检测会话是否断开,是否重连! 用来检测网络延时!5、检测心跳有的通过定时检测,netty提供了api来解决此问题下面原创 2017-02-18 22:53:06 · 1772 阅读 · 0 评论 -
基于Netty5的RPC架构笔记4之案例讲解
一个thread + 队列 == 一个单线程线程池 =====> 线程安全的,任务是线性串行执行的线程安全,不会产生阻塞效应 ,使用对象组 下图是原理图线程不安全,会产生阻塞效应, 使用对象池,下图是对象池的原理图再看下线程池的原理图下面是netty5的服务端代码参考package com.server;import io.nett原创 2017-02-18 22:45:57 · 770 阅读 · 0 评论 -
简单的基于dubbo的调用
1首先下载zookeeper-3.4.6,修改zoo.cfg下的配置信息,然后启动zookeeper2编写服务端package com.mor.server.dubbo.service;//方法接口public interface DemoServer { String sayHello(String str);}/** * */package com.mor.ser原创 2016-10-23 15:02:42 · 6571 阅读 · 0 评论 -
Netty 实现 WebSocket 聊天功能
上一次我们用 Netty 快速实现了一个 Java 聊天程序(见http://my.oschina.net/waylau/blog/380957)。现在,我们要坐下修改,加入 WebSocket 的支持,使它可以在浏览器里进行文本聊天。准备JDK 7+Maven 3.2.xNetty 4.xEclipse 4.xWebSocketWebSoc转载 2016-10-23 14:04:49 · 676 阅读 · 0 评论 -
Netty 实现聊天功能
文章转载于https://my.oschina.net/waylau/blog/380957Netty 是一个 Java NIO 客户端服务器框架,使用它可以快速简单地开发网络应用程序,比如服务器和客户端的协议。Netty 大大简化了网络程序的开发过程比如 TCP 和 UDP 的 socket 服务的开发。更多关于 Netty 的知识,可以参阅《Netty 4.x 用户指南》(https:转载 2016-10-23 13:54:30 · 475 阅读 · 0 评论 -
基于Netty的RPC架构笔记8之自定义数据包协议
由于数据在网络传输过程中,有可能粘包现象或分包现象,这样就需要定义数据包协议比如我要传递一句话:I want to learn English and you?粘包现象就是 I want tolearn English and you?分包现象就是I want to learn English and y原创 2017-03-11 21:46:16 · 738 阅读 · 0 评论