Skip to content

Commit 8534291

Browse files
committed
微服务-网关
1 parent 836ce4c commit 8534291

File tree

5 files changed

+24
-3
lines changed

5 files changed

+24
-3
lines changed

MD/微服务-网关.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
## 定义
2+
API网关。它是系统的单个入口服务器。它类似于面向对象的外观模式。它封装了内部系统架构并且提供了每个客户端定制的API。它可能还有其他的职责比如身份验证、监控、负载均衡、缓存、请求整理和管理还有静态相应处理。
3+
4+
## 优点
5+
### 流量统一管理、路由
6+
它用于解决微服务过于分散,没有一个统一的出入口进行流量管理、路由映射、监控、缓存、负载均衡的问题。 我们用两张图来解释:
7+
8+
![](https://github.com/xbox1994/2018-Java-Interview/raw/master/images/api-gateway-1.jpg)
9+
10+
如上图所示的mst-user-service, mst-good-service, mst-order-service,这些应用会需要一些通用的功能,比如Authentication, 这些功能过于分散,代码就需要在三个服务中都写一遍,因此需要有一个统一的出入口来管理流量,就像下图
11+
12+
![](https://github.com/xbox1994/2018-Java-Interview/raw/master/images/api-gateway-2.jpg)
13+
14+
### 设备适配
15+
还可以针对不同的渠道和客户端提供不同的API Gateway,对于该模式的使用由另外一个大家熟知的方式叫Backend for front-end, 在Backend for front-end模式当中,我们可以针对不同的客户端分别创建其BFF。
16+
![](https://github.com/xbox1994/2018-Java-Interview/raw/master/images/api-gateway-3.jpg)
17+
18+
### 协议转换
19+
客户端直接调用微服务可能会使用对网络不友好的协议。内部服务之间可能使用Thrift二进制RPC、gRPC协议。两个协议对浏览器不友好并且最好是在内部使用。应用应该在防火墙之外使用HTTP或者WebSocket之类的协议。
20+
21+
## 缺点
22+
API网关是一个必须被开发、部署、管理的高可用组件。还有一个风险是它变成开发瓶颈。开发人员必须更新API网关来暴露每个微服务接口。因此更新API网关的过程越少越好。然而,对于大多数现实世界的应用,使用API网关是有意义的。

README.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,8 @@ PS:除开知识点,一定要准备好以下套路:
3131
* [一致性hash](https://github.com/xbox1994/2018-Java-Interview/blob/master/MD/分布式-一致性hash.md)
3232
### 微服务
3333
* [微服务介绍](http://www.wangtianyi.top/blog/2017/04/16/microservies-1-introduction-to-microservies/?utm_source=github&utm_medium=github)
34-
* [服务发现Consul](http://sjyuan.cc/service-registration-and-discovery/)
35-
* [API网关原理](http://www.wangtianyi.top/blog/2017/04/22/yi-microservies-2-building-microservices-using-an-api-gateway/?utm_source=github&utm_medium=github)
36-
* [服务配置中心](http://sjyuan.cc/service-config-server/)
34+
* [服务发现](http://sjyuan.cc/service-registration-and-discovery/)
35+
* [网关](https://github.com/xbox1994/2018-Java-Interview/blob/master/MD/微服务-网关.md)
3736
* [服务容错保护](http://sjyuan.cc/service-fault-tolerant-protected-with-hytrix/)
3837
### 算法(头条必问)
3938
* [数组-快速排序-第k大个数](https://github.com/xbox1994/2018-Java-Interview/blob/master/MD/算法-数组-快速排序-第k大个数.md)

images/api-gateway-1.jpg

100 KB
Loading

images/api-gateway-2.jpg

103 KB
Loading

images/api-gateway-3.jpg

57.7 KB
Loading

0 commit comments

Comments
 (0)