Spring Cloud微服务系列文,服务调用框架Feign

  • 时间:
  • 浏览:12
  • 来源:淤青的博客 - 专注共享松果娱乐网资源

    这里亲戚亲戚大伙将改写FeignDemo-ServiceCaller项目。

    第二步,启动FeignDemo-ServiceProvider项目,过后输入http://localhost:1111/hello/Peter,能调用其中的服务,此时,能在浏览里看了“hello Peter”的输出。

    其中,前4行是压缩请求,而后4行是压缩返回。

只输出请求的土妙招,请求的URL和相应的情况表码,以及执行的时间

    第三步,在启动类里,通过第1行的代码,添加支持Feign的注释,关键代码如下。原本,在启动你你是什么Eureka客户端时,就可只有引入Feign支持。    

    完成后,依次运行Eureka服务器、服务提供者和服务调用者的启动类,过后在浏览器里输入http://localhost:500500/callHello,即能在控制台里看了DEBUG级别的日志,下面给出了要素输出。

    这里亲戚亲戚大伙将在FeignDemo-ServiceCaller项目里,演示通过Feign调用服务的土妙招。

          2        level:

    从第1行的输出里,亲戚亲戚大伙能看了以GET的土妙招向FeignClientTool类的sayHelloInClient土妙招发起调用,从第2行的输出里,能看了调用开使英语 。

    在第2行的调用中,亲戚亲戚大伙还并能指定url以及返回类型等信息。

          2             String retVal = template.getForEntity("http://sayHello/hello/Eureka", String.class).getBody();

          2        compression:

    也就说 说,在callHello土妙招里,亲戚亲戚大伙并这么再通过RestTemplate,以输入地址和服务名的土妙招调用服务,就说 通过封装进FeignClientTool(Feign接口)里的土妙招调用服务。

    在FeignDemo-Server项目里,搭建基于Eureka的服务器,该项目的端口号是8888,主机名是localhost,启动后,能通过http://localhost:8888/eureka/查看注册到Eureka服务器中的诸多服务提供者或调用者的信息。

          4            mime-types: text/xml,application/xml

    本文谢绝转载。其它和Spring Cloud相关的博文如下:    

    原本亲戚亲戚大伙还见过基于RestClient对象的调用土妙招,关键代码如下。

    完成上述代码后,亲戚亲戚大伙可只有通过如下的步骤查看运行效果。

          2        compression:

输出所有的和请求和响应相关的日志信息

          4            min-request-size:2048

    在原本的代码里,亲戚亲戚大伙是通过如下形式,通过RestTemplate对象来调用服务。

    3          return "hello " + username;

          2       HttpRequest request = HttpRequest.newBuilder().uri(new URI("/hello")).build(); 

BASIC

          1      feign:    

    上述Eureka服务器和客户端的代码,是复用架构师入门:搭建基本的Eureka架构(从项目里抽取)这篇文章里的代码。

描述

除了会输出BASIC级别的日志外,都会记录请求和响应的头信息

          3      HttpResponse response = client.executeWithLoadBalancer(request); 

    第三,可只有通过如下的代码,指定待压缩请求的最小值,这里是2048,也就说 说,超过你你是什么值的request才会被压缩。

    1          @RequestMapping(value = "/hello/{username}", method = RequestMethod.GET   )

    改动点2:在你你是什么项目的启动类ServiceCallerApp.java里,增加定义日志级别的代码,在第7行的feignLoggerLevel土妙招里,亲戚亲戚大伙通过第8行的代码,指定了Feign日志级别是FULL。    

    第2行是调用服务,但其中,亲戚亲戚大伙看只有任何服务提供者的细节,不可能 那些都会第1行引用的FeignClientTool类里封装掉了。也就说 说,通过基于Feign的调用土妙招,开发者能真正地做到“面向业务”,而后要太大地关注发起调用的细节。    

NONE

    亲戚亲戚大伙再来回顾下通过Feign调用服务的土妙招。

    而在第12行的Controller类里,先是在第14行里,通过Autowired注解,引入了FeignClientTool类型的tool类,过后在第17行的callHello土妙招里,是通过tool类的sayHelloInClient土妙招,调用了服务提供者的相关土妙招。

    第一步,在pom.xml里,引入Eureka、Ribbon和Feign的相关包,关键代码如下。其中,是通过第1行到第9行的代码引入Eureka包,通过第10行到第13行的代码引入Ribbon包,通过第14行到第17行的代码引入Feign包。   

          1      feign:    

          2      tool.sayHelloInClient("Peter"); //直接调用

    其中是在第1行指定发起调用的RestClient类型的对象,在第2行里指定待调用的目标地址,过后在第3行发起调用。

    第一步,启动FeignDemo-Server项目,过后输入http://localhost:8888/,能看了注册到Eureka服务器里的诸多服务。

    在Feign里,亲戚亲戚大伙一般能通过如下的配置,来压缩请求和响应。

     在FeignDemo-ServiceProvider项目的控制器类里,亲戚亲戚大伙提供了两个 多sayHello土妙招,本项目提供服务的端口号是1111,对外提供的application name(服务名)是sayHelloServiceProvider,是向FeignDemo-Server服务器(也是Eureka服务器)的http://localhost:8888/eureka/注册服务。而提供sayHello的土妙招如下所示,从中,亲戚亲戚大伙能看了对应的RequestMapping值。

    在上文里,亲戚亲戚大伙用的是FULL级别的日志,此外,还有NONE、BASIC和HEADERS这有一种,在下表里,亲戚亲戚大伙将全部讲述各级别日志的输出情况表。

FULL

    第四步,通过Feign封装客户端调用的细节,内部管理模块是通过Feign来调用客户端的,这要素的代码是在Controller.java里。     

          2        compression:

    第一,可只有通过在application.yml里增加如下的配置,从而压缩请求和返回信息。

          3          com.controller.FeignClientTool: DEBUG  

    2          public String sayHello(@PathVariable("username") String username){

HEADERS

          1      logging:

          1      RestClient client = (RestClient)ClientFactory.getNamedClient("RibbonDemo"); 

          3          request:

    说得更专业些,这叫“解耦合”,即降低服务调动者和服务提供者之间的耦合度,原本的好处是,一旦服务提供者改变了实现细节(没改变服务调用接口),这么服务调用者要素的代码后要改动。

          5      feign:

          1      RestTemplate template = getRestTemplate();

    第二步,在application.yml里,通过第3行的代码,定义本项目的名字叫callHelloByFeign,通过第5行的代码,指定本项目是工作在500500端口。一并通过第9行的代码,指定本项目是向http://localhost:8888/eureka/ (也就说 FeignDemo-Server)你你是什么Eureka服务器注册。    

    原本博文的案例中,亲戚亲戚大伙是通过RestTemplate来调用服务,而Feign框架则在此基础上做了一层封装,比如,可只有通过注解等土妙招来绑定参数,不可能 以声明的土妙招来指定请求返回类型是JSON。    你你是什么“再次封装”能给亲戚亲戚大伙带来的便利有两点,第一,开发者后要像使用RestTemplate那样太大地关注HTTP调用细节,第二,在大多数场景里,有一种类型的调用请求会被在多个地方被多次使用,通过Feign能方便地实现类式于于“重用”。

    第三步,启动FeignDemo-ServiceCaller项目,过后输入http://localhost:500500/callHello,同样能在浏览里看了“hello Peter”的输出。请注意,这里的调用是通过Feign完成的。    

    但事实上,那些调用土妙招的底层细节,应该向服务使用者屏蔽,比如在调用时,后要关注目标url等信息。这就好比某位老板要秘书去订飞机票,作为服务使用者的老板只应当关心调用的结果,比如买到的飞机票是几点开的,该去哪个航站楼登机,至于调用服务的底层细节,比如该到哪个订票网站去买,服务使用者后要知道。

          1      feign:

    第二,可只有通过如下的代码,设置哪类请求(或返回)将被压缩,这里亲戚亲戚大伙在第4行里,指定了两类格式的请求将被压缩。

          6         compression:

     一般情况表下,在调试阶段,可只有把日志级别设置成FULL,等上线后,可只有把级别调整为BASIC,不可能 在生产环境上,太大的日志反而会降低排查和定位那些的问提的下行速率 。    

          3          request:

          8            enabled: true

    改动点1:在application.yml文件里,增加如下的代码,以开启Feign客户端的DEBUG日志模式,请注意,这里还并能指定完成的路径,就像第3行那样。

    在开发和调试阶段,亲戚亲戚大伙希望能看了日志,从而能定位和排查那些的问提。这里,亲戚亲戚大伙将讲述在Feign里输出日志的土妙招,以便让亲戚亲戚大伙能在通过Feign调用服务时,看了具体的服务信息。

    这有一种调用土妙招有着如下的一并点:调用时,还并能全部地知道各种调用参数,比如服务提供者的url,不可能 有还并能通过Ribbon实现负载均衡等机制,也还并能在调用时一并指定。

          2      2018-06-17 12:18:27.296 DEBUG 208 --- [rviceProvider-2] com.controller.FeignClientTool           : [FeignClientTool#sayHelloInClient] ---> END HTTP (0-byte body)

          1      2018-06-17 12:18:27.296 DEBUG 208 --- [rviceProvider-2] com.controller.FeignClientTool           : [FeignClientTool#sayHelloInClient] ---> GET http://sayHelloServiceProvider/hello/Peter?name=Peter HTTP/1.1

          3          request:

    在网络传输过程中,不可能 亲戚亲戚大伙能降低传输流量,这么即可提升处里请求的下行速率 。尤其地,在一点日常访问量比较高的网络应用中,不可能 能降低处里请求(Request)和发送返回信息(Response)的时间,这么就能提升本站的吞吐量。

          4            enabled: true

    在Controller.java你你是什么文件,我我随便说说定义了两个 多接口和两个 多类。在第5行的FeignClientTool接口里,亲戚亲戚大伙封装了Feign的调用业务,具体来说,是通过第3行的FeignClient注解,指定了该接口会调用“sayHelloServiceProvider“服务提供者的服务,而通过第8行的,则指定了调用该服务提供者中sayHelloInClient的土妙招。

          1      private FeignClientTool tool; //定义Feign类

          7           response:

日志输出级别

    4      }

不输出任何日志

猜你喜欢

极速10分快3计划_2018年木马病毒包新增超800万个,腾讯手机管家提醒用户警惕潜在威胁

2极速10分快3计划018极速10分快3计划年,信息泄露事件、电信网络诈骗事件频发,移动端安全形势依旧严峻。1月,广州一位女博士遭遇“假冒公检法”诈骗,损失840万 元;5月

2019-09-16

分分飞艇最新版下载_法国总统马克龙新年贺词:2018继续进行深入改革

据外媒报道,即将跨入2018新的一年之际,法国总统马克龙发表入主爱丽舍宫以来首次新年贺词。马克龙表示,2018新的一年将继续改革,迎接“法兰西的复兴”。据报道,当地时间12月3

2019-09-16

大发10分快3计划_最星闻:《蜜汁炖鱿鱼》什么小说改编的 结局简介

来源:女性窝2018-06-0913:16:08  最新热点:范冰冰御用同款面膜正在天猫疯抢!手淘搜索<膜派范爷御用同款面膜>立即抢购大发10分快3计划。    《蜜汁炖鱿鱼》

2019-09-16

幸运pk10app安卓 _阔腿裤+平底鞋,才是今秋最时尚的打开方式!150,160,170,都能轻松驾驭!

来源:橘子苹果苹果娱乐2017-09-2208:05:36  文章来源:橘子苹果苹果娱乐,标题:阔腿裤+平底鞋,才是今秋最时尚的打开土办法 !5000,1500,170,都能

2019-09-16

2分飞艇破解器app_中国海洋腐蚀每年损失7千亿 如防护到位可减损1/3

悄无声息的腐蚀,其破坏力比地震等自然灾害造成的损失更为严重。自2015年来,依托中国工程院重大咨询项目“我国腐蚀状况与控制战略研究”,包括近200位院士在内的200位科技工作者

2019-09-16