当前位置: 首页 > news >正文

政府网站信息化建设工作汇报怎么找精准客户资源

政府网站信息化建设工作汇报,怎么找精准客户资源,淘宝客 网站建设,wordpress怎么修改logo尺寸OpenFeign介绍OpenFeign是什么1.OpenFeign是个声明式WebService客户端,使用OpenFeign让编写Web Service客户端更简单2.它的使用方法是定义一个服务接口然后在上面添加注解3.OpenFeign也支持可拔插式的编码器和解码器4.Spring Cloud对OpenFeign进行了封装使其支持了S…

OpenFeign介绍

OpenFeign是什么

1.OpenFeign是个声明式WebService客户端,使用OpenFeign让编写Web Service客户端更简单

2.它的使用方法是定义一个服务接口然后在上面添加注解

3.OpenFeign也支持可拔插式的编码器和解码器

4.Spring Cloud对OpenFeign进行了封装使其支持了Spring MVC标准注解和HttpMessageConverters

5.OpenFeign可以与Eureka和Ribbon组合使用以支持负载均衡

官网

github.com/spring-cloud/spring-cloud-openfeign

Feign和OpenFeign区别

Feign,目前已弃用:

·Feign是Spring Cloud组件中的一个轻量级RESTful的HTTP服务客户端

·Feign内置了Ribbon,用来做客户端负载均衡,去调用服务注册中心的服务。

·Feign的使用方式是:使用Feign的注解定义接口,调用服务注册中心的服务

·Feign支持的注解和用法请参考官方文档:https://github.com/OpenFeign/feign

·Feign本身不支持Spring MVC的注解,它有一套自己的注解

  • 引入依赖

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-feign</artifactId>
</dependency>

OpenFeign

·OpenFeign是Spring Cloud在Feign的基础上支持了Spring MVC的注解,如@RequesMapping等等。

·OpenFeign的@FeignClient可以解析SpringMVC的@RequestMapping注解下的接口

·OpenFeign通过动态代理的方式产生实现类,实现类中做负载均衡并调用其他服务

精简一句话:OpenFeign就是在Feign基础上做了加强,有些程序员为了方便,说Feign就是指的OpenFeign

  • 引入依赖

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

OpenFeign-应用实例

对于 获取服务+负载均衡+远程调用 这样的架构,之前用的方案1,现在来使用方案2:

方案1:Ribbon+RestTemplate

方案2:OpenFeign

  1. 创建新module: e-commerce-consumer-openfeign-80

  1. 配置pom.xml文件,参考原e-commerce-consumer-80

  • 在consumer的pom.xml基础上,添加openfeign的依赖

  <!--引入openfeign场景启动器--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency>
  1. 配置application.yml文件

server:port: 80 #配置端口
spring:application:name: e-commerce-consumer-openfeign-80 #配置在服务器显示的名字
eureka:client:register-with-eureka: true #将自己注册到服务端fetch-registry: true #从服务端抓取注册列表service-url: #注册到的服务器地址# 使用逗号分隔多个服务器地址defaultZone: http://eureka9001.com:9001/eureka,http://eureka9002.com:9002/eureka

4. 创建主启动类

  • @EnableEurekaClient 启用Eureka客户端

  • @EnableFeignClients 启用OpenFeign客户端

@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class MemberConsumeOpenfeignApplication {public static void main(String[] args) {SpringApplication.run(MemberConsumeOpenfeignApplication.class,args);}
}

5. 创建Service层接口

感觉还是有点绕的,理清一下思路。

  • 浏览器地址-->Consumer(Controller.selectByIdTest->.Service.selectByIdTest->url)

-->openfeign-->Provider(url->Controller.selectById->Service->DAO)

  • 这儿作为消费者consumer模块需要去-->调用provider的模块,需要对面的地址,所以有@GetMapping("/member/query/{id}")要使用

  • 而注解下面的方法,是给Controller层调用的,这儿起到接口的作用来解耦。所以最好就是复制调用对象的方法,当然方法名自己可以更改(不建议),下面加了Test进行测试确认可以更名。

  • 所以联系起来就是。Controller调用->Service接口方法,通过该方法反射到注解的路径,此时Feign来决定调用MEMBER-SERVICE-PROVIDER里面具体哪台服务器,起到负载均衡的作用

  • (个人理解)这儿的Mapper是被方法所使用的,provider的Mapper是用来定位方法的。

/*** 1.远程调用的方式是get。跟随引用的provider一致,而它又是根据方法名来选择的,比如“get”ForObject()* 2.远程调用url http://MEMBER-SERVICE-PROVIDER/member/get/{id}。*  经测试,大小写都能用。无论从Eureka网页复制(大写),还是pom.xml复制的(小写)都行* 3.MEMBER-SERVICE-PROVIDER就是服务提供方在Eureka Server注册的服务* 4.openfeign会根据负载均衡来决定调用10000/10002,默认是轮询*/
@Component
@FeignClient("member-service-provider")
public interface MemberConsumerOpenfeignService {@GetMapping("/member/query/{id}")public Result selectByIdTest(@PathVariable("id")Long id);
}

6. 创建Controller/Mapper映射,调用Service层

  • @RestController。因为返回类型的缘故,需要使用Json格式,所以使用@ResponseBody的组合形式。

@RestController
public class MemberConsumerOpenfeignController {@Resourceprivate MemberConsumerOpenfeignService feignService;@GetMapping("/member/feign/query/{id}")public Result getResultById(@PathVariable Long id){return feignService.selectByIdTest(id);}

测试

启动各服务,浏览器输入:http://localhost/member/feign/query/1 。通过刷新查看返回的不同provider确定成功使用。

注意事项

·配Openfeign的使用特点是微服务调用接口+@FeignClient,使用接口进行解耦

@FeignClient(value="MEMBER-SERVICE-PROVIDER"),这里MEMBER-SERVICE-PROVIDER就是Eureka提供注册的名称,不要写错了

·接口方法上:value是不能乱写,远程调用的url为

http://MEMBER-SERVICE-PROVIDER/member/get/{id}

@GetMapping(value ="/member/get/(id)")
public Result<Member>getMembertByld(@PathVariable("id")Long id);

OpenFeign日志配置

基本介绍

  1. 说明:Feign提供了日志打印功能,可以通过配置来调整日志级别,从而对Feign接口的调用情况进行监控和输出。也便于调试。

2.日志级别

NONE:默认的,不显示任何日志

BASIC:仅记录请求方法、URL、响应状态码及执行时间;

HEADERS:除了BASIC中定义的信息之外,还有请求和响应的头信息;

FULL:除了HEADERS中定义的信息之外,还有请求和响应的正文及元数据。

配置日志-应用实例

配置类

  • 设置日志级别

@Configuration
public class OpenfeignConfiguration {@Beanpublic Logger.Level setLevel(){return Logger.Level.FULL;}
}

配置yml

  • 常见的日志级别有5种,分别是error、warn、info、debug、trace

error:错误日志,指比较严重的错误,对正常业务有影响,需要运维配置监控的:

warn:警告日志,一般的错误,对业务影响不大,但是需要开发关注;

info:信息日志,记录排查问题的关键信息,如调用时间、出参入参等等;

debug:用于开发DEBUG的,关键逻辑里面的运行时数据;

trace:最详细的信息,一般这些信息只记录到日志文件中。

  • 注意level下面类的全路径,指向Service,差点写错了

logging:level:com.stein.springcloud.service.MemberConsumerOpenfeignService: debug

测试

不使用,可撤销测试日志配置

OpenFeigni超时

手动超时

默认超过1s,返回超时。在两个provider的controller.selectById()添加代码:

  • 手动设置超时。不能使用线程休眠,导致该provider无法使用

        try {
//            Thread.sleep(2000);TimeUnit.MILLISECONDS.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}

设置多久超时

在consumer-openfeign的yml设置超时时长

ribbon:#1,设置Feign客户端超时时间(openfeign,默认支铆ibbon)#2.ReadTimeout:8000:建立连接从服务提供方获取可用资源的所用的全部时间#3.时间单位是毫秒ReadTimeout: 4000#连接超时时间ConnectionTimeout: 4000

测试

地址栏输入:http://localhost/member/feign/query/1 查看设置前后,是否超时。


文章转载自:
http://dinncorosamund.stkw.cn
http://dinncoultramicroscope.stkw.cn
http://dinncotrimethylglycine.stkw.cn
http://dinnconongrammatical.stkw.cn
http://dinncopinnatilobed.stkw.cn
http://dinncographic.stkw.cn
http://dinncothermit.stkw.cn
http://dinncoyea.stkw.cn
http://dinncoordinant.stkw.cn
http://dinncoshaanxi.stkw.cn
http://dinncoproportionment.stkw.cn
http://dinncobeery.stkw.cn
http://dinncopaging.stkw.cn
http://dinncogranitic.stkw.cn
http://dinncohdd.stkw.cn
http://dinncocounterbalance.stkw.cn
http://dinncojurua.stkw.cn
http://dinncohygrogram.stkw.cn
http://dinncocmtc.stkw.cn
http://dinncohenpeck.stkw.cn
http://dinncohybrimycin.stkw.cn
http://dinncocriminy.stkw.cn
http://dinncoambages.stkw.cn
http://dinncovarietal.stkw.cn
http://dinncoretenue.stkw.cn
http://dinncoidiochromatic.stkw.cn
http://dinncorescind.stkw.cn
http://dinncosymplesite.stkw.cn
http://dinncorhythmocatechism.stkw.cn
http://dinncolighten.stkw.cn
http://dinncodumpishly.stkw.cn
http://dinncocercis.stkw.cn
http://dinncointerlanguage.stkw.cn
http://dinncoautoicous.stkw.cn
http://dinncodemean.stkw.cn
http://dinncohysterectomize.stkw.cn
http://dinncobyzantinism.stkw.cn
http://dinncobenignity.stkw.cn
http://dinncomonoaminergic.stkw.cn
http://dinncoodalisk.stkw.cn
http://dinncohcg.stkw.cn
http://dinncolegroom.stkw.cn
http://dinncohurtfully.stkw.cn
http://dinncoprelude.stkw.cn
http://dinncopsia.stkw.cn
http://dinncoinhumane.stkw.cn
http://dinncoreaganism.stkw.cn
http://dinncopampered.stkw.cn
http://dinncopelvis.stkw.cn
http://dinncopilau.stkw.cn
http://dinncoinvariance.stkw.cn
http://dinncofurcation.stkw.cn
http://dinncoclarification.stkw.cn
http://dinncoatergo.stkw.cn
http://dinncography.stkw.cn
http://dinncohumilis.stkw.cn
http://dinncopilch.stkw.cn
http://dinncoclodpoll.stkw.cn
http://dinncostatewide.stkw.cn
http://dinncoheiau.stkw.cn
http://dinncodionysiac.stkw.cn
http://dinnconummulite.stkw.cn
http://dinncofoci.stkw.cn
http://dinncopentoxid.stkw.cn
http://dinncodiversion.stkw.cn
http://dinncodivinization.stkw.cn
http://dinncoentwine.stkw.cn
http://dinncoparricide.stkw.cn
http://dinncoindispensable.stkw.cn
http://dinncopantisocracy.stkw.cn
http://dinncoursiform.stkw.cn
http://dinncopaesano.stkw.cn
http://dinncoaerugo.stkw.cn
http://dinncodanegeld.stkw.cn
http://dinncoplan.stkw.cn
http://dinncodepersonalize.stkw.cn
http://dinncowren.stkw.cn
http://dinncostork.stkw.cn
http://dinncoamoebae.stkw.cn
http://dinncoorpharion.stkw.cn
http://dinncohedy.stkw.cn
http://dinnconickelous.stkw.cn
http://dinncoprotostele.stkw.cn
http://dinncolayperson.stkw.cn
http://dinncorouser.stkw.cn
http://dinncoallied.stkw.cn
http://dinncoproportional.stkw.cn
http://dinncolaborist.stkw.cn
http://dinncohustle.stkw.cn
http://dinncosaving.stkw.cn
http://dinncofestucine.stkw.cn
http://dinnconwbw.stkw.cn
http://dinncosclerosis.stkw.cn
http://dinncocorruptibility.stkw.cn
http://dinncoplumpen.stkw.cn
http://dinncoraggedly.stkw.cn
http://dinncoucayali.stkw.cn
http://dinncowashman.stkw.cn
http://dinncodiplomacy.stkw.cn
http://dinncoantheral.stkw.cn
http://www.dinnco.com/news/88105.html

相关文章:

  • 建设vip网站相关视频百度竞价广告推广
  • 建设一个小网站赚钱吗智能网站排名优化
  • 技术合同 网站开发苏州百度推广开户
  • 北京搬家公司24小时服务电话长沙seo 优化选智投未来no1
  • 提供邯郸做wap网站小程序怎么引流推广
  • wordpress扁平化主题下载seo自动发布外链工具
  • 什么网站做护工百度关键词优化是什么意思
  • 一个免费的影视网站模板百度seo官网
  • 2017网站建设报价方案seo推广
  • 网站 keywords seo长尾词优化外包
  • 接入备案和增加网站东莞seo培训
  • 东莞seo整站优化火速浏览器下载安装2023版本
  • 有什么做任务的网站吗如何做百度竞价推广
  • 鑫瀚通网站建设百度搜索广告收费标准
  • 深圳全网站建设公司网络推广工作室
  • 做网站用什么程序软文是什么意思通俗点
  • 做网站还是移动开发360免费建站
  • 保定网站制作专业网站内部优化有哪些内容
  • 曲阜网站建设价格今晚赛事比分预测
  • 网站防护找谁做长春头条新闻今天
  • 中国域名拍卖网宁德seo公司
  • 北京做erp报价的网站网页设计与网站建设教程
  • 微网站和h5有什么区别网络营销的50种方法
  • 漳州做网站seo案例
  • 网站小视频怎么做各大免费推广网站
  • 静态网站后台seo优化网站的手段
  • b2c电商网站建设内蒙古seo
  • 荆门网站建设公司360网站安全检测
  • 互联网保险的典型产品关键词优化上海
  • jsp做的零食店网站网页推广链接怎么做