RPC
文章平均质量分 82
trigger333
When you work, work. When you laugh, laugh.
展开
-
Java的SPI机制简介
SPI技术是当前各款中间件都在主流使用的一项扩展技术,其中比较具有代表性的RPC框架。原创 2022-10-17 20:35:06 · 274 阅读 · 0 评论 -
RPC框架性能优化思路和具体实现
RPC的调用流程如下,可以在动态代理,序列化框架,路由算法,线程模型,服务器性能等几部分考虑。原创 2022-07-30 21:47:58 · 901 阅读 · 0 评论 -
序列化方式介绍和性能比较 (kryo fastjson hessian jdk)
JDK自带的序列化框架使用_trigger333的博客-CSDN博客深入理解Java序列化机制ObjectOutputStream源码简要分析_A__Plus的博客-CSDN博客_objectoutputstream。原创 2022-07-30 21:25:02 · 1618 阅读 · 0 评论 -
JDK自带的序列化框架使用
把对象转化为可传输的字节序列过程称为序列化。把字节序列还原为对象的过程称为反序列化。序列化最终的目的是为了对象可以跨平台存储,和进行网络传输。而我们进行跨平台存储和网络传输的方式就是IO,而我们的IO支持的数据格式就是字节数组。......原创 2022-07-30 17:14:46 · 1426 阅读 · 0 评论 -
2种动态代理方式的性能测试(JDK1.8 JDK > Cglib)
Cglib执行速度比JDK快?不同jdk版本不一样。JDK 1.8 动态代理 JDK > Cglib 1、cglib底层是ASM字节码生成框架,但是字节码技术生成代理类,在JDL1.6之前比使用java反射的效率要高2、在jdk6之后逐步对JDK动态代理进行了优化,在调用次数比较少时效率高于cglib代理效率3、只有在大量调用的时候cglib的效率高,但是在1.8的时候JDK的效率已高于cglib。......原创 2022-07-30 15:07:41 · 870 阅读 · 0 评论 -
Java实现简单类的序列化(int 和 string字段的序列化)
实现 int 、String、 User 的序列化和反序列化。原创 2022-07-24 20:16:42 · 4273 阅读 · 0 评论 -
RPC调用方如何实现异步调用:CompletableFuture
使用 CompletableFuture 进行异步调用和任务编排,改写完变为异步调用,耗时短,任务调用完后会自动执行后续的业务原创 2022-07-22 15:37:54 · 1325 阅读 · 0 评论 -
RPC中实现提供者信息变化后通知消费者
使用Java可以链接Zookeeper并且进行节点的增删改查以及监听,目前有三套API可以使用。这里用的是。这个client就是一个CuratorFramework的实现。zk收到节点变更后就会执行process方法。这样在process方法中执行消费者本地的缓存修改即可。。...原创 2022-07-20 18:05:14 · 478 阅读 · 0 评论 -
RPC框架中请求id的生成 uuid/雪花算法/AtomicLong
服务消费者发送请求到服务提供者,在请求体中可以设置一个字段是该请求的id,发送出去之后只需要在一个while循环中去restMap中根据id去找结果即可,因为服务提供者在处理完后会把结果发给客户端,客户端会把这个结果放在这个全局的restMap中,这样就能够实现请求和响应的一一对应。可以使用uuid,需要注意的是uuid的生成,因为在一台机器上可能会并发的发送请求,那么此时uuid可能会重复,所以在代理类中,需要这样设置。,10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID),......原创 2022-07-19 17:32:59 · 1609 阅读 · 0 评论 -
RPC如何实现超时重试
超时重试的设置原创 2022-07-19 16:57:05 · 1005 阅读 · 2 评论 -
RPC框架业务线程池的添加方法和作用
如果只用Netty的主从多线程模型去监听连接和读写事件,并用worker去处理业务逻辑,在业务逻辑耗时比较短的情况下是ok的,如果耗时比较长,那么这个workerGroup中的worker就会一直被占用。假如任务耗时1s,我设置的业务的线程是32个,如果有100个请求通过一个连接进行并发访问,那么总耗时大概是4s,因为业务线程池每秒可以处理32个请求,3s处理完96个请求,还有4个请求需要1s的时间。添加业务线程池之后,把传过来的数据msg和channel封装成一个对象丢给业务线程池。......原创 2022-07-19 15:38:40 · 585 阅读 · 0 评论 -
分布式系统的设计开发之 负载均衡
参考:什么是负载均衡? - 知乎实现负载均衡的几种方式_HumorMrChen的博客-CSDN博客_负载均衡目录什么是负载均衡为什么要负载均衡?负载均衡器可以处理什么样的请求?负载均衡器如何选择要转发的后端服务器?负载均衡算法负载均衡的具体实现方式DNSCDNIP负载均衡用健康探测来保障高可用HTTP 探测TCP 探测UDP 探测具体例子Nginx和Tomcat对请求负载均衡的方案什么是负载均衡服务器集群(Cluster)使原创 2022-03-03 21:28:59 · 1284 阅读 · 0 评论 -
《轻量级分布式 RPC 框架》笔记 (源码+注释)
在学习RPC的时候发现了一个很不错的项目,以下是我在学习这个项目的过程中遇到的疑问和答案。目录原文项目地址:项目概括:如何把这个项目跑起来?一个RPC请求之后会发生什么?项目的先修知识spring如何去实现依赖注入?spring的注解如何发挥作用,如何自定义注解?Netty 学习ProtostuffZooKeeper其他问题编码和序列化的区别?这个项目和之前写的RPC有什么区别?改进点原文轻量级分布式 RPC 框架 - 黄勇 - OSC原创 2022-02-21 22:43:52 · 1899 阅读 · 0 评论 -
Zookeeper基本原理+通俗理解+安装使用
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。通俗理解 参考为什么需要 Zookeeper - 知乎很多中间件,比如Kafka、Hadoop、HBase,都用到了 Zookeeper,于原创 2022-02-20 10:33:41 · 1209 阅读 · 0 评论 -
Netty面试题整理(基础知识点)
目录Netty 是什么?为什么要⽤ Netty?Netty 应⽤场景有哪些?Netty 核⼼组件有哪些?分别有什么作⽤?1.Channel2.EventLoop3.Channel的Handler 和PipelineEventloopGroup 了解么? 和 EventLoop 啥关系?Bootstrap 和 ServerBootstrap 是什么?NioEventLoopGroup 默认的构造函数会起多少线程?Netty 线程模型了解么?什么是 TCP 粘包/原创 2022-02-16 11:38:21 · 1726 阅读 · 0 评论 -
手写RPC框架(文末附代码)
目录RPC是什么?应用场景RPC 优点写RPC框架需要具备哪些知识?RPC原理(摘自:什么情况下使用 RPC ? - 知乎)Netty框架具体代码代码目录apiproviderconsumerproxyregistryprotocol本地调用和远程调用 产生的对象有什么区别呢?RPC的调用速度如何?RPC是什么?RPC是远程过程调用(Remote Procedure Call)的缩写形式。通俗的理解就是我调用了一个函数func(args原创 2022-02-14 14:06:51 · 2380 阅读 · 0 评论