利用zuul网关统一向外暴露接口

1.新建项目 spring-zuul

2.引入pom

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>

3.配置

spring:
  application:
    name: spring-zuul
  http:
    encoding:
      charset: UTF-8 #设置请求返回UTF-8编码
      force: true
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/
  instance:
    prefer-ip-address: true
server:
  port: 8082

4.启动类注解

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;

@SpringBootApplication
@EnableEurekaClient
@EnableZuulProxy
public class SpringZuulApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringZuulApplication.class, args);
    }

}

通过zuul中转访问各个业务微服务的url格式: {basePath}/{spring.application.name}/url

{basePath} : 网关zuul项目启动后的路径
{spring.application.name} 各个具体子系统的微服务名称,即配置文件中配置的spring.application.name
url : 各个应用自定的的http接口。

测试:

完整代码访问: https://github.com/halouprogramer/spring-cloud-demo

12-14 04:42