这是基于Go语言的一个秒杀系统,这个系统分三层,接入层、逻辑层、管理层。项目源码:https://github.com/BlueSimle/SecKill

系统架构图

秒杀接入层
  1. 从Etcd中加载秒杀活动数据到内存当中。
  2. 监听Etcd中的数据变化,实时加载数据到内存中。
  3. 从Redis中加载黑名单数据到内存当中。
  4. 设置白名单。
  5. 对用户请求进行黑名单限制。
  6. 对用户请求进行流量限制、秒级限制、分级限制。
  7. 将用户数据进行签名校验、检验参数的合法性。
  8. 接收逻辑层的结果实时返回给用户。
秒杀逻辑层
  1. 从Etcd中加载秒杀活动数据到内存当中。
  2. 监听Etcd中的数据变化,实时加载数据到内存中。
  3. 处理Redis队列中的请求。
  4. 限制用户对商品的购买次数。
  5. 对商品的抢购频次进行限制。
  6. 对商品的抢购概率进行限制。
  7. 对合法的请求给予生成抢购资格Token令牌。
秒杀管理层
  1. 添加商品数据。
  2. 添加抢购活动数据。
  3. 将数据同步到Etcd。
  4. 将数据同步到数据库。
目录结构
├─sk_admin
│ ├─config
│ ├─controller
│ │ ├─activity
│ │ └─product
│ ├─model
│ ├─service
│ └─setup
├─sk_layer
│ ├─config
│ ├─logic
│ ├─service
│ │ ├─srv_err
│ │ ├─srv_limit
│ │ ├─srv_product
│ │ ├─srv_redis
│ │ └─srv_user
│ └─setup
├─sk_proxy
│ ├─config
│ ├─controller
│ ├─service
│ │ ├─srv_err
│ │ ├─srv_limit
│ │ ├─srv_redis
│ │ └─srv_sec
│ └─setup
└─vendor
└─github.com
├─coreos
│ └─etcd
│ └─clientv3
├─gin-gonic
│ └─gin
├─go-sql-driver
│ └─mysql
├─gohouse
│ └─gorose
├─spf13
│ ├─cobra
│ └─viper
└─Unknwon
└─com

基于Go实现的秒杀系统的更多相关文章

  1. Java商城秒杀系统的设计与实战视频教程(SpringBoot版)

    课程目标掌握如何基于Spring Boot构建秒杀系统或者高并发业务系统,以及构建系统时采用的前后端技术栈适用人群Spring Boot实战者,微服务或分布式系统架构实战者,秒杀系统和高并发实战者,中 ...

  2. 基于SpringMVC+Spring+MyBatis实现秒杀系统【概况】

    前言 本教程使用SpringMVC+Spring+MyBatis+MySQL实现一个秒杀系统.教程素材来自慕课网视频教程[https://www.imooc.com/learn/631].有感兴趣的可 ...

  3. laravel基于redis实现的一个简单的秒杀系统

    说明:网上很多redis秒杀系统的文章,看的都是一头雾水,然后自己来实现一个,也方便以后自己学习 实现的方式是用的redis的list队列,框架为laravel 核心部分为list的pop操作,此操作 ...

  4. PHP秒杀系统-高并发高性能的极致挑战

    慕课网实战教程后端:1.java c++算法与数据结构2.java Spring Boot带前后端 渐进式开发企业级博客系统3.java Spring Boot企业微信点餐系统4.java Sprin ...

  5. PHP秒杀系统全方位设计(二)

    商品页面开发 静态化展示页面[效率要比动态PHP高很多,PHP程序需要解析等步骤,本身就需要很多流程,整个下来PHP的处理花的时间和资源要多] 商品状态的控制 开始前.进行中.库存不足.结束 数据逻辑 ...

  6. Java高并发秒杀系统【观后总结】

    项目简介 在慕课网上发现了一个JavaWeb项目,内容讲的是高并发秒杀,觉得挺有意思的,就进去学习了一番. 记录在该项目中学到了什么玩意.. 该项目源码对应的gitHub地址(由观看其视频的人编写,并 ...

  7. SSM实现秒杀系统案例

    ---------------------------------------------------------------------------------------------[版权申明:本 ...

  8. SpringBoot开发案例从0到1构建分布式秒杀系统

    前言 ​最近,被推送了不少秒杀架构的文章,忙里偷闲自己也总结了一下互联网平台秒杀架构设计,当然也借鉴了不少同学的思路.俗话说,脱离案例讲架构都是耍流氓,最终使用SpringBoot模拟实现了部分秒杀场 ...

  9. 从构建分布式秒杀系统聊聊Disruptor高性能队列

    前言 秒杀架构持续优化中,基于自身认知不足之处在所难免,也请大家指正,共同进步.文章标题来自码友 简介 LMAX Disruptor是一个高性能的线程间消息库.它源于LMAX对并发性,性能和非阻塞算法 ...

随机推荐

  1. 【BZOJ4605】崂山白花蛇草水 权值线段树+kd-tree

    [BZOJ4605]崂山白花蛇草水 Description 神犇Aleph在SDOI Round2前立了一个flag:如果进了省队,就现场直播喝崂山白花蛇草水.凭借着神犇Aleph的实力,他轻松地进了 ...

  2. 九度OJ 1042:Coincidence(公共子序列) (DP)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2303 解决:1241 题目描述: Find a longest common subsequence of two strings. 输入 ...

  3. 我的Android进阶之旅------>Android如何通过自定义SeekBar来实现视频播放进度条

    首先来看一下效果图,如下所示: 其中进度条如下: 接下来说一说我的思路,上面的进度拖动条有自定义的Thumb,在Thumb正上方有一个PopupWindow窗口,窗口里面显示当前的播放时间.在Seek ...

  4. winserver 资源下载

    http://msdn.itellyou.cn/  下载各种系统资源,支持迅雷下载,速度杠杠的

  5. Zookeeper 伪分布式部署

    Zookeeper 可以通过配置不同的配置文件启动 部署环境:CentOS 6.7 Zookeeper 路径: /opt/htools/zookeeper-3.4.6 操作步骤: 1 复制三份zoo. ...

  6. [容易]Fizz Buzz 问题

    题目来源:http://www.lintcode.com/zh-cn/problem/fizz-buzz/

  7. Java for LeetCode 083 Remove Duplicates from Sorted List

    Given a sorted linked list, delete all duplicates such that each element appear only once. For examp ...

  8. Mac OS访问Windows共享文件夹

    原文地址:http://blog.csdn.net/jinhill/article/details/7246922 最近开始研究Mac OS,遇到的第一个问题就是如何在Mac OS中访问Windows ...

  9. 51nod 80分算法题

    1537:见前几篇. 1627:题意:给定n,m的网格(10^5),初始状态为(1,1),你每次可以瞬移到右下方(不可以同行同列逗留)任何一个方格里,求移动到n,m的方案数. 一句话题解:首先很容易想 ...

  10. 虚拟化网络之OpenvSwitch

    OpenvSwitch简称OVS,官网(http://openvswitch.org/) OVS是一个高质量.多层的虚拟交换软件,即虚拟交换机. OpenvSwitch的见的相关组件: ovs-vsw ...