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

旅行网站信息技术化建设江苏专业网站推广公司

旅行网站信息技术化建设,江苏专业网站推广公司,兼职做调查哪个网站好,长春搜索引擎优化前言:OpenFeign是可以跨服务、跨进程的调用方式。 什么是Feign Feign是Netflix开发的声明式、模版化的HTTP客户端。 优势: Feign可以做到使用 HTTP 请求远程服务时就像调用本地方法一样的体验,开发者完全感知不到这是远程方法,更感知不到这…

前言:OpenFeign是可以跨服务、跨进程的调用方式。

什么是Feign

Feign是Netflix开发的声明式、模版化的HTTP客户端。
优势:
Feign可以做到使用 HTTP 请求远程服务时就像调用本地方法一样的体验,开发者完全感知不到这是远程方法,更感知不到这是个 HTTP 请求,开发者无需关注与远程的交互细节,更无需关注分布式环境开发。

Spring Cloud Alibaba快速整合OpenFeign

1、引入依赖,谁远程调用谁引入这个依赖

<!-- openfeign 远程调用 -->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

2、编写调用接口
在这里插入图片描述

package com.by.controller;import cn.by.moder.OrderDTO;
import cn.by.moder.OrderOkDTO;
import cn.by.moder.OrderQueryDTO;
import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.core.util.StrUtil;import org.springframework.web.bind.annotation.*;import java.math.BigDecimal;
import java.util.List;
import java.util.stream.Collectors;@RestController
@RequestMapping("/api/order")
public class OrderController {@GetMapping("/test")public String test() {return "咸蛋超人杨order";}@GetMapping("/ordering")public String ordering() {return "咸蛋超人杨";}@GetMapping("/ordering1")public OrderOkDTO ordering1() {OrderOkDTO build = OrderOkDTO.builder().id(10086L).needPay(new BigDecimal(100)).build();return build;}@PostMapping("/ordering2")public OrderOkDTO ordering2(@RequestBody OrderDTO orderDTO) {List<String> names = orderDTO.getProducts().stream().map(item->item.getName()).collect(Collectors.toList());String join = StrUtil.join(",", names);OrderOkDTO build = OrderOkDTO.builder().id(10086L).needPay(new BigDecimal(100)).msg(join).build();return build;}@GetMapping("/select")public String select(OrderQueryDTO queryDTO) {String empty = StrUtil.EMPTY;if (queryDTO.getId() != null) {empty = "通过Id查询"+queryDTO.getId();}if (queryDTO.getUserId()!= null) {empty = "通过UserId查询"+queryDTO.getUserId();}return empty;}@GetMapping("/sleep")public String sleep(@RequestParam Integer time) {ThreadUtil.safeSleep(time*1000);return  "你睡眠了"+time+"秒";}
}

3、在创建一个调用端,调用端在启动类上添加@EnableFeignClients注解,并创建service接口+@FeignClient注解
在这里插入图片描述
在这里插入图片描述
接口

package com.by.service;import cn.by.moder.OrderDTO;
import cn.by.moder.OrderOkDTO;
import cn.by.moder.OrderQueryDTO;
import com.by.config.FeignConfig;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;//如果想单独配置某个服务的日志级别,使用configuration单独配置
// @FeignClient(name = "order-service-app",configuration = FeignConfig.class)
@FeignClient(name = "order-service-app")
@RequestMapping("/api/order")
public interface OrderService {@GetMapping("/ordering")String ordering();@GetMapping("/ordering1")OrderOkDTO ordering1();@PostMapping("/ordering2")OrderOkDTO ordering2(@RequestBody OrderDTO orderDTO);@GetMapping("/select")String select(@SpringQueryMap OrderQueryDTO queryDTO);@GetMapping("/sleep")String sleep(@RequestParam Integer time);
}

4、发起调用,像调用本地方法一样调用远程服务
在这里插入图片描述

高级配置

1、全局配置
注意一:此处配置@Configuration注解就会全局生效,如果想指定对应某一个服务生效,就不能配置.
注意二: 因为feign调试日志是debug级别输出,springboot默认的日志级别是info,所以feign的debug日志级别就不会输出,一定要结合

package com.by.config;import feign.Logger;
import feign.Request;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;import java.util.concurrent.TimeUnit;@Configuration //全局配置 结合properties中的logging.level.com.by = debug使用
public class FeignConfig {//  @Bean// Logger.Level feignLoggerLevel(){//      // 这里记录所有请求和响应的详细信息,包括头信息等//      return Logger.Level.FULL;//  }@Beanpublic Request.Options options(){return new Request.Options(10, TimeUnit.SECONDS,20, TimeUnit.SECONDS,true);}
}

2 、局部配置
局部配置,让调用的微服务生效,在@FeignClient 注解中指定使用的配置类
在这里插入图片描述
3、 在配置文件配置

logging.level.com.beiyou = debug
开启日志##配置feign 的日志级别
#-- default 全局配置
feign.client.config.default.loggerLevel=NONE
#-- nacos-a 具体服务名
feign.client.config.nacos-a.loggerLevel=FULL

超时配置
全局配置
在这里插入图片描述
配置文件配置

#全局配置
feign.client.config.default.connectTimeout=5000
feign.client.config.default.readTimeout=10000这里default 是一个特殊的客户端名称,用于表示全局配置。设置 connectTimeout 和 readTimeout 属性的值来定义全局的连接超时时间和读取超时时间。#局部配置 请将 <clientName> 替换为实际的Feign客户端名称。
feign.client.config.<clientName>.connectTimeout=5000
feign.client.config.<clientName>.readTimeout=10000feign.client.config.order-service.connectTimeout=5000   # 连接超时时间,默认10s order-service:  #对应微服务
feign.client.config.order-service.readTimeout=10000     # 请求处理超时时间,默认60s
http://www.yayakq.cn/news/574801/

相关文章:

  • 常州微信网站建设建设网站技术人员先进事迹
  • 宁波住房与城乡建设部网站个人域名做企业网站
  • dede手机网站模板腾讯免费企业邮箱注册申请
  • 国家城乡住房建设部网站个人电影网站建设收益
  • phpstorm做网站青岛网站有限公司
  • 公司网站可以做服务器吗wordpress企业主题推荐
  • 建行官方网站 - 百度网站运营数据周报表怎么做
  • 郑州做设计公司网站成都房地产交易中心
  • 芙蓉区营销型网站建设定制网站备案要如何取消
  • 蚌埠市住房建设部网站跨境电商网站建设方案书
  • 灵璧县住房和城乡建设局网站网站推广ww
  • 1万流量网站 服务器配置自动化发布 iis网站
  • 濉溪建设投资网站做网站能力介绍
  • 建设网站学习登陆空间商网站
  • 代理注册公司网站模版建阳建设局网站
  • 电商需要多少投入seo主要优化
  • 企业首页网站属于什么类型网站免费发布信息网站大全
  • 做网站赚钱的案例一键提交各大收录
  • 学生做的网站wordpress多个分类
  • 正能量软件不良网站下载opencms 做的网站
  • 怎么做淘宝客网站和APP长春人才网招聘
  • phpcms 网站转移wordpress移动端模板
  • 天津大寺网站建设开平网络推广
  • 微网站是用什么开发的网站推广策划案例
  • 景区网站建设原则FPGA毕业设计代做网站
  • 全国水利建设市场信用信息平台门户网站百度指数有三个功能模块
  • 基础展示营销型型网站岳阳做网站哪家好
  • 搜索网站做推广手机上能搭建网站吗
  • 做网站资料选择一个网站进行优化
  • 贵阳美容网站建设引流渠道有哪些平台