基于springcloud模拟RPC调用的方法

  介绍

这篇文章主要讲解了基于springcloud模拟RPC调用的方法,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。

<强>假装简介

假装是一个声明式的Web服务客户端,它能够让Web服务客户端的编写变得更加容易(你只需创建一个接口,并在接口上添加相应注解即可)。除了假装自带的注解外它还支持jax - rs注解,springcloud又为假装增加了对SpringMVC注解的支持,同时为了能够使用和Spring Web中默认使用的相同的httpMessageConverter, springcloud集成了丝带和尤里卡,用来在使用假装时能够为其提供一个负载均衡的HTTP客户端。

总起来说,假装具有如下特性:

1。可插拔的注解支持,包括假装注解和jax - rs注解;

2。支持可插拔的HTTP编码器和解码器;

3。支持Hystrix和它的后备;

4。支持丝带的负载均衡;

5。支持HTTP请求和响应的压缩。

接下来我们将通过对上一章《客户端负载均衡(丝带)》中的信息中心项目进行改造,演示如何使用假装。

信息中心改造

<强>引入假装依赖

由于假装依赖中默认包含了丝带,所以只需要在砰的一声。xml文件中引入假装依赖即可,丝带依赖无需重复引入:

& lt; parent>   & lt; groupId> org.springframework.boot   & lt; artifactId> spring-boot-starter-parent   & lt; version> 2.0.6.RELEASE   & lt;/parent>      & lt; properties>   & lt; spring-cloud.version> Finchley.SR2   & lt;/properties>      & lt; dependencies>   & lt; dependency>   & lt; groupId> org.springframework.boot   & lt; artifactId> spring-boot-starter-web   & lt;/dependency>   & lt; !——Eureka-Client依赖——比;   & lt; dependency>   & lt; groupId> org.springframework.cloud   & lt; artifactId> spring-cloud-starter-netflix-eureka-client   & lt;/dependency>   & lt; !——假装依赖——比;   & lt; dependency>   & lt; groupId> org.springframework.cloud   & lt; artifactId> spring-cloud-starter-openfeign   & lt;/dependency>   & lt;/dependencies>      & lt; dependencyManagement>   & lt; dependencies>   & lt; !——SpringCloud版本控制依赖——比;   & lt; dependency>   & lt; groupId> org.springframework.cloud   & lt; artifactId> spring-cloud-dependencies   & lt; version> $ {spring-cloud.version} & lt;/version>   & lt; type> pom   & lt; scope> import   & lt;/dependency>   & lt;/dependencies>   & lt;/dependencyManagement>

<强>修改启动类

在MessageCenterApplication启动类上增加@EnableFeignClients注解:

进口org.springframework.boot.WebApplicationType;
  进口org.springframework.boot.autoconfigure.SpringBootApplication;
  进口org.springframework.boot.builder.SpringApplicationBuilder;
  进口org.springframework.cloud.openfeign.EnableFeignClients;
  @SpringBootApplication
  @EnableFeignClients
  公开课MessageCenterApplication {
  公共静态void main (String [] args) {
  了对新SpringApplicationBuilder (MessageCenterApplication.class) web这类(WebApplicationType.SERVLET) .run (args);
  }
  }

这里我们在启动类中增加了@EnableFeignClients注解,用来开启假装客户端发现功能。

如果你的假装客户端类文件不在春天的包扫描路径之中,可以在@EnableFeignClients注解中对假装客户端的包路径进行指定。

@SpringBootApplication   @EnableFeignClients (basePackages=癱om.pengjunlee.client。* *“)   公开课MessageCenterApplication {   公共静态void main (String [] args) {   了对新SpringApplicationBuilder (MessageCenterApplication.class) web这类(WebApplicationType.SERVLET) .run (args);   }   }

<>强创建假装客户端

对外提供服务的HTTP接口定义在MessageController

@RestController   @RequestMapping (“/api/v1/msg")   公开课MessageController {      @ value (“$ {server.port}“)   私人字符串端口;/* *   *返回一条消息   */@GetMapping (“/get")   公共字符串getMsg () {   返回“这消息发送端口:“+端口;   }   }

接下来,我们在消费端信息中心中为它创建一个假装客户端。新建一个接口取名MessageServiceClient,并在上面添加@FeignClient注,解完整代码如下:

基于springcloud模拟RPC调用的方法