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

门户网站开发哪家好网站黄页推广软件

门户网站开发哪家好,网站黄页推广软件,linux服务器WordPress建站教程,某旅行社网站建设论文服务调用Ribbon、Fegin Ribbon实现负载均衡的原理 1:LoadBalancerAutoConfiguration这个类,这个类主要做的就是把LoadBalancer拦截器封装到RestTemplte拦截器集合里面去。 2:然后在代码里面调用restTemplate.getForObject或者其他方法的时候&…

服务调用Ribbon、Fegin
Ribbon实现负载均衡的原理
1:LoadBalancerAutoConfiguration这个类,这个类主要做的就是把LoadBalancer拦截器封装到RestTemplte拦截器集合里面去。
2:然后在代码里面调用restTemplate.getForObject或者其他方法的时候,就会调用到这个拦截器。
3:在LoadBalancer拦截器类中,就会调用intercept方法,这个方法就会通过execute方法获取负载均衡器以及通过负载均衡算法和得到的servicename去获取一台具体的服务。然后通过http调用。
4:而且ribbon会定时的去更新Nocas中的服务注册中心将其保存在本地,而且在负载均衡真正调用之前的时候也会去更新。
Fegin
1:从@EnableFeginClients注解看,这个注解里面有一个Import注解@Import(FeginClientRegistrat.class);这个类的方法registerFeginClients方法就能扫描主启动类包同机以及下级包中所有符合@FeginClient的类注入到容器当中。
2:然后loadBalance通过jdk动态代理最总生成LoadBalanceFeginClient,这个类中的execute方法中最终去调用我们的ribbon实现负载均衡。

@SpringBootApplication
@EnableFeignClients/此注解/
public class  OrderFeignMain80 {public static void main(String[] args) {SpringApplication.run(OrderFeignMain80.class,args);}
}
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//package org.springframework.cloud.openfeign;import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.context.annotation.Import;@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
@Documented
@Import({FeignClientsRegistrar.class})//此注解
public @interface EnableFeignClients {String[] value() default {};String[] basePackages() default {};Class<?>[] basePackageClasses() default {};Class<?>[] defaultConfiguration() default {};Class<?>[] clients() default {};
}

FeignClientsRegistrar类

public void registerFeignClients(AnnotationMetadata metadata, BeanDefinitionRegistry registry) {ClassPathScanningCandidateComponentProvider scanner = this.getScanner();scanner.setResourceLoader(this.resourceLoader);Map<String, Object> attrs = metadata.getAnnotationAttributes(EnableFeignClients.class.getName());AnnotationTypeFilter annotationTypeFilter = new AnnotationTypeFilter(FeignClient.class);//此方法Class<?>[] clients = attrs == null ? null : (Class[])((Class[])attrs.get("clients"));Object basePackages;if (clients != null && clients.length != 0) {final Set<String> clientClasses = new HashSet();basePackages = new HashSet();Class[] var9 = clients;int var10 = clients.length;for(int var11 = 0; var11 < var10; ++var11) {Class<?> clazz = var9[var11];((Set)basePackages).add(ClassUtils.getPackageName(clazz));clientClasses.add(clazz.getCanonicalName());}AbstractClassTestingTypeFilter filter = new AbstractClassTestingTypeFilter() {protected boolean match(ClassMetadata metadata) {String cleaned = metadata.getClassName().replaceAll("\\$", ".");return clientClasses.contains(cleaned);}};scanner.addIncludeFilter(new FeignClientsRegistrar.AllTypeFilter(Arrays.asList(filter, annotationTypeFilter)));} else {scanner.addIncludeFilter(annotationTypeFilter);basePackages = this.getBasePackages(metadata);}Iterator var17 = ((Set)basePackages).iterator();while(var17.hasNext()) {String basePackage = (String)var17.next();Set<BeanDefinition> candidateComponents = scanner.findCandidateComponents(basePackage);Iterator var21 = candidateComponents.iterator();while(var21.hasNext()) {BeanDefinition candidateComponent = (BeanDefinition)var21.next();if (candidateComponent instanceof AnnotatedBeanDefinition) {AnnotatedBeanDefinition beanDefinition = (AnnotatedBeanDefinition)candidateComponent;AnnotationMetadata annotationMetadata = beanDefinition.getMetadata();Assert.isTrue(annotationMetadata.isInterface(), "@FeignClient can only be specified on an interface");Map<String, Object> attributes = annotationMetadata.getAnnotationAttributes(FeignClient.class.getCanonicalName());String name = this.getClientName(attributes);this.registerClientConfiguration(registry, name, attributes.get("configuration"));this.registerFeignClient(registry, annotationMetadata, attributes);}}}}
http://www.mmbaike.com/news/48819.html

相关文章:

  • thinkphp企业网站模板下载logo网站设计
  • 做钢材的都用什么网站bing搜索引擎入口官网
  • 网站建设有那几个类型广告优化师
  • 专业做商铺的网站seo优化搜索推广
  • 在微信怎样搞做微视频网站网络营销顾问招聘
  • 做盗版网站的网页关键词排名优化
  • 用html5做的网站代码免费网站推广网站破解版
  • 鞍山钟点工招聘信息东莞网络优化公司
  • 湖北建设厅造价网站线上推广渠道
  • 网站开发哪家公司好seo舆情优化
  • 乔括云智能建站如何搭建网站平台
  • 工程建设教育网站网站流量统计分析的维度包括
  • 微信网站开发价格网上培训课程平台
  • wordpress怎么设置邮箱厦门seo网站优化
  • 装饰公司网站源码上海seo外包
  • 建站套餐网站营销
  • 十堰微网站建设电话百度推广运营专员
  • 网站建设维保合同范本短视频关键词seo优化
  • 免费注册域名网站知乎合肥网络推广优化公司
  • 用vs2013做网站登录优秀营销软文范例800字
  • 设计网页代码源代码西安seo服务外包
  • 做网站有什么关于财务的问题天津做网站的公司
  • 论坛门户网站开发世界杯排名
  • 静安做网站的公司软文标题和内容
  • 企业网站包含哪些页面今天发生了什么重大新闻
  • wordpress 中文编辑器宁波seo网站排名
  • seo网站优化价格seo咨询推广
  • 品牌网站建设毛尖2成都网络营销
  • 做产品的往这看:国外工业设计网站大全!百度产品推广
  • 建网站需要什么技术百度竞价推广常用到的工具