学习之前,确保有以下知识基础: Java网络编程 Socket传输数据 IO流 rpc简介及实现 rpc是remote procedure call的简写,意思为远程过程调用。 rpc应用较多的情景是分布式开发,那什么是分布式开发呢? 原本我也是想自己解释的,奈何网上大佬解释得很清楚了,这里就不献丑 ...
分类:
编程语言 时间:
2020-03-20 20:16:44
阅读次数:
92
前言 本篇主要介绍的是SpringCloud中的负载均衡(Ribbon)功能的实现以及使用Feign结合Ribbon实现负载均衡,Ribbon适合RPC的远程调用。 GitHub源码链接位于文章底部。 一、工程 首先需要创建四个工程,包括一个转发请求的客户端,两个接收请求的服务端,以及eureka注 ...
分类:
编程语言 时间:
2020-03-19 10:44:53
阅读次数:
73
RPC主要是基于TCP/IP协议的,而HTTP服务主要是基于HTTP协议的,HTTP协议是在传输层协议TCP之上的,所以效率来看的话,RPC当然是要更胜一筹啦RPC框架是长链接,一般都有注册中心,有丰富的监控管理;发布、下线接口、动态扩展等,对调用方来说是无感知、统一化的操作gRPC框架是基于HTT ...
分类:
Web程序 时间:
2020-03-18 18:55:28
阅读次数:
118
## kafka的消费时机#### 问题 kafka启动后开始消费的话, 如果此时消费流程中有其他依赖没有启动完成的话,比如 Redis , Mysql ,RPC等就会有空指针或其他问题。这时候就要延后kafka的消费时机。#### 解决kafka启动时,不在启动时开启消费线程。```public ... ...
分类:
其他好文 时间:
2020-03-18 13:51:51
阅读次数:
60
一、概要介绍 Java中的transient关键字,transient是短暂的意思。对于transient 修饰的成员变量,在类实例的序列化处理过程中会被忽略。 因此,transient变量不会贯穿对象的序列化和反序列化,生命周期仅存于调用者的内存中而不会写到磁盘里持久化。 (1)序列化 Java中 ...
分类:
编程语言 时间:
2020-03-18 11:54:00
阅读次数:
79
一、什么是RPC RPC的全称是Remote Process Call,即远程过程调用,它应用广泛,实现方式也很多,拥有RMI、WebService、Hessian等诸多成熟的方案,在业界得到了广泛的使用。 RPC将原本的本地调用转变为调用远端的服务器上的方法,给系统的处理能力和吞吐量带来了极大的提 ...
分类:
其他好文 时间:
2020-03-16 19:10:56
阅读次数:
74
所有文章 https://www.cnblogs.com/lay2017/p/12485081.html 正文 在阅读seata自动配置相关的内容的时候,我们说过。客户端会初始化一个RMClient的RPC客户端,且同时会添加一个监听器RmMessageListener,监听器将监听来自seata的 ...
分类:
其他好文 时间:
2020-03-14 15:00:58
阅读次数:
418
这里简单梳理下RPC、RMI和REST的概念。 RPC的概念 RPC(Remote Procedure Call)翻译过来叫做远程过程调用。根据维基百科的解释,RPC是指在分布式的环境下,一个计算机程序能够调用另一个不同地址空间里的方法(不同地址空间通常指局域网下的另一台计算机),但是编码的形式就像 ...
分类:
其他好文 时间:
2020-03-14 01:12:03
阅读次数:
72
简介 ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,是 Google Chubby 的开源实现。分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、配置维护,名字服务、分布式同步、分布式锁和分布式队列等 ...
分类:
其他好文 时间:
2020-03-12 09:27:10
阅读次数:
63
要完成一个高可用、高性能的RPC框架,需要对其架构的设计进行梳理,这里参考xxl-rpc框架,对整个项目进行梳理。 以上就是项目的整个构架,分为四个部分; 第一个是服务发布与引入,基于JDK动态代理以及Spring实现;包括invoker和provider。 第二个部分是服务注册,基于zookeep ...
分类:
其他好文 时间:
2020-03-11 19:29:17
阅读次数:
59