- 前言
在企业开发中,最常见的模式便是使用分布式架构进行企业服务平台的搭建,目前市面上流行的一套微服务架构开发是springcloud alibaba,整个微服务架构由nacos,open-feign,sentinel,springcloud gateway,nginx等组件或者应用进行搭建,本篇内容主要涉及nacos,gateway,nginx,在本地简单搭建一个类似企业开发中的服务架构。
本篇内容一般架构图为:
前端大量请求 请求至nginx服务器,nginx服务器通过反向代理的方式对网关集群进行代理,将前端接收到的请求通过负载均衡的方式负载至各个网关微服务(图中的网关集群),网关微服务再进行请求对应的业务微服务(图中的微服务集群)。
需要理解的是,网关集群其实也是微服务集群,不管是网关集群还是微服务集群,都需要注册到nacos服务中,这样才能使用springcloud gateway(网关)对微服务集群进行负载均衡(使用lb://product-service)。
所以本篇内容需要在本地下载对应的nacos服务,nginx服务,本篇内容也是基于windows环境。
-
首先需要创建一个微服务项目(业务微服务),注册到nacos的服务名为:product-service。
-
再创建一个网关微服务项目,进行网关微服务的predicates配置。
-
修改本地的nginx配置,对微服务网关进行反向代理,此处配置为:
#需要代理的服务器地址(直接代理微服务地址,在这里我们代理网关集群地址,然后在我们的项目中通过网关访问对应的微服务)
#在upstream中配置的server不应该有http://开头,格式应该直接为 ip:port
upstream server_list{
#下面两个是实际业务微服务地址
#server 127.0.0.1:8050;
#server 127.0.0.1:8051;
#下面是网关微服务(服务器)地址
server 127.0.0.1:8080;
}
#自定义一个虚拟nginx服务器(在实际企业开发中应该替换为对应的nginx服务地址)
#如果同时存在root命令和proxy_pass命令,只会选择执行其中一个
server{
listen 81;
server_name localhost;
location /{
#root html81;
index index.html index.htm;
proxy_pass http://server_list;
proxy_set_header Host $http_host;
}
}
通过网关进行调用业务微服务的地址为:
localhost:8080/productService/stock/1
效果为:
通过nginx进行调用地址为: localhost:81/productService/stock/1
由此,成功搭建了nginx反向代理,即通过访问nginx服务器访问对应的微服务网关,然后微服务网关再进行请求对应的微服务。
本地nacos对应的服务列表如下图所示: