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

浙江省建设网站徐叨法长春网站建设 信赖吉网传媒

浙江省建设网站徐叨法,长春网站建设 信赖吉网传媒,文创产品设计概念,公司如何登录网站做就业登记文章目录 一、Eureka1、服务提供者与消费者2、Eureka原理分析3、搭建Eureka4、服务注册5、模拟多服务实例启动6、服务的发现 二、Ribbon1、负载均衡的原理2、源码分析3、负载均衡策略4、饥饿加载 一、Eureka 1、服务提供者与消费者 服务提供者#xff1a;一次业务中#xf… 文章目录 一、Eureka1、服务提供者与消费者2、Eureka原理分析3、搭建Eureka4、服务注册5、模拟多服务实例启动6、服务的发现 二、Ribbon1、负载均衡的原理2、源码分析3、负载均衡策略4、饥饿加载 一、Eureka 1、服务提供者与消费者 服务提供者一次业务中被其它微服务调用的服务。提供接口给其它微服务 服务消费者一次业务中调用其它微服务的服务。调用其它微服务提供的接口 很明显这是一个相对的概念。 2、Eureka原理分析 上一篇中远程调用时url参数是写死在代码中的而不同的测试、生产、开发环境IP不同有集群时端口也不能固定。 很明显硬编码肯定行不通。Eureka就是来解决这个问题的。 每个服务启动的时候将自己的信息注册到eureka中某个服务需要调用其他服务时向eureka拉取对应的服务信息负载均衡到其中一台如图中的localhost:8081)进行远程调用服务实例向eureka心跳续约每30秒一次eureka监控到某个服务实例不再心跳时就从其注册信息中剔除这条信息。服务消费者拉取时当然也就拉取不到这个宕掉的服务实例新启动一个服务服务信息注册到了eureka中…以此类推 接下来开始搭建Eureka并进行服务注册和服务发现 3、搭建Eureka 在父工程下新建eureka模块选择Maven点击Finish 给该模块引入依赖 dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-server/artifactId /dependency !--版本在父工程中统一管理这里不用写--编写启动类添加EnableEurekaServer注解自动装配的开关 import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;EnableEurekaServer SpringBootApplication public class EurekaApplication {public static void main(String[] args) {SpringApplication.run(EurekaApplication.class, args);} } 添加application.yaml文件 server:port: 10086 # 服务端口 spring:application:name: eurekaserver # eureka的服务名称eureka自身也是个微服务也要注册自己的信息到eureka注册中心 eureka:client:service-url: # eureka的地址信息defaultZone: http://127.0.0.1:10086/eureka# eureka自身也是个微服务也要注册自己的信息到eureka注册中心 # 王思聪住万达酒店也得身份证登记一下虽然那就是他家的产业启动eureka模块 注册成功 4、服务注册 接下来将user和order服务注册到eureka中 在user模块的pom文件中引入eureka客户端依赖 !--eureka客户端依赖-- dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-client/artifactId /dependency在application.yaml文件中增加注册中心地址的配置 server:port: 8081 spring:application: name: userservice eyreka:client:service-url: # eureka的地址信息defaultZone: http://127.0.0.1:10086/eureka 重启user模块order模块操作步骤相同注册成功 5、模拟多服务实例启动 上面完成的注册都是单服务实例的接下来在IDEA中模拟启动多个服务实例 右键选择拷贝 -Dserver.port覆盖yaml文件中的端口从而换个新端口 启动这个新服务实例注册成功 6、服务的发现 接下来实现在order服务中完成服务信息的拉取然后通过负载均衡挑选一个user服务实现远程调用 服务拉取是基于服务名称获取服务列表然后在对服务列表做负载均衡 修改order代码将服务IP和端口改为服务名 String url http://userservice/user/ order.getUserId();在order启动类OrderApplication中的RestTemplate添加负载均衡注解 Bean LoadBalanced public RestTemplate restTemplate() {return new RestTemplate(); }分别调用order接口两次传参101和102看它远程调用了哪个user服务实例 可以看到两个服务实例均有对应的日志成功 二、Ribbon 1、负载均衡的原理 分析我在浏览器中直接访问http://userservice/user/访问失败这是因为userservice既不是可用域名也不是IP。那order调用到user服务的过程中经历了什么呢 order发起请求Ribbon拦截请求拿到服务名向eureka拉取信息eureka返回服务列表信息给RibbonRibbon将请求轮询到相应的服务地址上去 具体信息在源码中打断点来调试看看。 2、源码分析 LoadBalanced注解就标识了调用方当前这个restTemplate这个对象发起的请求要被Ribbon拦截 LoadBalancerInterceptor实现了ClientHttpRequestInterceptor接口 在LoadBalancerInterceptor接口重写的intercent方法上打断点调用order接口中途会对user服务发起远程调用断点进入到了这里 继续往下看到了Ribbon对象 继续往下成功从eureka拿到服务列表信息 继续往下调试看到了IRule这个接口决定了负载均衡的策略 以上调用接口http://localhost:8080/order/102后发生的事情如图 - 接口中途通过restTemple远程调用http://userservice/user/1 - 被负载均衡拦截器拦截 - 获取url中的服务id即userservice - 动态服务列表均衡器向eureka拉取userservice的信息 - eureka返回服务列表给DynamicServiceListLoadBalancer - 通过IRule挑选出某个服务返回给RibbonLoadBalancerClient - 请求被转发到了某个一具体的实例上3、负载均衡策略 Ribbon的负载均衡策略是由IRule接口来定义的它的每一个子接口就是一种策略。 具体的含义为 以上策略中Ribbon默认的是ZoneAvoidanceRule。想修改负载均衡策略有这两种方法 代码方式在order-service中的OrderApplication类中定义一个新的IRule Bean public IRule randomRule(){return new RandomRule(); //改为随机 }配置文件方式在order-service的application.yml文件中添加新的配置也可以修改规则 userservice: ribbon:NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #负载均衡规则此时多次调用order接口代码中途远程调用user) http://localhost:8080/order/102可以看到转发到user实例上的请求不再有明显规律。 4、饥饿加载 重启order服务然后两次访问order接口发现耗时相差巨大 Ribbon默认是采用懒加载即第一次访问时才会去创建LoadBalanceClient因此请求时间会很长。 饥饿加载则会在项目启动时创建降低第一次访问的耗时通过下配置开启饥饿加载 ribbon:eager-load: enabled: true #开启饥饿加载clients: userservice # 指定对userservice这个服务饥饿加载# clients为list可添加多个
http://www.hkea.cn/news/14530163/

相关文章:

  • 设计师工作室网站深圳龙华区防控措施
  • 怎么打开网站云梦县网站开发
  • 做跨境电商网站的意义哪个公司的网站做的好
  • 上海专业网站建设 公司网站建设有什么出路
  • 服务类网站模板wamp 安装wordpress
  • 网站开发的硬件设备百度广州分公司销售岗位怎么样
  • 网站收录后然后怎么做站长工具手机综合查询
  • 网站流程表广州安全教育平台登录入囗
  • 深圳找工作的网站wordpress+仿简书模板
  • 网站设计电脑培训学校手表欧米茄官网
  • 九江浔阳网站建设凉山建设网站
  • 西部数码网站管理助手3.0教程id如何打开wordpress
  • 阿里云 多域名解析 到不同的网站东莞市建设网站培训
  • 宜昌市做网站的公司lollipop Wordpress
  • 东莞h5网站建设wordpress要多少钱
  • 标志空间 网站广州天河区核酸检测点
  • 中国工程建设网站湘潭网站建设搭建
  • 十大免费行情软件下载网站用easyui 做的网站
  • 做站用什么网站程序广州优化网站排名
  • 阿里云上怎么做网页网站有没有免费手游代理
  • dw网站制作手机软件下载网站做百度推广的要求
  • 自己做发卡网站2023最近的新闻大事
  • 缘魁上海网站建设泉州快速建站模板
  • 网站首页适配规则深圳优秀网站建设公司
  • 贵阳企业免费建站有自己网站好处
  • 做设计素材网站有哪些深圳网络开发
  • wordpress建站成本网站设计毕业选题内容
  • 网站企业备案需要哪些天津集体建设用地出售 网站
  • 动漫制作专业大学排名广州排前三的seo公司
  • wordpress网站制作通过主机名访问网站