陕西网站备案注销,深圳华强北在哪,情侣打扑克视频免费版app,怎么把自己的网站放到百度搜索上image.pngRibbon 是一个独立的组件#xff0c;是用来进行远程接口调用的#xff0c;代码如下
通过 getForObject 方法可以掉到用 micro-order 服务的#xff0c;order/list 接口。然后在调用期间会存在负载均衡#xff0c;micro-order 服务对应有几个服务实例就会根据负载均…image.pngRibbon 是一个独立的组件是用来进行远程接口调用的代码如下通过 getForObject 方法可以掉到用 micro-order 服务的order/list 接口。然后在调用期间会存在负载均衡micro-order 服务对应有几个服务实例就会根据负载均衡算法选择某一个去调用。1. 测试代码1.1. 启动两个订单服务端口号分别为9011,9012image.png1.2. 改造获取订单接口返回当前服务实例的占用的端口号,用来判断当前服务是哪个实例RequestMapping(/order) RestController public class OrderController { Value(${server.port}) String port; GetMapping(/list) public String getOrderList(String username) { return 该服务端口号 port ,这是用户 username 所有的订单信息; } }1.3. 调用用户服务的获取订单接口,RequestMapping(/user) RestController public class UserController { Autowired private RestTemplate restTemplate; Bean LoadBalanced public RestTemplate restTemplate() { return new RestTemplate(); } GetMapping(/orderList) public String getOrderList(String username) { return restTemplate.getForObject(http:// micro-order /order/list?username username, String.class); } }会发现,对订单服务的调用会存在负载均衡,在两个订单服务之间 切来切去。image.png2. Ribbon 配置2.1. Application.properties 配置# 关闭 ribbon 访问注册中心 Eureka Server 发现服务但是服务依旧会注册。 #true 使用 eureka false 不使用。如果是false那么表示要调用的服务列表从下面这个参数中获取,不然就从eureka-server中获取,这样扩容服务提供方的话需要改配置文件与动态扩容的理念相悖不建议大家使用 ribbon.eureka.enabledtrue spring.cloud.loadbalancer.retry.enabledtrue ###指定调用的节点 ###ribbon.eureka.enabledfalse ##micro-order.ribbon.listOfServerslocalhost:8001 ##单位 ms ,请求连接超时时间 #micro-order.ribbon.ConnectTimeout1000 ##单位 ms ,请求处理的超时时间 #micro-order.ribbon.ReadTimeout2000 #micro-order.ribbon.OkToRetryOnAllOperationstrue ##切换实例的重试次数 #micro-order.ribbon.MaxAutoRetriesNextServer2 ##对当前实例的重试次数 当 Eureka 中可以找到服务但是服务连不上时将会重试 #micro-order.ribbon.MaxAutoRetries2 ##配置负载均衡 #micro.order.ribbon.NFLoadBalancerRuleClassNamecom.netflix.loadbalancer.RandomRule #micro-order.ribbon.NFLoadBalancerPingClassNamecom.netflix.loadbalancer.PingUrl2.2 代码配置2.2.1. 使用RibbonClients 加载针对某一个服务的ribbon配置这个配置类只针对 micro-order 服务微服务系统里面有很多服务这就可以区别化配置。/* * 这个是针对 micro-order服务的 ribbon配置 * */ Configuration RibbonClients(value { RibbonClient(name micro-order,configuration RibbonLoadBalanceMicroOrderConfig.class) }) // 也可以这样只加载一个针对某个服务的ribbon配置 //RibbonClient(name micro-order,configuration RibbonLoadBalanceMicroOrderConfig.class public class LoadBalanceConfig { }2.2.2. 配置 configuration配置类的时候一定要注意配置类不能陪ComponentScan 注解扫描到如果被扫描到了则该配置类就是所有服务共用的配置了。/* * 这个类最好不要出现在启动类的ComponentScan扫描范围 * 如果出现在ComponentScan扫描访问那么这个配置类就是每个服务共用的配置了 * */ Configuration public class RibbonLoadBalanceMicroOrderConfig { // RibbonClientName private String name micro-order; Bean ConditionalOnClass public IClientConfig defaultClientConfigImpl() { DefaultClientConfigImpl config new DefaultClientConfigImpl(); config.loadProperties(name); config.set(CommonClientConfigKey.MaxAutoRetries,2); config.set(CommonClientConfigKey.MaxAutoRetriesNextServer,2); config.set(CommonClientConfigKey.ConnectTimeout,2000); config.set(CommonClientConfigKey.ReadTimeout,4000); config.set(CommonClientConfigKey.OkToRetryOnAllOperations,true); return config; } /* * 判断服务是否存活 * 不建议使用 * */ // Bean // public IPing iPing() { // //这个实现类会去调用服务来判断服务是否存活 // return new PingUrl(); // } // 配置负载均衡默认是轮训 Bean public IRule ribbonRule() { //线性轮训 new RoundRobinRule(); //可以重试的轮训 new RetryRule(); //根据运行情况来计算权重 new WeightedResponseTimeRule(); //过滤掉故障实例选择请求数最小的实例 new BestAvailableRule(); return new RandomRule(); } }3.Ribbon 单独使用Ribbon 是一个独立组件可以脱离 springcloud 使用的.有这两个jar包就可以image.pngAI大模型学习福利作为一名热心肠的互联网老兵我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。一、全套AGI大模型学习路线AI大模型时代的学习之旅从基础到前沿掌握人工智能的核心技能因篇幅有限仅展示部分资料需要点击文章最下方名片即可前往获取二、640套AI大模型报告合集这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示。因篇幅有限仅展示部分资料需要点击文章最下方名片即可前往获三、AI大模型经典PDF籍随着人工智能技术的飞速发展AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型如GPT-3、BERT、XLNet等以其强大的语言理解和生成能力正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。因篇幅有限仅展示部分资料需要点击文章最下方名片即可前往获四、AI大模型商业化落地方案因篇幅有限仅展示部分资料需要点击文章最下方名片即可前往获作为普通人入局大模型时代需要持续学习和实践不断提高自己的技能和认知水平同时也需要有责任感和伦理意识为人工智能的健康发展贡献力量