ChannelOption.SO_BACKLOG, 1024       BACKLOG用于构造服务端套接字ServerSocket对象,标识当服务器请求处理线程全满时,用于临时存放已完成三次握手的请求的队列的最大长度。如果未设置或所设置的值小于1,Java将使用默认值50。   ChannelOption.SO_BACKLOG对应的是t            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-21 23:02:38
                            
                                61阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            RPC(Remote Procedure Call) —— 远程过程调用,是一个计算机通信协议。该协议允许运行于一            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-07-10 07:14:11
                            
                                61阅读
                            
                                                        
                                点赞
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Netty解码器也是非常重要的一个模块, 服务端接收到客户端发送过来的消息, 准确说是字节数组, Netty底层已经将它们读取成ByteBuf了, 但是这些ByteBuf是没有任何含义的,需要我们根据业务来对字节数组进行解码。本文中我们将介绍Netty中常见的两种解码器DelimiterBasedFrameDecoder和FixedLengthFrameDecoder。 Netty解码器1. 前言            
                
         
            
            
            
            2019-11-14 09:19:00 众所周知,dubbo 底层使用了 Netty 作为网络通讯框架,而 Netty 的高性能我们之前也分析过源码,对他也算还是比较了解了。 今天我们就自            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-06-04 16:13:40
                            
                                139阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            作者:莫那鲁道
众所周知,dubbo 底层使用了 Netty 作为网络通讯框架,而 Netty 的高性能我们之前也分析过源码,对他也算还是比较了解了。
今天我们就自己用 Netty 实现一个简单的 RPC 框架。
1、需求
模仿 dubbo,消费者和提供者约定接口和协议,消费者远程调用提供者,提供者返回一个字符串,消费者打印提供者返回的数据。底层网络通信使用 Netty 4.1.16。
2、            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-08-01 13:35:42
                            
                                58阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            众所周知,dubbo 底层使用了 Netty 作为网络通讯框架,而 Netty 的高性能我们之前也分析过源码,对他也算还是比较了解了。 今天我们就自            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-08-01 11:50:28
                            
                                50阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            众所...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2019-11-14 09:19:00
                            
                                47阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            众所周知,dubbo 底层使用了 Netty 作为网络通讯框架,而 Netty 的高性能我们之前也分析过源码,对他也算还是比较了解了。 今天我们就自己用 Netty 实现一个简单的 RPC            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-06-04 16:13:13
                            
                                154阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # 使用Java实现一个RPC
## 什么是RPC
RPC(Remote Procedure Call)即远程过程调用,是一种让程序调用远程服务的方式。通过RPC,我们可以像调用本地函数一样调用远程服务器上的函数,使得分布式系统之间的交互变得更加简单和透明。
## 实现一个简单的RPC框架
下面我们将使用Java语言来实现一个简单的RPC框架,包括服务端和客户端,并通过序列图来说明整个调用            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-04-29 05:19:11
                            
                                47阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            package com.thtf.zwdsj.fangjia.rpc;
import org.apache.ws.commons.util.NamespaceContextImpl;
import org.apache.xmlrpc.common.TypeFactoryImpl;
import org.apache.xmlrpc.common.XmlRpcController;
import o            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-23 17:11:52
                            
                                99阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            角色1)服务消费者2)服务提供者基础设施1)远程代理(jdk/cglib)2)序列化与反序列化(协议格式与序列化方法)3)网络传输(TCP/UDP)服务消费者1)连接管理TCP长连接,维护一个类似数据库连接池一样的连接池,每次调用都拿出一条连接,发送数据,可以多个线程共用一条TCP连接,客户端调用后阻塞在某地方,数据回来根据会话ID唤醒对应线程,可以Map+CounDownLatch实现2)负载均            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-07-25 10:53:29
                            
                                127阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1、面试题如何自己设计一个类似dubbo的rpc框架?2、面试官心里分析说实话,就这问题,其实就跟问你,如何自己设计一个MQ,一样的道理,就考两个:(1)你有没有对某个rpc框架原理有非常深入的理解; (2)你能不能从整体上来思考一下,如何设计一个rpc框架,考考你的系统设计能力。3、面试题剖析我给大家一个建议,遇到这类问题,从你了解的类似框架的原理入手,自己说说参照dubbo的原理,你来设计一下            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-25 13:03:53
                            
                                18阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Cool-Rpc前言此博客所述项目代码已在github开源,欢迎大家一起贡献! 点此进入:Cool-RPC最近一次写博客还是17年底,谢谢大家持久以来的关注 本篇博文将会教大家如何从0到1,搭建一个简单、高效且拓展性强的rpc框架.什么是RPC相信大家都或多或少使用过RPC框架,比如阿里的Dubbo、谷歌的grpc、Facebook的Thrift等等那么究竟什么是rpc?rpc翻译成中文叫做远程过            
                
         
            
            
            
            RPC框架称为远程调用框架,其实现的核心原理就是消费者端使用动态代理来代理一个接口的方法(基于JDK的动态代理,当然如果使用CGLib可以直接使用无接口类的方法),通过加入网络传输编程,传输调用接口方法名称,方法参数来给提供者获取,再通过反射,来执行该接口的方法,再将反射执行的结果通过网络编程传回消            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-05-04 09:42:36
                            
                                140阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            前提 前置文章: Github Page:《基于Netty和SpringBoot实现一个轻量级RPC框架-协议篇》 Coding Page:《基于Netty和SpringBoot实现一个轻量级RPC框架-协议篇》 在前置的《基于Netty和SpringBoot实现一个轻量级RPC框架-协议篇》一文中            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-01-10 10:00:19
                            
                                121阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            基于Netty和SpringBoot实现一个轻量级RPC框架-协议篇 前提 最近对网络编程方面比较有兴趣,在微服务实践上也用到了相对主流的RPC框架如Spring Cloud Gateway底层也切换为Reactor-Netty,像Redisson底层也是使用Netty封装通讯协议,最近调研和准备使            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-01-10 10:00:19
                            
                                198阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            前提 前置文章: 《基于Netty和SpringBoot实现一个轻量级RPC框架-协议篇》 《基于Netty和SpringBoot实现一个轻量级RPC框架-Server篇》 前一篇文章相对简略地介绍了RPC服务端的编写,而这篇博文最要介绍客户端(Client)的实现。RPC调用一般是面向契约编程的,            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-01-10 10:00:18
                            
                                457阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            项目1.0版本源码https://github.com/wephone/MeiZhuoRPC/tree/1.0在上一博文中 跟大家讲了RPC的实现思路 思路毕竟只是思路 那么这篇就带着源码给大家讲解下实现过程中的各个具体问题读懂本篇需要的基本知识 若尚未清晰请自行了解后再阅读本文java动态代理netty框架的基本使用spring的基本配置最终项目的使用如下/**
 *调用端代码及spring配置            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-19 21:09:10
                            
                                54阅读
                            
                                                                             
                 
                
                             
         
            
            
            
                         
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-09-14 10:30:42
                            
                                134阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            内容来自《深入分析Java Web技术内幕》和《Netty实战》两本书的个人总结,感谢二位作者!目录一、Java Socket的工作机制二、建立通信链路三、BIO(阻塞I/O示例)四、Java NIO五、Netty 一、Java Socket的工作机制       Socket ,它描述计算机之间完成相互通信的一种抽象功能,可以            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-16 14:35:37
                            
                                98阅读