使用LoadBalancerClient
Spring cloud b2b2c电子商务社交平台源码请加企鹅求求:一零三八七七四六二六。在Spring Cloud Commons中提供了大量的与服务治理相关的抽象接口,包括DiscoveryClient、这里我们即将介绍的LoadBalancerClient等。对于这些接口的定义我们在上一篇介绍服务注册与发现时已经说过,Spring Cloud做这一层抽象,很好的解耦了服务治理体系,使得我们可以轻易的替换不同的服务治理设施。电子商务社交平台源码请加企鹅求求:一零三八七七四六二六

从LoadBalancerClient接口的命名中,我们就知道这是一个负载均衡客户端的抽象定义,下面我们就看看如何使用Spring Cloud提供的负载均衡器客户端接口来实现服务的消费。

下面的例子,我们将利用上一篇中构建的eureka-server作为服务注册中心、eureka-client作为服务提供者作为基础。

我们先来创建一个服务消费者工程,命名为:eureka-consumer。并在pom.xml中引入依赖(这里省略了parent和dependencyManagement的配置):

<dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency>
</dependencies>复制代码

配置application.properties,指定eureka注册中心的地址:

spring.application.name=eureka-consumer
server.port=2101
eureka.client.serviceUrl.defaultZone=http://localhost:1001/eureka/
复制代码

创建应用主类。初始化RestTemplate,用来真正发起REST请求。@EnableDiscoveryClient注解用来将当前应用加入到服务治理体系中。

@EnableDiscoveryClient
@SpringBootApplication
public class Application {@Beanpublic RestTemplate restTemplate() {return new RestTemplate();}public static void main(String[] args) {new SpringApplicationBuilder(Application.class).web(true).run(args);}
}
复制代码

创建一个接口用来消费eureka-client提供的接口:

@RestController
public class DcController {@AutowiredLoadBalancerClient loadBalancerClient;@AutowiredRestTemplate restTemplate;@GetMapping("/consumer")public String dc() {ServiceInstance serviceInstance = loadBalancerClient.choose("eureka-client");String url = "http://" + serviceInstance.getHost() + ":" + serviceInstance.getPort() + "/dc";System.out.println(url);return restTemplate.getForObject(url, String.class);}
}
复制代码

可以看到这里,我们注入了LoadBalancerClient和RestTemplate,并在/consumer接口的实现中,先通过loadBalancerClient的choose函数来负载均衡的选出一个eureka-client的服务实例,这个服务实例的基本信息存储在ServiceInstance中,然后通过这些对象中的信息拼接出访问/dc接口的详细地址,最后再利用RestTemplate对象实现对服务提供者接口的调用。
在完成了上面你的代码编写之后,读者可以将eureka-server、eureka-client、eureka-consumer都启动起来,然后访问http://localhost:2101/consumer ,来跟踪观察eureka-consumer服务是如何消费eureka-client服务的/dc接口的。
Spring cloud b2b2c电子商务社交平台源码请加企鹅求求:一零三八七七四六二六

转载于:https://juejin.im/post/5cecf217e51d454f73356cd6

java版spring cloud+spring boot 社交电子商务平台:服务消费(基础)相关推荐

  1. (四)java版spring cloud+spring boot 社交电子商务平台-断路器(Hystrix)

    b2b2c电子商务社交平台源码请加企鹅求求:一零三八七七四六二六.在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC),在Spring Cloud可以用RestTempl ...

  2. (八)java版spring cloud+spring boot 社交电子商务平台-消息总线(Spring Cloud Bus)

    电子商务社交平台源码请加企鹅求求:一零三八七七四六二六.Spring Cloud Bus 将分布式的节点用轻量的消息代理连接起来.它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控.本文要 ...

  3. java版spring cloud+spring boot 社交电子商务平台(二)Eureka(服务注册和服务发现基础篇)

    一:Eureka简介 Eureka是Spring Cloud Netflix的一个子模块,也是核心模块之一.用于云端服务发现,一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移. ...

  4. (十四)java版spring cloud+spring boot 社交电子商务平台-使用spring cloud Bus刷新配置...

    电子商务平台源码请加企鹅求求:一零三八七七四六二六.我们使用spring cloud分布式微服务云架构做了b2b2c的电子商务系统,除了架构本身自带的系统服务外,我们将b2b2c的业务服务进行了细粒度 ...

  5. (十七)java版spring cloud+spring boot 社交电子商务平台-spring+springmvc+kafka分布式消息中间件集成方案...

    电子商务平台源码请加企鹅求求:一零三八七七四六二六.kafka消息平台使用spring+kafka的集成方案,详情如下: 使用最高版本2.1.0.RELEASE集成jar包:spring-integr ...

  6. (二)java版spring cloud+spring boot 社交电子商务平台 - 整合企业架构的技术点

    2019独角兽企业重金招聘Python工程师标准>>> 电子商务平台源码请加企鹅求求:一零三八七七四六二六.spring cloud本身提供的组件就很多,但我们需要按照企业的业务模式 ...

  7. (三)java版spring cloud+spring boot 社交电子商务平台 - Spring Cloud集成项目简介

    2019独角兽企业重金招聘Python工程师标准>>> 电子商务平台源码请加企鹅求求:一零三八七七四六二六.Spring Cloud集成项目有很多,下面我们列举一下和Spring C ...

  8. (二十)java版spring cloud+spring boot 社交电子商务平台-spring cloud构建全球多租户分布式微服务部署的方案...

    电子商务平台源码请加企鹅求求:一零三八七七四六二六.最近在用spring cloud分布式微服务云架构做一个全球多租户分布式部署的方案,我在这里只是简单的记录,当前的架构图只能是一个大概的方案,具体实 ...

  9. (二十六)java版spring cloud+spring boot 社交电子商务平台-Eureka介绍

    电子商务平台源码请加企鹅求求:一零三八七七四六二六.社交电商平台源码请加企鹅求求:一零三八七七四六二六. 什么是Eureka ? Eureka是一种用于服务注册和发现的组件,和zookeeper功能类 ...

最新文章

  1. Hey, 看看小程序的page-frame.html把~
  2. iOS 自动构建套件 - flow.ci + fir.im + Coding
  3. 用动态数组模拟双向循环链表
  4. 计算机网络的体系结构与协议基本概念,计算机网络技术基础-第3章网络体系结构与协议.ppt...
  5. [原]ImportError: No module named thrift.Thrift问题解决
  6. pythonamp;nbsp;reamp;nbsp;group()
  7. element UI表格使用cell-style改变单元格样式
  8. 国产企业级服务器操作系统排名,国产操作系统那个最好排名
  9. python3.5中文手册chm_python3官方帮助文档-python3.5.2官方chm参考手册-东坡下载
  10. chinapub matlab,MATLAB 5手册
  11. 【综合实训】图书管理系统——概要设计说明书
  12. 斯托克斯定理(Stokes' theorem)
  13. 关于Quartus+Modelsim 门级仿真 Warning (vopt-2216) Cannot find instance 'NA' specified in sdf.的解决办法...
  14. android 多张图片渐变切换控件
  15. postgres汉字转换为拼音
  16. S5PV210中断的介绍与配置
  17. Python爬虫 | 以滑雪为例演示大众点评商铺信息采集!
  18. OAuth 2.0 教程
  19. 经典Robocode例子代码- -SnippetBot
  20. 换钱问题(经典枚举样例)

热门文章

  1. python 函数进度条怎么_刷新你对进度条的认识,用python写出不一样的进度条
  2. linux搭建mcpe服务器_Ubuntu Linux下搭建Minecraft我的世界服务器
  3. 小米android停止,小米由于错误而停止将Android 10推广到MiA3
  4. 17 软件源_9成职场人支持“准点下班”,2020年度职场报告:工作是最大焦虑源
  5. 数据库复习资料及课后习题答案
  6. linux启动过程中内核拷贝,轻松识破linux内核启动过程中的“”套路“”
  7. java gc机制新区域旧屋_Java 内存回收机制——GC机制-Go语言中文社区
  8. a*算法matlab代码_NSGAII多目标优化算法讲解(附MATLAB代码)
  9. Java快速提升_java快速复习 一 基础语法
  10. secp256r1 c语言程序,rust代码阅读 之 libsecp256k1 (1)