服务网关:
1.网管主要功能作为请求统一入口:
1)创建maven模块,引入依赖
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<version>2.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
<version>2.0.2.RELEASE</version>
</dependency>
</dependencies>
2)编写配置文件
3)编写启动类
/**
* @program: springcloud_parent
* @description:
* @author: 三层饼干儿
* @create: 2019-08-28 00:42
**/
@EnableZuulProxy
@EnableAutoConfiguration
public class ZuulApplication {
public static void main(String[] args) {
SpringApplication.run(ZuulApplication.class,args);
}
}
将注册中心,provider及Zuul启动后访问,发现可以通过Zuuld 配置直接访问服务:
2.Zuul自带负载均衡功能
代码中增加一个启动类,作为另一个服务
@SpringBootApplication
public class ProviderApplication_02 {
public static void main(String[] args) {
SpringApplication.run(ProviderApplication.class,args);
}
}
controller增加一个方法,获取每个服务端口,就可以根据服务端口证明有没有进行负载均衡。
@Value("${server.port}")
private String port;
@GetMapping("/getPort")
public String getPort(){
return "当前服务端口:"+port;
}
首先启动注册中心,然后启动一个provider启动类(端口是8010的),然后修改配置文件端口号8010为8011,启动另一个启动类。最后启动Zuul网管启动类。
访问服务并不停刷新浏览器,发现8010,8011依次出现。Zuul确实给我们做的负载均衡,而且是轮询方式。