netty搭建rpc框架

netty想必大家都不陌生,我就不废话介绍了…(主要是懒,网上资料很多的)

本文主要使用netty搭建rpc远程调用框架,实现了个注册中心微服务,整合了springboot例子…

开发内容

  • 用到动态代理+反射去调用服务的业务方法(注:简单调用,可自行拓展)
  • 在没用用对象池的前提下,请求成功率不到50%;运用对象池后,请求成功率达到99%(注:本地调试,请求超时设置6秒,如果是真是场景会低一些)
  • 加入了 metrics 监控指标,监控连接数
  • 加入了idle检测和keepalive,保持连接,防止恶意占用资源
  • 服务端引入FlushConsolidationHandler减少flush的次数,增强写,牺牲延迟增加吞吐量
  • 服务端引入业务线程池,减少等待时间

具体功能和如何使用,看github

喜欢的话点个小星星就好

如果有什么可优化的点或不清楚的点可以留言

Original: https://www.cnblogs.com/lvlq73/p/15916930.html
Author: 帽子平头
Title: netty搭建rpc框架

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/580738/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • JavaCV的摄像头实战之七:推流(带声音)

    借助JavaCV,完成本地摄像头和麦克风数据推送到媒体服务器的操作,并用VLC验证 欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://gith…

    Java 2023年6月8日
    094
  • 如何提高团队开发质量

    年轻的时候去面过一个相对于当时我的比较高端的管理岗位,当时的我情况是,开发经验相对丰富, 但管理经验还欠缺。对方当时面临一个具体的问题。 “我们最近生产上,出现了一个比…

    Java 2023年6月15日
    063
  • Java虚拟机之内存区域

    相对于C/C++C程序员,Java程序员会相对轻松一些,因为Java虚拟机的内存管理机制会管理内存,不需要开发人员手动进行内存管理,也不容易出现内存泄露和内存溢出的。但如果不了解虚…

    Java 2023年5月29日
    068
  • spring中特殊赋值处理

    字面量赋值:之间调用value赋值就行 赋值null: 特殊符号赋值: 1. Original: https://www.cnblogs.com/bieyinan/p/166971…

    Java 2023年6月16日
    072
  • redis集群详解

    所谓的集群,就是通过增加服务器的数量,提供相同的服务,从而让服务器达到一个稳定、高效的状态。 单个redis存在不稳定性。当redis服务宕机了,就没有可用的服务了。而且单个red…

    Java 2023年6月7日
    089
  • 面试准备 — 大数据Hive相关

    1、拉链表 好文 需要查看一件事物从开始到现在的全部状态,比如用户从注册到今天改了几次手机号? 实际应用场景:1、用户数据量很大 2、某些字段经常被更新,其他字段基本不变 3、需求…

    Java 2023年6月7日
    074
  • Liquibase 使用(全)

    开发过程经常会有表结构和变更,让运维来维护的话,通常会有很大的沟通成本,有时在开发方案有问题的时候,提测失败整个项目需要回滚,代码回滚起来是很容易的,通常有备份,但数据库的话就要人…

    Java 2023年6月5日
    0138
  • JVM-堆

    堆 JAVA技术交流群:737698533 堆核心概述 此内存区域的唯一目的就是存放对象实例 一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。 Java堆区在JV…

    Java 2023年6月6日
    074
  • 【转载】SpringCloud-Eurek 心跳阈值说明

    在使用eureka过程中,查看监控界面,出现: Renews threshold:server期望在每分钟中收到的心跳次数Renews (last min):上一分钟内收到的心跳次…

    Java 2023年5月29日
    067
  • 62进制在短链接场景的妙用

    假如要生成6位的字符 如何才能可靠的生成更多数据。 10进制 最大只能生成 10 ^ 6 – 1 = 999999个16进制 最大只能生成 16 ^ 6 –…

    Java 2023年6月16日
    090
  • SpringBoot自定义注解——通过AOP编程实现注解的业务逻辑功能

    (1)首先我们可以通过@interface来定义一个注解: import static java.lang.annotation.ElementType.METHOD; impor…

    Java 2023年5月30日
    069
  • springcloud alibaba 集成 nacos注册中心配置使用

    pom <span class="hljs-tag"><<span class="hljs-name">pro…

    Java 2023年6月7日
    075
  • 设计模式之命令模式

    命令模式又称为行动/交易模式,属于行为型模式;是指将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行储存、传…

    Java 2023年6月5日
    087
  • 用typora+PicGo+GITee实现自动上传图片

    typora+PicGo+Gitees自动上传图片 1.打开下载好的 PicGo 点击左侧最下方 –> 插件设置。在右边输入框 输入:gitee,选择右边的插件,…

    Java 2023年6月7日
    0113
  • 让SpringBoot也用上Fluent Validator

    前言 在使用SpringBoot的时候经常需要对客户端传入的参数进行合法性的校验,校验的方法基本上都是使用SpringBoot提供的注解,有时候遇上注解不能满足需求的时候还需要在业…

    Java 2023年6月15日
    083
  • Java 对象拷贝(字段名不同)包orika

    在项目中经常会有对象拷贝属性的需求,类之间属性的拷贝,看似是一个简单的操作,其实通常也是工程里最花费时间的事情,毕竟这个年代不能老是不停地写 setter和 getter方法吧。 …

    Java 2023年5月29日
    084
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球