博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java B2B2C Springboot多租户电子商城系统-spring-cloud-eureka-consumer
阅读量:6714 次
发布时间:2019-06-25

本文共 2354 字,大约阅读时间需要 7 分钟。

介绍

电子商务平台源码请加企鹅求求:一零三八七七四六二六。spring-cloud-eureka,更加具体的内容,这里将会介绍远程服务调用和及其负载均衡。

我们将我们的服务注册在我们的服务中心里,那么如何去调用这些服务呢?我们可以用使用远程服务调用来解决,顺带还有方便的负载均衡功能。

如何使用

创建服务中心

注册几个被调用服务

注册一个consumer

测试consumer与负载均衡

  1. 创建服务中心

上一篇文章,我们已经学会了使用单机或者集群的方式来创建服务中心,这里我们使用简单的单机方式来创建!

在 spring-cloud-eureka-server 里启动采用这个profile文件:

server:  port: 8761spring:  application:    name: eureka-servereureka:  instance:    lease-expiration-duration-in-seconds: 6    lease-renewal-interval-in-seconds: 2  client:    service-url:      defaultZone: http://localhost:8761/eureka/复制代码

这个是单机版的。并将自己注册到了服务里。

  1. 注册几个被调用服务

我们启动了这三个profile文件。

配置文件中,server.port 分别是 8083,8084,8085,其他参数完全一致!同时,我们在controller中设置了这样一个rest服务。

@Value("${server.port}")    String port;    @RequestMapping("/hi")    public String hi() {        return port+" 端口为您服务!";    }复制代码

这样方便知道我们具体调用了哪个服务。

  1. 注册一个consumer

需要额外的依赖,使用了feign来进行远程调用。

pom.xml :

org.springframework.cloud
spring-cloud-starter-feign
复制代码

创建一个接口:

@Component@FeignClient(name = "eureka-client-1")public interface HelloRemoteInterface {    @RequestMapping(value = "/hi")    public String hi();}复制代码

这里的name就是你的那个服务的application.name。根据名字来调用,才能实现负载均衡嘛。

使用接口,创建一个测试的controller:

@RestControllerpublic class ConsumerController {    @Autowired    HelloRemoteInterface helloRemoteInterface;    @RequestMapping("/hello")    public String hello() {        return helloRemoteInterface.hi();    }}复制代码

同时,将我们的这个服务也注册到服务中心。

配置文件:

server:  port: 8086spring:  application:    name: eureka-consumereureka:  client:    service-url:      defaultZone: http://localhost:8761/eureka/复制代码

启动方法:

@SpringBootApplication@EnableEurekaClient@EnableFeignClientspublic class SpringCloudEurekaConsumerApplication {    public static void main(String[] args) {        SpringApplication.run(SpringCloudEurekaConsumerApplication.class, args);    }}复制代码

到这里,我们已经启动了好多个服务,如上图所示,在IDEA中,采用不同的profile来启动的方式,有一个单机的server,三个普通的服务(端口号不一样),还有我们的消费服务,下一节,你可以从截图中看的更明白。

  1. 测试consumer与负载均衡

到上一步为止,我们已经可以看到在Eureka的dashboard中已经有了好多个服务,如下图,主要包括:

一个服务注册server

一个消费者,用来进行远程调用

三个普通的client(其端口不一样,来模拟分布式)

这时候,我们调用我们的consumer服务,浏览器里输入

得到的结果是不一样的,一共有三个:

8083 端口为您服务!

8084 端口为您服务!

8085 端口为您服务!

正好就是我们想要的结果。

不断的进行测试下去会发现3种结果交替出现,说明服务中心自动提供了服务均衡负载的功能。如果我们将服务提供者的数量在提高为N个,测试结果一样,请求会自动轮询到每个服务端来处理。

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

你可能感兴趣的文章
超级菜鸟的Python之路--前传一
查看>>
设置input框文字垂直居中和宽度
查看>>
WinForm笔记
查看>>
js 获取时间不能大于当前系统时间
查看>>
vue公共
查看>>
LeetCode 191. Number of 1 Bits Question
查看>>
关于前端的大致简介!
查看>>
面向对象设计模式总结
查看>>
JAVA 实用插件
查看>>
Matlab与C++混合编程(依赖OpenCV)
查看>>
BZOJ 4822 [Cqoi2017]老C的任务 ——树状数组
查看>>
Centos上虚拟机搭建
查看>>
cocos2d-html5 onEnter init ctor构造函数 ----js特有特性(和c++有一点不一样)
查看>>
spring发送邮件
查看>>
typescript实现类规则
查看>>
vue中echarts随窗体变化
查看>>
使用python 3.x 对pythonchallenge-----0的解答过程
查看>>
HBase ZooKeeper安装
查看>>
mvc4,jquery Bundle
查看>>
得到IP
查看>>