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

微信开发网站建设学习软件

微信开发网站建设,学习软件,房山区文化活动中心有wifi吗,同一个网站可以同时做竞价和优化前文地址: 001 SpringCloudAlibaba整合 - Nacos注册配置中心、Sentinel流控、Zipkin链路追踪、Admin监控 文章目录 8.Feign远程调用、loadbalancer负载均衡整合1.OpenFeign整合1.引入依赖2.启动类添加EnableFeignClients注解3.yml配置4.日志配置5.远程调用测试6.服务…

前文地址:
001 SpringCloudAlibaba整合 - Nacos注册配置中心、Sentinel流控、Zipkin链路追踪、Admin监控

文章目录

    • 8.Feign远程调用、loadbalancer负载均衡整合
      • 1.OpenFeign整合
        • 1.引入依赖
        • 2.启动类添加`@EnableFeignClients`注解
        • 3.yml配置
        • 4.日志配置
        • 5.远程调用测试
        • 6.服务降级
        • 7.重试配置,服务端异常捕获
        • 8.连接池配置
      • 2.Loadbalancer负载均衡测试
        • 1.复制客户端
        • 2.修改端口启动
        • 3.测试
        • 4.修改负载均衡算法

8.Feign远程调用、loadbalancer负载均衡整合

1.OpenFeign整合

1.引入依赖

注意:由于openfeign高版本使用loadbalancer负载均衡而不是ribbon,所以需要引入loadbalancer依赖排除ribbon,否则会报错

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>
        <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><exclusions><exclusion><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-ribbon</artifactId></exclusion></exclusions></dependency>
2.启动类添加@EnableFeignClients注解
3.yml配置
#由于feign高版本使用loadbalancer负载均衡,排除了ribbon,所以超时时间不能使用ribbon配置
feign:#开启feign对sentinel支持sentinel:enabled: true#feign gzip压缩配置compression:request:enabled: true# 配置压缩的类型mime-types: text/xml,application/xml,application/json# 最小压缩值min-request-size: 2048response:enabled: trueclient:config:#服务名称cloud-production:# 连接超时时间connectTimeout: 90000# 请求处理超时时间readTimeout: 90000# default 全局配置,可以用服务名配置单个服务default:#日志级别,BASIC就是最基本的请求和响应信息loggerLevel: BASIC

springboot全局压缩配置

server:# gzip压缩配置compression:min-response-size: 512mime-types: application/json,application/xml,text/html,text/xml,text/plainexcluded-user-agents: gozilla,traviataenabled: true
4.日志配置

方式一

#日志收集
logging:#feign日志配置level:com.moshangshang.cloud.clean.feign.ProductionFeign: debug  #扫描的是你那个service的类全类名,也可扫包

方式二

feign:client:config:default:#日志级别,BASIC就是最基本的请求和响应信息loggerLevel: BASIC

方式三

@Configuration
public class FeignConfig {/*** feign日志配置*/@Beanpublic Logger.Level feignLogLevel(){return Logger.Level.BASIC; // 日志级别为BASIC}}

单个远程调用使用

@FeignClient(value = "cloud-production",configuration = FeignConfig.class)

全局使用

@EnableFeignClients(defaultConfiguration = FeignConfig.class)
5.远程调用测试

1.fegin调用接口

@FeignClient(value = "cloud-production",configuration = FeignConfig.class)
public interface ProductionFeign {@GetMapping("/cloud-production/test1")String test1();}

2.调用方法

@RestController
@RequestMapping("/cloud-clean")
public class CleanController {@Autowiredprivate ProductionFeign productionFeign;@GetMapping("/test1")public void test1(){String s = productionFeign.test1();System.out.println("远程调用接收到的数据"+s);}}

3.被调用服务方法

@RestController
@RequestMapping("/cloud-production")
public class ProductionController {@GetMapping("/test1")public String test1(){System.out.println("test1 被调用了");return "111";}}

4.测试结果

6.服务降级

1.编写降级工厂类

/*** 服务降级*/
@Slf4j
@Component
public class ProductionFallbackFactory implements FallbackFactory<ProductionFeign> {@Overridepublic ProductionFeign create(Throwable cause) {log.error("服务异常。。。。。。。。。。。。。。。。。。。" + cause);return new ProductionFeign() {@Overridepublic String test1() {return "Fallback回滚";}};}
}

2.使用

@FeignClient(value = "cloud-production",fallbackFactory = ProductionFallbackFactory.class)
7.重试配置,服务端异常捕获
@Slf4j
@Configuration
public class FeignConfiguration {/*** 自定义重试机制*/@Beanpublic Retryer feignRetryer() {//最大请求次数为5,初始间隔时间为100ms,下次间隔时间1.5倍递增,重试间最大间隔时间为1s,return new Retryer.Default();}/*** 客户端捕获服务端异常*/@Beanpublic ErrorDecoder feignError() {return (key, response) -> {if (response.status() == 400) {log.error("请求xxx服务400参数错误,返回:{}", response.body());}if (response.status() == 409) {log.error("请求xxx服务409异常,返回:{}", response.body());}if (response.status() == 404) {log.error("请求xxx服务404异常,返回:{}", response.body());}// 其他异常交给Default去解码处理// 这里使用单例即可,Default不用每次都去newreturn new ErrorDecoder.Default().decode(key, response);};}}
@FeignClient(value = "cloud-production",fallbackFactory = ProductionFallbackFactory.class,configuration = MyConfiguration.class)

8.连接池配置
<!--使用连接池--><dependency><groupId>io.github.openfeign</groupId><artifactId>feign-httpclient</artifactId></dependency>
feign:httpclient:# 支持httpClient的开关enabled: true#最大连接数max-connections: 200# 单个路径的最大连接数max-connections-per-route: 50

2.Loadbalancer负载均衡测试

1.复制客户端

2.修改端口启动

3.测试

默认轮询方式调用

4.修改负载均衡算法

1.创建核心配置类

@Configuration
public class RestTemplateConfig {@Bean@LoadBalancedpublic RestTemplate restTemplate() {return new RestTemplate();}@BeanReactorLoadBalancer<ServiceInstance> randomLoadBalancer(Environment environment,LoadBalancerClientFactory loadBalancerClientFactory) {// 获取负载均衡器的名称String name = environment.getProperty(LoadBalancerClientFactory.PROPERTY_NAME);// 创建并返回一个随机负载均衡器实例return new RandomLoadBalancer(loadBalancerClientFactory.getLazyProvider(name, ServiceInstanceListSupplier.class), name);}}

2.使用

@LoadBalancerClient(value = "cloud-production", configuration = RestTemplateConfig.class)

自带三个算法,轮询,随机和nacos

http://www.dtcms.com/wzjs/116936.html

相关文章:

  • 做网站卖水果哪里进货淘宝如何提升关键词排名
  • 做性奴双马网站8个公开大数据网站
  • 到国外建网站seo方案
  • 做网站花多少钱网上销售方法
  • 网页制作与网站建设 自考搜索引擎入口yandex
  • 个人建设图片分享网站网络广告电话
  • 网站建设多少钱一年怎么做好网络营销
  • 弄一个关于作文的网站怎么做做网销的一天都在干嘛
  • 企业网站优化排名方案常用的关键词挖掘工具有哪些
  • 西安高校定制网站建设公司推荐营销技巧培训ppt
  • 做网站建设费用预算站长工具的网址
  • 通州做网站公司百度资讯指数
  • 创业做网站需要哪些今天晚上19点新闻联播直播回放
  • 制作七星网站企业宣传片制作
  • 展览搭建设计网站seo属于什么职业部门
  • 云南网站建设营销专业制作网站的公司哪家好
  • 用ps怎么做短视频网站今日头条极速版官网
  • 网站建设销售技巧口碑营销是什么意思
  • 广州网站设计建站关键词提取工具
  • 织梦中二次开发新的网站网站查询信息
  • 常州做的网站的公司黑龙江新闻
  • 如何快速找到做网站的客户教育培训机构营销方案
  • 恩施网站设计北京网优化seo优化公司
  • 网站留言短信通知介绍网络营销的短文
  • 棋牌app开发公司长沙seo全网营销
  • 南通做网站的公司四川餐饮培训学校排名
  • 企业vi设计与网站开发网络营销有本科吗
  • 绿植行业做网站的东莞市网络seo推广企业
  • 设备高端网站建设南宁seo优化公司排名
  • 沧州营销型网站建设怎么样推广自己的店铺和产品