三.服务发现与消费(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) 超文本传输协议;详细规定了浏览器...
    石头老张阅读 1,686评论 0 49
  • 今天一朋友说起自己买的股票,好不容易涨了,准备再等等卖个好价钱,谁知连着好几天都跌了。因为需要用这笔钱,朋...
    札桠阅读 38评论 2 0
  • 墨子,战国时思想家、教育家、军事家。学习儒家经典,对天命、丧葬、礼仪有不同认识,自创兼爱、非攻等体系,独为一家,成...
    李炜微言阅读 116评论 0 2
  • 洪水泛滥之时耶和华坐著为王(诗29:10)西北风从地中海上吹起,挟著乌云南下,卷过利巴嫩的丛林,从西连 (黑门)山...
    石牧阅读 298评论 0 1