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

如何从eureka-server上进行服务发现,负载均衡远程调用服务

  1. 在spring cloud的maven的pom文件中添加eureka-client的依赖坐标
    1.         <!--eureka-client依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency>
  2. 添加运行服务的名称以及eureka-server的地址
    1. eureka:client:service-url:defaultZone: http://127.0.0.1:9000/eureka
      spring:application:#应用的名称,可选name: order-service
  3. 需要在RestTemplate这个Bean添加一个@LoadBalanced注解,实现负载均衡策略
    1. package com.app.order.config;import lombok.extern.slf4j.Slf4j;
      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;/*** webmvc的相关配置** @author Administrator*/
      @Configuration
      @Slf4j
      public class WebMvcConfig {/*** 注入RestTemplate的Bean** @return 返回RestTemplate*/@LoadBalanced@Beanpublic RestTemplate restTemplate() {return new RestTemplate();}}
      
  4. 在调用远程服务的方法处自动注入RestTemplate,用远程调用的对象服务名代替服务IP地址以及端口号,比如当前示例中需要远程调用user-service的API接口,可这样调用
    1.             // 远程查找用户服务获取用户名信息// url地址// String url = "http://127.0.0.1:8080/users/" + order.getUserId();String url = "http://user-service/users/" + order.getUserId();// 发起远程调用ResultBean resultBean = restTemplate.getForObject(url, ResultBean.class);
  5. 当前示例中user-service的服务实例有两台,注册到eureka-server服务中,启动服务进行远程调用后,服务可以正常运行,在不改变负载均衡算法的前提下,默认的负载均衡算法是轮询
http://www.lryc.cn/news/258837.html

相关文章:

  • Flutter实现Android拖动到垃圾桶删除效果-Draggable和DragTarget的详细讲解
  • Nacos和Eureka冲突问题原因分析
  • 『C++成长记』拷贝构造函数
  • B 站基于 StarRocks 构建大数据元仓
  • 最常用的4种光纤接口结构
  • Axure网页端高交互组件库, 下拉菜单文件上传穿梭框日期城市选择器
  • 基于Java新人入职管理系统
  • Python实战 | 如何抓取腾讯视频
  • 总结MySQL 的一些知识点:MySQL 导出数据
  • C语言-字符串操作函数-附加使用方式
  • 06-React组件 Redux React-Redux
  • Windows安装卸载MySQL
  • element-ui 重置resetFields()不生效
  • JVM学习笔记-如何在IDEA打印JVM的GC日志信息
  • 16ASM 汇编基础与Debug使用
  • 基于Java车辆管理系统(如高校、办公园区)
  • Dubbo v Spring Cloud:两大技术栈如何选型?
  • ubuntu上搭建bazel编译环境,构建Android APP
  • (第38天)RAC 修改 IP 信息
  • 利用法线贴图渲染逼真的3D老虎模型
  • 『 MySQL数据库 』聚合统计
  • Redis - 事务隔离机制
  • android项目实战之编辑器图片上传预览
  • 微信小程序:上传图片到别的域名文件下
  • Linux----内核及发行版
  • 设备制造行业CRM:提升客户满意度,驱动业务增长
  • JavaScript实现复制功能函数
  • JVM垃圾收集器
  • LeetCode(58)随机链表的复制【链表】【中等】
  • JVM源码剖析之registerNatives方法