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

开发移动网站常州网站设计

开发移动网站,常州网站设计,南阳网站公司,wordpress wp-pollsLoadBalancer Spring Cloud LoadBalancer是Spring Cloud中负责客户端负载均衡的模块#xff0c;其主要原理是从nacos中获取服务列表通过选择合适的服务实例来实现负载均衡。 源码跟踪 可以看到这里的intercept()方法#xff0c;拦截了用户的HttpRequest请求#xff0c;然…LoadBalancer  Spring Cloud LoadBalancer是Spring Cloud中负责客户端负载均衡的模块其主要原理是从nacos中获取服务列表通过选择合适的服务实例来实现负载均衡。 源码跟踪 可以看到这里的intercept()方法拦截了用户的HttpRequest请求然后做了几件事 1、request.getURI()获取请求uri本例中就是 http://spzx-cloud-user/api/user/findUserByUserId/1 2、originalUri.getHost()获取uri中的服务idspzx-cloud-user 3、this.loadBalancer.execute()处理服务id和用户请求。 这里的this.loadBalancer是BlockingLoadBalancerClient类型我们继续跟入。 choose(String serviceId)方法做了两件事 1、获取一个loadBalancer负载均衡器对象,默认类型为RoundRobinLoadBalancer轮询 2、根据服务的id从Nacos注册中心中获取服务地址列表从服务列表中选择一个服务实例对象loadBalancerResponse包括实例的ip和port 更改负载均衡算法 LoadBalancer默认的负载均衡算法是RoundRobinLoadBalancer如果想更改默认的负载均衡算法那么此时需要向Spring容器中注册一个Bean并且配置负载均衡的使用者。 代码如下所示 1、在Spring容器中注册一个Bean订单服务创建配置类 public class CustomLoadBalancerConfiguration {//创建一个bean类型为RandomLoadBalancer随机BeanReactorLoadBalancerServiceInstance randomLoadBalancer(Environment environment, LoadBalancerClientFactory loadBalancerClientFactory) {String name environment.getProperty(LoadBalancerClientFactory.PROPERTY_NAME);return new RandomLoadBalancer(loadBalancerClientFactory.getLazyProvider(name, ServiceInstanceListSupplier.class), name);} } 2、配置负载均衡算法的使用者 Configuration LoadBalancerClients(value {LoadBalancerClient(name spzx-cloud-user , configuration CustomLoadBalancerConfiguration.class) // 将负载均衡算法应用到指定的服务提供方中 }) public class RestTemplateConfiguration {BeanLoadBalanced // 让RestTemplate具有负载均衡的能力public RestTemplate restTemplate() {return new RestTemplate() ;}} 重启服务  重启服务后可以看出 负载均衡算法已经被修改。 OpenFeign OpenFeign 是一个Web声明式的Http客户端远程远程调用工具底层是封装HttpClient技术提供接口和注解形式调用。  亦在解决 restTemplate 进行远程调用的弊端。 由于通过restTemplate 进行服务调用时参数传递不够灵活所以我们这里采用了 openFeign来替代 redisTemplate OpenFeign的配置 1. 在我们自己的微服务中引入openFeign的依赖 !-- 加入OpenFeign的依赖 -- dependency     groupIdorg.springframework.cloud/groupId     artifactIdspring-cloud-starter-openfeign/artifactId /dependency 2、在启动类上添加 EnableFeignClients 注解开启OpenFeign的功能支持 3.编写OpenFeign的客户端 package com.atguigu.spzx.cloud.order.feign; FeignClient(value spzx-cloud-user)        // 声明当前接口是一个访问user-service的feign的客户端 public interface UserFeignClient {     GetMapping(/api/user/findUserByUserId/{userId})     public abstract User queryById(PathVariable(userId) Long userId) ;    // 根据userId查询用户信息的接口方法 } 这个客户端主要是基于SpringMVC的注解来声明远程调用的信息比如 ① 请求方式GET ② 请求路径/api/user/findUserByUserId/{userId} ③ 请求参数Long userId ④ 返回值类型User 这样Feign就可以帮助我们发送http请求无需自己使用RestTemplate来发送了。 4、修改微服务中的远程调用代码使用Feign客户端代替RestTemplate Service public class OrderServiceImpl implements OrderService {     Autowired     private OrderMapper orderMapper ;     Autowired     private UserFeignClient userFeignClient ;     Override     public Order findOrderByOrderId(Long orderId) {         Order order orderMapper.findOrderByOrderId(orderId);         // 远程调用         User user userFeignClient.queryById(order.getUserId());         order.setUser(user);         return order ;     } } OpenFeign自定义配置 日志配置 Feign提供了日志打印功能,我们在项目中可以通过配置来调整日志级别,从而了解Feign中http请求的细节 ,也就是说feign提供的日志功能可以对接口的调用情况进行监控和输出。 feign的日志的级别分为四种 ① NONE不记录任何日志信息这是默认值。 ② BASIC仅记录请求的方法URL以及响应状态码和执行时间 ③ HEADERS在BASIC的基础上额外记录了请求和响应的头信息 ④ FULL记录所有请求和响应的明细包括头信息、请求体、元数据。 1.明配置类 public class DefaultFeignConfiguration  {     Bean     public Logger.Level feignLogLevel(){         return Logger.Level.FULL; // 日志级别为FULL     } } 2、如果要全局生效将其放到微服务的启动类的EnableFeignClients这个注解中 EnableFeignClients(defaultConfiguration DefaultFeignConfiguration .class)  3、如果是局部生效则把它放到对应的FeignClient这个注解中 FeignClient 是自定义的配置类用于进行配置openFeign的远程调用的。 FeignClient(value spzx-cloud-user, configuration DefaultFeignConfiguration .class) 4、在配置文件中配置 debug级别打印   logging:   level:     com.atguigu.spzx.cloud.order.feign: debug
http://www.zqtcl.cn/news/993828/

相关文章:

  • 触摸网站手机wordpress建立模板下载
  • 做暧在线观看网站网站建设与管理工资
  • 横岗网站建设无锡网站seo外包
  • 房管局 网站做房查学做网站推广要多久时间
  • 电脑网站开发者模式田园综合体建设网站
  • 南宁广告公司网站建设自适应网站建设模板
  • 做北京电梯招标的网站衡阳县专业做淘宝网站
  • 建设网站的语言wordpress主题自定义添加后台设置
  • 制造动漫网站开发目的四川酒店网站建设
  • 中国城市建设研究院深圳分院网站广西圣泰建设工程有限公司网站
  • 网站建设的方法有哪些内容wordpress展示插件
  • 北京手机网站制作公司wordpress 简易教程
  • 手机网站建站公司有哪些搜索引擎收录
  • 仿同程网 连锁酒店 网站模板学校网站建设用哪个系统
  • 教做甜品的网站删除wordpress主题字体载入
  • 做酒店网站所用到的算法wordpress侧栏导航
  • 做漫画的网站有哪些信息门户网站怎么做
  • 九江集团网站建设公司信誉好的广州做网站
  • 福州网站建设服务平台今天发生的重大新闻
  • 招聘信息网搜索引擎优化代理
  • 免费的企业网站cms纯文字logo在线制作
  • 深圳电器公司官网网站建设 网站优化
  • 大连 网站建设昆明建设网站哪家好
  • 网站首页设计及运行效果网站建设与管理任务分工
  • 自己建设论坛网站家用电脑搭建服务器
  • 做网站上海公司企业网站内页
  • 手机网站seo山东网站建设网
  • 溧阳 招网站开发wordpress 占内存
  • 网站seo 工具做网站建设公司排名
  • 丹阳网站建设企业建设网站管理制度