BootNettyRpc用 Netty实现的 RPC 框架

什么是 BootNettyRpc?

  BootNettyRpc 是一个采用Netty实现的Rpc框架,适用于Spring Boot项目,支持Spring Cloud。 目前支持的版本为Spring Boot 1.5.x,Spring Cloud版本为D和E版本。

  怎么使用?

  分为本地启动和结合Spring Cloud启动。具体见example 案例,现在以本地案例来说明,Spring Cloud案例省略。

  BootNettyRpc 包括Server端和Client端。

  Server端

  在pom文件中加上依赖:

  dependency

  groupIdio.github.forezp/groupId

  artifactIdboot-netty-rpc-core/artifactId

  version1.0.5/version

  /dependency

  在Spring Boot启动工程加上注解@EnableNettyRpc,需要开启包扫描,不填也可以,会全局扫描,有一点影响启动速度,比如例子中的ExampleRpcServerApplication:

  @SpringBootApplication

  @EnableNettyRpc(basePackages = com.forezp)

  public class ExampleRpcServerApplication {

  publicstaticvoidmain(String[]args){SpringApplication.run(ExampleRpcServerApplication.class,args);}

  }

  在配置文件配置Netty Server的端口和Netty Server的name,该name会作client端的调用的name。

  server:

  port: 7001

  netty.server.name: server

  netty.server.port: 6001

  写一个服务,接口如下:

  public interface IGreeting {

  StringsayHello(Stringname);

  }

  实现类如下:

  @Service

  public class Greeting implements IGreeting {@Override

  dependency

  groupIdio.github.forezp/groupId

  artifactIdboot-netty-rpc-core/artifactId

  version1.0.5/version

  /dependency

  在SpringBoot的启动类加上@EnableNettyRpc注解,如下:

  @Override

  br/@RestControllerbr = a=public class ExampleRpcClientApplication {

  @RestController

  }@Autowired

  Object object = greeting.sayHello( hi );

  联系我

  如果有任何问题和建议,请联系我,我的邮箱 XXX@163.com

  已经实现的功能

  rpc(实现同步、异步调用)

  负载均衡

  接口线程池隔离

  接入Eureka

  接入链路追踪

  接入监控

  接入报警邮箱

  优化rpc性能 (需持续优化)

  未来计划

  接入多种序列化,做到可配置

  自定义协议,trace的index不需要指定

  接入consule

  支持spring boot 2.0 Spring Cloud F

  @Autowiredbr/ rel=nofollow

    原文作者:千锋IT
    原文地址: https://www.jianshu.com/p/69b4ba82988b
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞