手写RPC框架(十九)

v2.10

更新进行1、代码的规范化 格式的优化 2、同时进行全局异常的精简和封装 新增全局异常处理类 3、将输出信息 转换为日志输出

  • 因为System.out是属于同步的 所以一定程度上会使得业务程序进行等待,用log会好很多 所以全部转变为用log打印日志✔

    • 问题 日志无法打印 原因 应该是配置问题

      log4j.rootLogger=info, ServerDailyRollingFile, stdout
      log4j.appender.stdout=org.apache.log4j.ConsoleAppender
      log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
      log4j.appender.stdout.layout.ConversionPattern=[%p] %C{1} - %m%n
      
    • 这样的配置打出来的,会显示相应其他信息,导致观感很混乱
      配置文件解析 首先log4j.rootLogger中的第一个就是我们能打印的最低日志级别,一般是通过这个来设置的stdout就是控制台,后面两个就是信息输出的地方。

    • 我们输出的日志级别是info,但会导致同时输出的日志非常多 这是之后或者其他朋友可以优化的

    • 问题 打印日志中文乱码 解决方法 在idea.exe.vmpotions 添加-Dfile.encoding=UTF-8

  • 自定义异常 异常处理✔

    • 出现异常之后 直接就地处理 因为不是web类型 所以需要就地处理 不能给用户看见 需要优雅
  • 将作者信息加入✔

  • 统一一下配置类

    • 在过时的配置类加上了@Deprecated

      package configuration;
      
      import annotation.*;
      import loadbalance.RandomLoadBalance;
      
      /**
       * @Author 祝英台炸油条
       * @Time : 2022/5/20 20:42
       * 全局配置  将所有的配置都配置在它上面
       * 解压缩器 序列化器 注册中心 负载均衡 心跳机制等
       **/
      /*
          @RegistryChosen
      
          zookeeper   zk注册中心
          nacos       nacos实现注册中心
          zkCurator   Curator协助操作注册中心
      */
      
      /*
          @CodecSelector
      
          ObjectCodec
          protoc
          kryo
          protostuff
          hessian
          fst
          avro
          jackson
          fastjson
          gson
       */
      
       /*
          @LoadBalanceMethodImpl
      
          RandomLoadBalance.class
          AccessLoadBalance.class
          ConsistentLoadBalance.class
        */
      
      /*
          @CompressSelector
      
          BZipUtils
          DeflaterUtils
          GZipUtils
          Lz4Utils
          ZipUtils
       */
      
      
      @CompressFunction(isOpenFunction = true)
      @CompressSelector(CompressTool = "DeflaterUtils")
      @HeartBeatTool(isOpenFunction = true,
              readerIdleTimeSeconds = 4,
              writerIdleTimeSeconds = 4,
              allIdleTimeSeconds = 2)
      @LoadBalanceMethodImpl(chosenMethod = RandomLoadBalance.class)
      @RegistryChosen(registryName = "zookeeper")
      @CodecSelector(Codec = "fastjson")
      public class GlobalConfiguration {
      }
      
      
  • 优化格式 ✔

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值