如今,微服务项目是非常火爆的,在这其中,就涉及到一个不得不知的概念——网关。Zuul也好,GateWay也罢,或者自己公司封装,都离不开网关这个东西,网关有什么作用呢?
假如没有网关的话,那么我们的对外开放服务就会直接暴露我们的服务地址,比如页面上显示http://127.1.1.0:8080/cloud/put/getAppToken,而且这种方式破坏了服务无状态的特点,也无法直接复用既有接口。有了网关,不管是来自于客户端(PC或移动端)的请求,还是服务内部调用,一切的请求都得经过网关处理,可以实现负载均衡、缓存、访问控制(鉴权)、服务代理、监控、日志、动态路由等等操作。
在微服务中,通常采用网关集群部署(一主一备,或者轮询多个),这样所有的服务请求统一到网关上时,不会因为一台网关挂了,而导致整个服务奔溃。那么,如何搭建一个网关集群呢?下面我们就讲讲通过配置一个Nginx搭两台zuul网关实现集群(实际应用中,Nginx应该加一台备用),大致图如下:
#127.0.0.2:80和127.0.0.2:81为网关
#配置zuul网关服务器的轮询机制(权重)
upstream xfyw{
server 127.0.0.2:80 weight=1;
server 127.0.0.2:81 weight=1;
}
server {
listen 8080;
server_name www.xf00.com;
location / {
# 指定上游服务器
proxy_pass http://xfyw/;
index index.html index.htm;
}
}
启动zuul,浏览器访问http://www.xf00.com; 先写到这