三.服务发现与消费(Ribbon实现负载均衡)

服务注册中心与服务提供者完成之后,服务发现的任务由Eureka的客户端完成,而服务消费的任务由Ribbon完成。Spring Cloud Ribbon 是一个基于Http和TCP的客服端负载均衡工具,它是基于Netflix Ribbon实现的

  • 首先启动服务注册中心以及hello-service,为了使用Ribbon的负载均衡功能,通过命令行的方式来启动两个不同端口的hello-service
java -jar hello-service-0.0.1-SNAPSHOT.jar --server.port=8081 
java -jar hello-service-0.0.1-SNAPSHOT.jar --server.port=8082 
  • 成功启动两个hello-service后,Eureka信息面板中可以看到名为HELLO-SERVICE的服务中出现了两个实例单元
    image.png
  • 创建Spring Boot基础工程来实现服务消费(ribbon-consumer),并在pom.xml中引入必要的依赖内容
<dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-ribbon</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-test</artifactId>
            <scope>test</scope>
        </dependency>
 </dependencies>

在application.properties中配置

eureka.client.serviceUrl.defaultZone= http://localhost:8761/eureka/
spring.application.name=ribbon-consumer
server.port=8090

启动 ribbon-consumer 应用后,在 Eureka 信息面板中看到多了RIBBON-CONSUMER服务

image.png

通过访问http://localhost:8090/hi?name=li,可以看到输出

hi we,serverPort:8081

再尝试多访问http://localhost:8090/hi?name=li几次,就可以看到

hi we,serverPort:8082
hi we,serverPort:8081  

这两个轮流替换,说明负载均衡起作用了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概念及常识 HTTP (Hypertext transfer protocol) 超文本传输协议;详细规定了浏览器...
    石头老张阅读 4,340评论 0 49
  • 今天一朋友说起自己买的股票,好不容易涨了,准备再等等卖个好价钱,谁知连着好几天都跌了。因为需要用这笔钱,朋...
    札桠阅读 234评论 2 0
  • 墨子,战国时思想家、教育家、军事家。学习儒家经典,对天命、丧葬、礼仪有不同认识,自创兼爱、非攻等体系,独为一家,成...
    李炜微言阅读 639评论 0 2