文章目录
- 1.企业网关架构流程图
- 2.API网关设计
- 3.网关的应用场景
- 4.Nginx实现网关
- 5. rpc通讯架构原理
- 6. zuul实现网关
1.企业网关架构流程图
zuul框架使用java语言编写,Nginx使用C语言写
nginx功能比zuul功能更加强大,Nginx实现反向代理功能比zuul要好
SpringCloud 注册中心,生产者消费者 断路器 zuul(网关) 分布式配置中心
Zuul框架是微服务里面的某个组件,网关
Nginx针对于服务器
2.API网关设计
API网关是微服务架构(Microservices Architecture)标准化服务的模式。API网关定位为应用系统服务接口的网关,区别于网络技术的网关,但是原理则是一样。API网关统一服务入口,可方便实现对平台众多服务接口进行管控,对访问服务的身份认证、防报文重放与防数据篡改、功能调用的业务鉴权、响应数据的脱敏、流量与并发控制,甚至基于API调用的计量或者计费等等。
3.网关的应用场景
1、黑白名单:实现通过IP地址控制禁止访问网关功能,此功能是应用层面控制实现,再往前也可以通过网络传输方面进行控制访问。
2、日志:实现访问日志的记录,可用于分析访问、处理性能指标,同时将分析结果支持其他模块功能应用。
3、协议适配:实现通信协议校验、适配转换的功能。
4、 身份认证:负责网关访问身份认证验证,此模块与“访问认证中心”通信,实际认证业务逻辑交移“访问认证中心”处理。
5、计流限流:实现微服务访问流量计算,基于流量计算分析进行限流,可以定义多种限流规则。
6、路由:路由是API网关很核心的模块功能,此模块实现根据请求,锁定目标微服务并将请求进行转发。此模块需要与“服务发布管理中心”通信。“服务发布管理中心”实现微服务发布注册管理功能,与其通信获得目标微服务信息。
4.Nginx实现网关
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location /api-a {
proxy_pass http://127.0.0.1:8000/;
index index.html index.htm;
}
location /api-b {
proxy_pass http://127.0.0.1:8001/;
index index.html index.htm;
}
}
}
5. rpc通讯架构原理
6. zuul实现网关
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8100/eureka/
server:
port: 8769
spring:
application:
name: service-zuul
zuul:
routes:
api-a:
path: /api-a/**
serviceId: itmayiedu_a
api-b:
path: /api-b/**
serviceId: itmayiedu_b
@EnableZuulProxy
@EnableEurekaClient
@SpringBootApplication
public class ZuulApplication {
public static void main(String[] args) {
SpringApplication.run(ZuulApplication.class, args);
}
@Bean
public TokenFilter accessFilter() {
return new TokenFilter();
}
}