利用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