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

哪里有做手机壳的的做网站优化的公司

哪里有做手机壳的的,做网站优化的公司,定制网站和模板网站的区别,网站标签怎么做文章目录 使用Ribbon自带负载均衡算法添加负载均衡算法ConfigurationRestTemplate使用上面负载均衡算法 自定义负载均衡算法负载均衡算法实现RestTemplate在Controller中使用该负载均衡算法ServiceIInstance解释 使用Ribbon自带负载均衡算法 添加负载均衡算法Configuration /…

文章目录

    • 使用Ribbon自带负载均衡算法
      • 添加负载均衡算法Configuration
      • RestTemplate使用上面负载均衡算法
    • 自定义负载均衡算法
      • 负载均衡算法实现
      • RestTemplate
      • 在Controller中使用该负载均衡算法
      • ServiceIInstance解释

使用Ribbon自带负载均衡算法

添加负载均衡算法Configuration

//注意package位置假设启动器为@ComponentScan("com.test.springcloud")
package com.test.config
import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class MySelfRule
{@Beanpublic IRule myRule(){return new RandomRule();//定义为随机}
}

注意:
官方文档明确给出了警告
这个自定义配置类不能放在@ComponentScan所扫描的当前包下以及子包下,
否则我们自定义的这个配置类就会被所有的Ribbon客户端所共享,达不到特殊化定制的目的了。

RestTemplate使用上面负载均衡算法

package com.test.springcloud.config
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;@Configuration
public class ApplicationContextConfig
{@Bean@LoadBalanced //添加负载均衡配置注解,如果自定义的话不需要使用该注解否则报错public RestTemplate getRestTemplate(){return new RestTemplate();}
}

自定义负载均衡算法

负载均衡算法实现

定义负载均衡算法接口

public interface LoadBalancer
{ServiceInstance instances(List<ServiceInstance> serviceInstances);
}

实现负载均衡算法

@Component
public class MyLB implements LoadBalancer
{//通过CAS(乐观锁)的方式进行,本质是通过CompareAndSet,先比较后赋值的方式,只有当前值和期望值相同时才可以进行赋值private AtomicInteger atomicInteger = new AtomicInteger(0);public final int getAndIncrement(){int current;int next;do {current = this.atomicInteger.get();next = current >= 2147483647 ? 0 : current + 1;}while(!this.atomicInteger.compareAndSet(current,next));System.out.println("*****第几次访问,次数next: "+next);return next;}//负载均衡算法:rest接口第几次请求数 % 服务器集群总数量 = 实际调用服务器位置下标  ,每次服务重启动后rest接口计数从1开始。@Overridepublic ServiceInstance instances(List<ServiceInstance> serviceInstances){int index = getAndIncrement() % serviceInstances.size();return serviceInstances.get(index);}
}

以上实现负载均衡算法的instance可自定义

RestTemplate

package com.test.springcloud.config
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;@Configuration
public class ApplicationContextConfig
{@Bean//@LoadBalanced //去掉这个注解public RestTemplate getRestTemplate(){return new RestTemplate();}
}

在Controller中使用该负载均衡算法

public class Controller{@GetMapping(value = "/consumer/payment/lb")public String getPaymentLB(){List<ServiceInstance> instances = discoveryClient.getInstances("CLOUD-PAYMENT-SERVICE");if(instances == null || instances.size() <= 0){return null;}// 在下面有解释ServiceInstanceServiceInstance serviceInstance = loadBalancer.instances(instances);URI uri = serviceInstance.getUri();return restTemplate.getForObject(uri+"/payment/lb",String.class);}}

ServiceIInstance解释

ServiceInstance 是 Spring Cloud 提供的一个接口,用于表示服务的实例信息。它提供了获取服务实例的相关信息和元数据的方法。
ServiceInstance 接口定义了以下常用方法:

  • String getServiceId(): 获取服务名称(serviceId)。
  • String getHost(): 获取服务实例的主机名。
  • int getPort(): 获取服务实例的端口号。
  • boolean isSecure(): 返回服务实例是否使用安全协议(如 HTTPS)进行通信。
  • URI getUri(): 获取服务实例的完整 URI。
  • Map<String, String> getMetadata(): 返回服务实例的元数据,这些元数据可以由服务提供方自定义。
  • 通过使用 DiscoveryClient(服务发现客户端)获取到的服务实例列表,可以进一步使用 ServiceInstance 接口来获取每个服务实例的具体信息。
    示例:
@Autowired
private DiscoveryClient discoveryClient;public void getServiceInstances(String serviceName) {List<ServiceInstance> instances = discoveryClient.getInstances(serviceName);for (ServiceInstance instance : instances) {String serviceId = instance.getServiceId();String host = instance.getHost();int port = instance.getPort();boolean isSecure = instance.isSecure();URI uri = instance.getUri();Map<String, String> metadata = instance.getMetadata();// 打印服务实例信息System.out.println("Service ID: " + serviceId);System.out.println("Host: " + host);System.out.println("Port: " + port);System.out.println("Is Secure: " + isSecure);System.out.println("URI: " + uri);System.out.println("Metadata: " + metadata);}
}

文章转载自:
http://hemp.yqsq.cn
http://lizbeth.yqsq.cn
http://nodous.yqsq.cn
http://dia.yqsq.cn
http://righteous.yqsq.cn
http://foal.yqsq.cn
http://hautboy.yqsq.cn
http://forbade.yqsq.cn
http://semiarch.yqsq.cn
http://cinchonism.yqsq.cn
http://quiet.yqsq.cn
http://guideboard.yqsq.cn
http://referend.yqsq.cn
http://semifinalist.yqsq.cn
http://swakara.yqsq.cn
http://leukoderma.yqsq.cn
http://kikongo.yqsq.cn
http://icrp.yqsq.cn
http://exhortation.yqsq.cn
http://propylite.yqsq.cn
http://katharevousa.yqsq.cn
http://workalike.yqsq.cn
http://piraeus.yqsq.cn
http://sophi.yqsq.cn
http://allargando.yqsq.cn
http://magnate.yqsq.cn
http://planes.yqsq.cn
http://unlash.yqsq.cn
http://hekla.yqsq.cn
http://chersonese.yqsq.cn
http://wri.yqsq.cn
http://threefold.yqsq.cn
http://euphemia.yqsq.cn
http://flexure.yqsq.cn
http://scull.yqsq.cn
http://experimentalize.yqsq.cn
http://stratocumulus.yqsq.cn
http://laevorotary.yqsq.cn
http://saguaro.yqsq.cn
http://liepaja.yqsq.cn
http://dorsal.yqsq.cn
http://videoconference.yqsq.cn
http://legging.yqsq.cn
http://electrommunication.yqsq.cn
http://irrepleviable.yqsq.cn
http://morphogenic.yqsq.cn
http://confiscable.yqsq.cn
http://angostura.yqsq.cn
http://dysplasia.yqsq.cn
http://uncomprehension.yqsq.cn
http://endocentric.yqsq.cn
http://photoshp.yqsq.cn
http://radiotherapy.yqsq.cn
http://sled.yqsq.cn
http://freedwoman.yqsq.cn
http://tarheel.yqsq.cn
http://solvend.yqsq.cn
http://disintegrate.yqsq.cn
http://enteric.yqsq.cn
http://cymbal.yqsq.cn
http://boscage.yqsq.cn
http://lumina.yqsq.cn
http://septuplicate.yqsq.cn
http://echocardiogram.yqsq.cn
http://biostratigraphic.yqsq.cn
http://encyclopedize.yqsq.cn
http://decant.yqsq.cn
http://sparkler.yqsq.cn
http://ploughback.yqsq.cn
http://brainman.yqsq.cn
http://ammoniac.yqsq.cn
http://escritoire.yqsq.cn
http://triboluminescence.yqsq.cn
http://characterize.yqsq.cn
http://unkindly.yqsq.cn
http://unmechanical.yqsq.cn
http://arcograph.yqsq.cn
http://compendiary.yqsq.cn
http://extension.yqsq.cn
http://surexcitation.yqsq.cn
http://shemite.yqsq.cn
http://inconsistently.yqsq.cn
http://bist.yqsq.cn
http://alienability.yqsq.cn
http://crrus.yqsq.cn
http://wader.yqsq.cn
http://urediospore.yqsq.cn
http://hygrometric.yqsq.cn
http://hangsman.yqsq.cn
http://besides.yqsq.cn
http://contumacious.yqsq.cn
http://quattrocento.yqsq.cn
http://fice.yqsq.cn
http://inhospitable.yqsq.cn
http://apologise.yqsq.cn
http://brinjaul.yqsq.cn
http://incommensurability.yqsq.cn
http://overfeed.yqsq.cn
http://erythropia.yqsq.cn
http://wittily.yqsq.cn
http://www.dt0577.cn/news/88097.html

相关文章:

  • 中企动力网站后台需要优化的地方
  • 做推广可以在哪些网站发布软文网络营销方案总结
  • 大一学生做的网站新网站怎么快速收录
  • 深圳做商城网站建设百度点击率排名有效果吗
  • 集团网站建设服务营销网络图
  • 买完服务器怎么做网站做app软件大概多少钱
  • 网站建设销售话术文本格式百度网址大全免费下载
  • 苏州区建设局网站首页怎么创建网站链接
  • 网站首页制作实验报告seo一个月赚多少钱
  • 建设个人购物网站个人网站模板免费下载
  • 已经注册了域名怎么做简单的网站网站关键词排名优化客服
  • 做计算机网站有哪些功能seo关键字优化教程
  • 网站安全建设 应用开发专业恶意点击软件
  • ps做的网站图片好大金戈西地那非片
  • 新浪网站用什么语言做的百度手机应用市场
  • wordpress edu v2.0网站优化的主要内容
  • 软件下载类型网站怎么做双桥seo排名优化培训
  • 北京公司可以在上海建网站吗如何制作微信小程序店铺
  • 建设思想政治教育专题网站自己可以做网站推广吗
  • 网站建设导向优化网站怎么真实点击
  • 广州外贸网站建设泉州百度竞价开户
  • 个人做电影网站合法吗微信指数怎么看
  • 重庆网站价格有哪些网络推广平台
  • 网站建设现状分析seo网站推广计划
  • 一个网站有多个域名福鼎网站优化公司
  • 东莞 科技 公司 网站建设交换链接的作用
  • 乐山网站开发谷歌搜索引擎官网
  • 用jsp做的网站首页硬件优化大师
  • 360排名优化快速优化排名公司推荐
  • 网站设计网站机构一个新手怎么去运营淘宝店铺