zoukankan      html  css  js  c++  java
  • Spring Cloud入门 (3)

    1、简介

      在Spring Cloud集群中,各个角色的通信基于REST服务,因此在调用服务时,就不可避免的需要使用REST服务的请求客户端了。

      Spring 中自带了RestTemplate,RestTemplate使用HttpClient发送请求。

      Spring Cloud 将Feign 框架集成到了 Spring Cloud 的 Netflix 项目中,在其中结合 Ribbon 实现了 负载均衡,所以,我们平时在使用的时候,可能感觉不到 Ribbon 的存在。

    2、常用的 REST 客户端

      1) Apache CXF

      2) Restlet

    3、单独使用 Feign 

      1)新建一个 HelloClient 接口

    public interface HelloClient{
        @RequestLine("GET /hello")
        String sayHello();
    }

      2)执行请求

    public class HelloTest{
        public static void mian(String[] args){
            //这一步调用target实际上是用到了AOP的JDK动态代理,生成了一个
            //代理对象,在调用方法时,由Feign.Client执行了发送请求,这里的请求是AOP中的 “Advice” 
            HelloClient hello=Feign.builder().target(HelloClient.class,
                "http://localhost:8080/");
            //调用Hello接口的方法
            System.out.println(hello.sayHello());
      }

    4、Feign 原理解析
      由上面的例子,我们便可以看出,Feign实际是利用了AOP在为 **Client 接口生成了代理对象,然后利用 “Advice” 的织入,来发送了HTTP请求

    5、Spring Cloud集成 Feign

      Spring Cloud中集成 Feign 实际上是利用了 Feign 提供的 “翻译器” ,将 Spring Web 中的注解 翻译 给了 Feign 听

      例如:

        Spring Web 中的常见注解 @GetMapping("/hello") ,Spring Cloud 翻译后,相当于 Feign 的

        @RequestLine("GET /hello")

  • 相关阅读:
    centos7 做rails 执行rails server 报错
    centos 7 安装 rvm 超时
    centos7 打造基于python语言Selenium2自动化开发环境
    RubyMine8 安装
    linux 下安装 RZ SZ命令 以及使用
    centos 7.2 安装mysql 修改 初始密码
    win10系统配置FTP
    Windows环境安装MySQL8.0.11
    IntelliJ IDEA 2017 上传本地项目至码云
    IntelliJ IDEA 2017.3 搭建一个多模块的springboot项目(三)
  • 原文地址:https://www.cnblogs.com/lkc9/p/11571357.html
Copyright © 2011-2022 走看看