目前关于网络框架,什么基于事件架构(EDA)、异步、无阻塞,高性能等概念充斥,像这样框架真的太多。其中
mina、netty、grizzy等比较原始,相当于鼻祖,国内比较知名且基于以上的也很多、hsf、dubbo、venus等、先就一个标题,后面再把心得补充上去。
----------------------------------------------------华丽分割:于2013/9/4补充-----------------------------------------------
这里找了比较有代表性的一个框架summercool-hsf(http://summercool-hsf.googlecode.com/svn/trunk),听名字可能比较山寨,但整体代码还是很不错的,至少比一般类似rpc框架代码就简单得多,而且比较好看,我想,这样的代码应该符合大道至简的哲理吧,同时还分享一句在微博看到的句子,【如果你发现一堆比较别扭,纠结,混乱的代码,多半是有问题容易出现bug的代码】,编码这么长时间,我发现和作者有同感啊。
summercool-hsf在模仿hsf(high speed service framework),但绝对轻量级,除了最基本和核心的功能,作者还提供了一些辅助功能,但按照目前github开源工程中来说,这些辅助功能基本也是标配了,作者提供了基本统计分析功能(在statistic包中)、configserver(类似配置中心),jmx(框架基本监控功能)等,除此之外,summer-hsf底层通信框架只要建立在netty之上,接着下面,我会一步一步讲解这个框架是如何实现rpc功能的,当然也可以直接移步作者的博客(http://dragonsoar.iteye.com/blog/1769335)。
首先从网络编程基本基本的点来讲讲吧
1、关于压缩与序列化的算法,这个可能直接影响到该rpc框架的性能,当然序列化更是网络编程中不可忽视的环节,同时也是难点(容易出错)
hsf工程中分别划分两个包来做了简单实现、serializer包主要实现了两种序列化方法,一种是jdk自带的序列化,详见objectSerializer,另一个是kryoSerializer,至于两者优劣,没有做过测试,后面可就序列化单独再开一篇笔记来深入讲解、compression这个包主要讲了两种压缩方式,可支持的参数也很少,整个实现代码很简洁。
--------------------------------------------2013.9.5补充---------------------------------------------------------------------
只能不停地看,不断地学了,看了这么久的源代码,发现自己始终没有找到一种对自己适用的方式,可能还是底子不够硬,继续不断地学习,不是说,如果你学习一个东西,发现很吃力,可能某个环节比较薄弱,只能停下来,巩固相关背景知识了,发现框架代码关联性还是很强,不够纵观全局,迷迷糊糊,看某一块可能很简单,连接起来一堆堆地代码直接压死你,废话可能有点多,hsf是基于netty,可能需要对netty有一个大致认识,读取hsf源码才会轻松一点,(http://www.kafka0102.com/2010/06/161.html)讲解netty的文章,比较好
相关推荐
本篇将详细讲解如何使用socket、反射和序列化等技术来实现一个简单的RPC框架。 首先,让我们了解RPC的基本原理。在RPC模型中,客户端(Client)发起一个函数调用请求,这个请求包含了目标函数的名称和参数。RPC框架...
在这个“JAVA实现简单RPC框架”的项目中,我们将探讨如何利用Java的核心特性来构建这样的框架。以下是关键知识点的详细说明: 1. **JDK动态代理**: JDK动态代理是Java提供的一种机制,可以在运行时创建一个实现了...
本项目旨在基于C++语言实现一个RPC分布式网络通信框架项目,使用CMake在Linux平台上构建编译环境。它可以将任何单体架构系统的本地方法调用重构为基于TCP网络的RPC远程方法调用。该框架实现了同一台机器的不同进程...
在“rpc-master”这个压缩包中,可能包含了整个RPC框架的源代码,包括服务端和客户端的实现、序列化工具类、网络通信模块以及可能的测试用例。深入研究这个源码可以帮助我们理解RPC的工作原理,并且可能为开发自己的...
Java RPC(Remote Procedure Call)框架是一种允许不同网络节点上的程序之间进行远程调用的技术。本项目提供了一个简易版的Java RPC框架实现,旨在模仿著名的Dubbo框架,但采用了更基础的Socket通信方式进行分布式...
### Dubbo框架RPC实现原理 #### Dubbo框架简介 Dubbo是由阿里巴巴B2B技术部于2011年12月开源的一个高性能、透明化的RPC远程服务调用框架。它主要应用于分布式系统的服务治理方案,提供了服务自动注册和发现、软负载...
总结起来,基于RPC实现的三方通信机制是分布式系统中解决跨网络调用问题的重要手段。通过RPC,客户端可以轻松调用远程服务器和节点的服务,而无需关心底层网络通信细节。了解并掌握RPC的基本原理和实现方法,对于...
实现一个简单的RPC框架主要涉及以下几个关键点: 1. **网络通信库**:Netty是一个高性能、异步事件驱动的网络应用框架,常用于构建高并发、低延迟的服务器。在RPC框架中,Netty可以处理客户端与服务端之间的网络...
综上所述,构建一个Java实现的RPC框架需要综合运用序列化、动态代理、多路复用网络通信、高并发处理、注册中心、负载均衡等技术,并考虑支持HTTP协议,以达到高效、稳定和易用的目标。在这个过程中,理解并熟练掌握...
在这个“一个来自菜鸡的RPC实现”中,作者通过学习和实践,利用Java语言的特性实现了一个基础的RPC框架。 首先,RPC的核心思想是调用远程服务就像调用本地方法一样简便。为了实现这一目标,通常需要以下关键组件: ...
NFS(Network File System)最初是UNIX系统间用于文件共享的协议,而这里的“nfs-rpc”可能是指将NFS协议与RPC概念相结合的一种实现,旨在提供高效的网络服务。 RPC框架的核心目标是简化分布式系统中的通信,通过...
RPC(Remote Procedure Call)是一种进程间通信技术,允许在一台计算机上的程序调用另一台计算机上的程序...`jsonrpc-c-master`提供了实现这一功能的基础框架和工具,让开发者能够专注于业务逻辑,而不是底层通信细节。
基于Spring Boot框架的RPC服务框架 项目简介 本项目是一个基于Spring Boot框架的RPC(远程过程调用)服务框架,旨在提供一个高效、可扩展的RPC服务解决方案。通过自定义协议、负载均衡、容错机制和SPI(服务提供...
RPC(Remote Procedure Call)框架是分布式系统中广泛使用的通信机制,它允许一个程序在不关心远程服务器具体实现的情况下调用其方法,就像调用本地对象一样。本篇将深入探讨RPC框架的底层模拟,主要围绕以下几个...
在实现过程中,你可能会遇到如网络编程、线程模型、协议设计、异常处理等问题,这些都是构建RPC框架时需要考虑的关键点。通过这个项目,你可以深入理解RPC的工作原理,同时提升对Netty框架的应用能力。
RPC,即Remote Procedure Call(远程过程调用),是一种在分布式计算环境中进行通信的技术。它允许一个程序调用另一个不在同一台...同时,理解RPC的工作原理和实现方式对于深入学习网络编程和分布式系统至关重要。
总的来说,构建一个Java RPC框架涉及到多个技术点,包括服务接口定义、网络通信实现、心跳检测机制以及生产消费者模型的应用。通过这样的框架,可以实现分布式系统间的高效、可靠通信,同时提高系统的可扩展性和容错...
本项目是一个基于Netty框架实现的RPC(远程过程调用)服务。Netty是一个高性能、异步事件驱动的网络应用框架,适用于快速开发可维护的高性能协议服务器和客户端。本项目利用Netty的强大功能,实现了RPC服务的客户端...
RPC(Remote Procedure Call)远程过程调用是一种计算机通信协议,它允许程序...Socket作为网络通信的基础,是RPC实现中不可或缺的一部分。理解RPC的工作原理和Socket通信,对于开发分布式应用和理解网络编程至关重要。