一. 前言  在Java集合框架里面,各种集合的操作很大程度上都离不开Comparable和Comparator,虽然它们与集合没有显示的关系,但是它们只有在集合里面的时候才能发挥最大的威力。下面是开始我们的分析。二. 源码/**
   This interface imposes a total ordering on the objects of each class that
   impl            
                
         
            
            
            
            由于最近换了一份工作,新公司使用 RPC 框架使用的是 Google 开源的 RPC 框架 grpc。对于 grpc 之前只是听说过,在真实的项目当中并没有使用过。为了能够更好的使用 grpc (当遇到问题,能够快速发现并解决问题),所以准备写一个系列来研究 grpc 。gRPC是一个现代的开源高性能远程过程调用(RPC)框架,可以在任何环境中运行。它可以有效地连接数据中心内和跨数据中心的服务,支            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-21 21:51:36
                            
                                188阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            服务端代码一个简单的rpc server示例如下:package main
import (
	"log"
	"net"
	"net/http"
	"net/rpc"
	"github.com/monoxy/rpc/common"
)
func main() {
	server := rpc.NewServer()
	server.Register(new(common.Embed))
	l            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-12 14:17:09
                            
                                127阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            最近在学习 rpc 相关的知识,如果让我去从头设计一个 rpc,我从使用者的角度出发,究竟需要去做一下什么工作?第一,RPC 本质上就是一个远程调用,那肯定就需要通过网络来传输数据。虽然传输协议可以有多种选择,但考虑到可靠性的话,我们一般默认采用 TCP 协议。为了屏蔽网络传输的复杂性,我们需要封装一个单独的数据传输模块用来收发二进制数据,这个单独模块我们可以叫做传输模块。第二,用户请求的时候是基            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-27 06:39:29
                            
                                97阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            gRPC 是啥A high performance, open-source universal RPC framework一款高性能的开源 RPC 框架。gRPC 的特点:简单的服务定义:使用 Protocol Buffers(做序列化的工具)来定义服务跨语言跨平台:可以自动生成不同语言对应的 Client Stubs 和 Server Stubs。如下图所示,服务端可以用 C++ 来实现,但是            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-23 13:45:40
                            
                                69阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            gRPC 传输层处理            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                            精选
                                                        
                            2023-05-06 11:52:25
                            
                                507阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            文章目录1、实践(1) IDEA安装插件(2) 新建.proto文件(3) pom引入依赖(4) 生成代码(5) 创建服务端(6) 创建客户端(7) 测试2、源码(1) protobuf(2) 重要类和接口 Java实现grpc1、实践(1) IDEA安装插件Protobuf Support(2) 新建.proto文件我这里命名为test.proto。 指定生成代码的包路径、接口服务等。 定义了            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-31 21:41:51
                            
                                67阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            gRPC是Google开源的新一代RPC框架,。正式发布于2016年8月,技术栈非常的新,基于HTTP/2,netty4.1,proto3。虽然目前在工程化方面gRPC还非常不足,但它也值得我们好好研究它,学习他。1. 使用场景按照Google的说法,使用广泛,但主要使用场景还是在移动端:Efficiently connecting polyglot services in microservic            
                
         
            
            
            
            Java8 Comparator interface接口原理示例源码分析 文章目录Java8 Comparator interface接口原理示例源码分析由来示例中文源码 由来Java 8中的Comparator接口引入了一些新特性和方法来提供更灵活和方便的比较操作。以下是Java 8中Comparator接口的新特性和方法总结:默认方法(Default Methods):Java 8在接口中引入            
                
         
            
            
            
            # GRPC Java 源码解析
## 引言
gRPC(Google Remote Procedure Call)是由Google开发的高性能、开源的通用RPC框架。它允许客户端和服务器之间的通信,支持多种语言,包括Java。本文将解析gRPC在Java中的实现原理,并通过一些代码示例来帮助理解。
## gRPC的架构
gRPC基于HTTP/2实现,其架构包含以下几个核心组件:
- **            
                
         
            
            
            
            # Java gRPC源码解析指南
## 1. 事情流程
```mermaid
journey
    title 开发者教小白如何实现"java gRPC源码解析"
    section 确定理解gRPC的基本概念:
      - 开发者介绍gRPC的基本概念和用途
      - 小白学习gRPC的基本概念
    section 获取gRPC源码并进行解析:
      - 开发者说            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-04-21 04:37:41
                            
                                52阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            目录第一步:创建工程1、引入依赖2、引入插件3、工程结构第二步:编写helloword.proto第三步:使用插件生成代码第四步:将文件拷贝到相应的包中第五步:使用生成的代码,编写客户端和服务端1、 服务端代码2、 客户端代码3、运行本小节主要介绍Java中的gRPC快速开始示例。要求jdk版本1.7+.# git地址
git clone -b v1.40.0 https://github.com            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-22 11:33:58
                            
                                174阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
             前言:柔光效果可以把一张照片美白化,影楼应该用的比较多。柔光效果用在自己软件中,看GIMP的代码,开始感觉牵扯的比较多,另外找了几个,比如tinyimage,imagestone等。效果也不错,不过看到处理图像大量使用了gdi+,stl,感觉不太合适。再回去认真看GIMP代码,最终成功移植到vc和iOS下。 效果:        采用的是美图秀秀软件下面的一张图,如            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-01 08:56:52
                            
                                13阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            《Java源码分析》:Vector虽然,Vector集合在我们的编程中,使用的比较少,至少我使用的比较少,一般情况下,我都是倾向于使用List来存储一些同类型的元素。其实,Vector的内部实现和ArrayList的内部实现基本一致,内部都是借助于数组来实现的。下面就一起来分析下。1、Vector的继承结构public class Vector<E>
        extends A            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-03 20:45:22
                            
                                29阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            在学习grpc源码之前,我们首先需要了解grpc是什么以及它的一些基本原理。gRPC是一种高性能、开源的远程过程调用(RPC)框架,它基于HTTP/2协议,采用Protocol Buffers作为接口定义语言(IDL)。通过使用grpc,我们可以轻松地在不同语言和平台上实现跨网络的服务通信。
接下来,我们将通过以下步骤来学习grpc源码:
| 步骤 | 操作 |
| ------ | ----            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-05-08 11:05:59
                            
                                95阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            我们都知道Hibernate可以支持多种数据库,这种支持是通过对于不同数据库,配置对应数据库的方言完成的。在早期的Hibernate中,需要通过配置hibernate.dialect参数,指定当前使用的数据库方言。对于需要同时支持多种数据库的产品来说,每切换一个数据库,就要重新配置以下dialect参数会显得很麻烦。于是,DialectResolver工厂类就诞生了。简单的说,DialectRes            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2012-09-30 00:56:00
                            
                                717阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            GRPC Java源码解析引言1 服务端1.1 逻辑架构1.1.1 概述1.1.2 服务管理(Server Pack)1.1.3 服务注册(Registry Pack)1.1.4 传输逻辑(Transport Pack)1.1.5 网络处理(Handler Pack(io.grpc.netty))1.1.5.1 netty领域1.1.6 网络流(Stream Pack)1.1.7 方法调用(Ca            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-12 01:23:18
                            
                                115阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            java ArrayList 源码解读 ArrayList 类有三个构造方法,分别为无参构造方法,传int构造方法,和传集合构造方法 /** * Constructs an empty list with an initial capacity of ten. */ public ArrayList ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-08-01 17:36:00
                            
                                123阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            【基础篇】netty源码死磕1.2:   NIO Buffer1. Java NIO BufferBuffer是一个抽象类,位于java.nio包中,主要用作缓冲区。Buffer缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成NIO Buffer对象,并提供了一组方法,用来方便的访问该块内存。注意:Buffer是非线程安全类。1.1. Buffer类型的标记属            
                
         
            
            
            
            java ArrayList 源码解读 ArrayList 类有三个构造方法,分别为无参构造方法,传int构造方法,和传集合构造方法 /** * Constructs an empty list with an initial capacity of ten. */ public ArrayList ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-08-01 17:35:00
                            
                                210阅读
                            
                                                                                    
                                2评论