<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.buba</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Greenwich.RELEASE</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--eureka默认已经整合了ribbon负载均衡器和httpclient了-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
</repository>
</repositories>
</project>
###服务启动端口号
server.port=8001
###服务名称(服务注册到eureka名称)
spring.application.name=app-buba-order
###服务注册到eureka地址
eureka.client.service-url.defaultZone=http://localhost:8100/eureka
###当前服务注册到eureka上
eureka.client.register-with-eureka=true
###需要检索服务
eureka.client.fetch-registry=true
写Controller调用会员服务
package com.buba.api.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
@RestController
public class OrderController {
//这个是由springboot的web组件提供的
//rest底层是使用的httpclient实现的
@Autowired
private RestTemplate restTemplate;
/*
在springcloud中有两种方法调用rest(httpclient),fegin(springcloud提供)
*/
@RequestMapping("getOrder")
public String getOrder(){
//一种直接写访问路径,另一种是写服务名称
//使用名称形式的话需要在RestTemplate上加@LoadBalanced开启ribbon负载均衡器
String forObject = restTemplate.getForObject("http://app-buba-member/getMember", String.class);
//String forObject = restTemplate.getForObject("http://192.168.244.1:8000/getMember", String.class); 一般不直接写地址
return forObject;
}
}
在启动类中注入RestTemplate对象,然后启动项目


然后看一下发布服务集群的效果,即负载均衡
在会员服务发布完后,不要关闭,修改端口号,再启动一次,先把idea默认单例关闭


把代码稍加修改便于区分



然后就会发现如果一直访问的话,会来回切换

