# 《Seckill秒杀系统》第92章:流量网关项目搭建

作者:冰河
星球:http://m6z.cn/6aeFbs (opens new window)
博客:https://binghe.gitcode.host (opens new window)
文章汇总:https://binghe.gitcode.host/md/all/all.html (opens new window)
源码获取地址:https://t.zsxq.com/0dhvFs5oR (opens new window)

沉淀,成长,突破,帮助他人,成就自我。

  • 本章难度:★★☆☆☆
  • 本章重点:掌握流量网关的项目搭建流程,按照文章步骤一步步搭建流量网关,掌握搭建流量网关分层架构模型,并能够将流量网关应用到自身实际项目中。

大家好,我是冰河~~

正所谓万事俱备。只欠东风。秒杀系统整合业务网关后,已经搭建了流量网关的基础环境。在后续的流量网关中,我们更多的是通过OpenResty结合Lua脚本的形式来编写高性能的流控与风控规则,将大部分刷单流量、攻击流量和无效请求挡在整个秒杀交易链路之外。

# 一、前言

对于秒杀系统来说,越是前置处理刷单流量、攻击流量和无效请求,秒杀系统就越安全。如果能够将秒杀系统的刷单流量、攻击流量和无效请求阻挡在整个交易链路之外,则秒杀系统很少甚至不会受到这些刷单流量、攻击流量和无效请求的影响。

要知道,其实在整个秒杀活动过程中,秒杀系统承接的大部分流量基本都是刷单流量、攻击流量和无效请求。所以,我们如果能够将这些流量阻挡在秒杀系统之外,则会大大提高秒杀系统的稳定性和可靠性,也会节省不少服务器的资源和成本。

# 二、本章诉求

搭建流量网关项目,在流量网关项目中开发流量规则脚本,前置化处理流量请求。并对搭建的流量网关项目进行简单的测试。重点掌握流量网关服务与脚本分离的架构模型与处理方式,并能够灵活应用到自身实际项目中。

# 三、搭建流量网关项目

搭建流量网关项目的具体步骤如下所示。

# 3.1新建流量网关工程

新增seckill-nginx工程,并在seckill-nginx工程下新增对应的文件夹,如图92-1所示。


其中每个文件夹的含义如下所示。

  • conf:存放Nginx的nginx.conf配置文件

  • config:主要存放一些常用配置,比如常量配置、负载均衡配置等。

  • domain:主要用来存放server模块的配置。

  • html:存放流量网关相关的html页面。

  • lua:主要存放Lua脚本文件。

# 3.2 新建upstream.conf文件

在config目录下新建upstream.conf文件,文件内容如下所示。

upstream real_server {
   server localhost:10001 weight=1 max_fails=2 fail_timeout=60s;
}
1
2
3

可以看到,在upstream.conf文件中主要配置了反向代理的实际服务。

# 查看完整文章

加入冰河技术 (opens new window)知识星球,解锁完整技术文章与完整代码