前言:在阿里把Dubbo框架准备交给Apache组织时,本人就有所耳闻Dubbo框架的强大性,由于某些事情就没仔细涉猎,今天有空就整理了一些个人对Doubbo的理解一,Dubbo简介:Dubbo |db|是一个由阿里巴巴开源的、分布式的RPC(Remote Procedure Call Protocol-远程过程调用)和微服务框架,现为Apache顶级项目。Dubbo提供了三个关键功能:基于接口的
本次准备分享手写mini版dubbo,能让你体验一把自己写的dubbo是什么样子,由于时间问题,所以只能算是一个mini版。环境:JDK1.8,开发工具:idea第三方框架:zookeeper如果你对dubbo陌生或者不熟悉,可以先去看看这篇文章如果你对<dubbo:application name="hello" >这类标签不熟悉,你可以先去了解一下这篇文章注:由于dubbo默认使用
原创 2020-12-14 14:04:00
238阅读
本次准备分享手写mini版dubbo,能让你体验一把自己写的dubbo是什么样子,由于时间问题,所以只能算是一个mini版。环境:JDK1.8,开发工具:idea第三方框...
原创 2023-04-12 20:16:28
95阅读
RPC 基本介绍RPC(Remote Procedure Call)-- 远程过程调用, 是一个计算机通信协议, 该协议允许运行于一台计算机的程序调用另一台计算机的子程序, 而程序员无需额外的为这个交互过程编程两个或多个应用程序都分布在不同的服务器上,他们之间的调用都像是本地方法调用一样(如图)常见的RPC框架有: 比较知名的阿里的Dubbo,Nacos,Google的gRpc, Go语言的rpc
原创 2022-02-28 16:43:47
184阅读
版本2.7.8SPI机制官方文档介绍如下SPI 全称为 Service Provider Interface,是一种服务发现机制。SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。正因此特性,我们可以很容易的通过 SPI 机制为我们的程序提供拓展功能。说白了,SPI是一种第三方框架常用的扩展手段:第三方框架定义接口,
就目前来看,dubbo框架是一个目前位置非常优秀的RPC框架, 一个必须要学的一个框架。也许以后它会更加优秀,也许会落寞。但是其设计思想,非常值得开发者去学习。
原创 2021-08-30 18:34:40
446阅读
一般情况下每个service的调用的过程都是同步的,例如在一个service中通过RestTemplate调用一个接口,这样也可以认为是一个远程调用,这种是同步进行的,整个调用的思路如下图。调用线程只需要等待调用结果,并且返回即可。这是一种简单的调用方式。但是,在使用netty时,整个调用过程是一个异步的过程,上图那种思路就无法达到预期效果。整个调用过程如下图。结果响应之后,selector不知道将结果交给哪个线程处理。
原创 2021-08-30 18:34:34
1257阅读
巩固netty知识,使用netty完成一个聊天系统,通过该聊天系统更加深入的了解netty。设计知识点:nio、reactor模型、tcp粘包拆包、自定义协议等等。
原创 2021-08-30 18:34:38
590阅读
上个版本只是为了实现简单的远程调用,只能请求指定类,并且返回字符串。本次优化,使得可以请求服务端开放的任意服务,并且返回任意对象。 优化请求信息,请求信息中携带消息id(作用很大,稍后会有介绍入口。
原创 2021-09-01 16:16:26
460阅读
当当当,这几天给大家承诺的 RPC 框架终于上线了,撒花撒花撒花~ 本来是打算先讲原理和源码,但是可能有些枯燥,大家总喜欢直接看效果,那这一次我...
转载 2022-03-10 09:42:53
167阅读
案例介绍在我们实现rpc框架的时候,需要选择socket的通信方式。而我们知道一般情况下socket通信类似与qq聊天,发过去消息,什么时候回复都可以。但是我们rpc框架通信,从感觉上类似http调用,需要在一定时间内返回,否则就会发生超时断开。这里我们选择netty作为我们的socket框架,采用future方式进行通信。Netty是由JBOSS提供的一个java开源框架。Netty提供...
原创 2021-06-02 10:18:22
192阅读
案例介绍在我们实现rpc框架的时候,需要选择socket的通信方式。而我们知道一般情况下socket通信类似与qq聊天,发过去消息,什么时候回复都可以。但是我们rpc框架通信,从感觉上类似http调用,需要在一定时间内返回,否则就会发生超时断开。 这里我们选择netty作为我们的socket框架,采用future方式进行通信。 Netty是由JBOSS提供的一个java开源框架。Netty提供
原创 2021-08-07 21:28:52
193阅读
在现代数字化的时代,纸笔手写文字已经不再是唯一的记录方式。但是在某些场合下,仍然需要手写文字。比如,签名、填写表格等等。那么手写文字怎么识别转换到文档呢?在此,我们将介绍几种常见的手写文字识别方法及练字方法。 手写文字识别手写识别软件随着科技的发展,现在市面上有很多种手写识别应用。可以通过识别手写文字,将其转换成电脑可读的文本,方便我们进行编辑、存储等操作。手写手写板是一种特殊的
案例介绍结合上面两章节,本章将实现rpc的基础功能;提供一给rpc中间件jar给生产端和服务端。技术点;1、注册中心,生产者在启动的时候需要将本地接口发布到注册中心,我们这里采用redis作为注册中心,随机取数模拟权重。2、客户端在启动的时候,连接到注册中心,也就是我们的redis。连接成功后将配置的生产者方法发布到注册中心{接口+别名}。3、服务端配置生产者的信息后,在加载xml时候由中间件生
原创 2021-08-07 21:31:06
149阅读
一个不能动态扩容的rpc框架是一个残缺的框架。本次优化:引入注册中心概念、实现服务的动态扩容、负载均衡等功能。
原创 2021-08-30 18:34:32
306阅读
案例介绍结合上面两章节,本章将实现rpc的基础功能;提供一给rpc中间件jar给生产端和服务端。技术点;1、注册中心,生产者在启动的时候需要将本地接口发布到注册中心,我们这里采用redis作为注册中心,随机取数模拟权重。2、客户端在启动的时候,连接到注册中心,也就是我们的redis。连接成功后将配置的生产者方法发布到注册中心{接口+别名}。3、服务端配置生产者的信息后,在加载xml时候由...
原创 2021-06-02 10:18:20
287阅读
一、前言Springboot的自动配置原理,面试中经常问到,一直看也记不住,不如手写一个starter,加深一下记忆。 看了之后发现大部分的starter都是这个原理,实践才会记忆深刻。 核心思想:约定大于配置。二、初探starter启动原理我们直接看看官网的starter是怎么设计的,仿照这写一个就行了!我们Ctrl点击<artifactId>spring-boot-starter-
转载 2024-03-24 19:17:50
145阅读
文 /  Sandro Feuz 和 Pedro Gonnet,手写团队高级软件工程师2015 年,我们推出 Google 手写输入。该产品可作为任何 Android 应用的附加输入法,帮助用户在 Android 移动设备上手写文字。在首次发布的版本中,我们实现了对 82 种语言的支持,包括法语、盖尔语、汉语和马拉雅拉姆语等。为了提供更加流畅的用户体验和省去切换输入法
java面试:手写代码 二分查找法/** * 二分查找法。时间复杂度:O(log n) * 二分查找法:给定一组有序的数组,每次都从一半中查找。直到找到要求的数据。 * * @param nums * @param target * @return */ pub
转载 2023-07-06 22:18:16
0阅读
手写butterKnifer使用了 apt 技术。APT 是一种处理注解工具,他对项目源代码进行扫描,获取注解。然后通过注解处理器对注解进行操作,生成新的class文件。 apt技术使用三个技术点: annotation模块(Java Library) 该模块存放的是我们自定义的注解,是一个Java Library compiler模块 (Java Library) 依赖annotation模块,
转载 2023-06-30 22:44:58
136阅读
  • 1
  • 2
  • 3
  • 4
  • 5