利用消息中间件和缓存实现简单的秒杀系统(一):理论
Redis是一个分布式缓存系统,支持多种数据结构,我们可以利用Redis轻松实现一个强大的秒杀系统。 我们可以采用Redis 最简单的key-value数据结构,用一个原子类型的变量值(AtomicInteger)作为key,把用户id作为value,库存数量便是原子变量的最大值。对于每个用户的秒杀,我们使用 RPUSH key value插入秒杀请求, 当插入的秒杀请求数达到上限时,停止所有后续插入。 然后我们可以在台启动多个工作线程,使用 LPOP key 读取秒杀成功者的用户id,然后再操作数据库做最终的下订单减库存操作。 当然,上面Redis也可以替...
利用阿里云快速安装最新版docker和加速docker pull
Docker在国内安装和Docker pull都很慢,马云爸爸给广大的docker爱好者提供了便利:不仅可以在各个linux操作系统快速安装最新版的Docker,还免费提供了一个docker加速器,让大家免于Q的阻碍。 接下来,我来说下Ubuntu16.04如何接受马云爸爸的优惠: 一.替换为阿里云源: 先在终端输入以下命令: <span class="hljs-built_in">sudo</span> vi /etc/apt/sources.list 1 然后删除sources.list里面的全部内容,替换为以下内容: deb http://mirrors<span class="hljs-preprocessor&quo...
Linode KVM VPS安装Windows系统方法
从16年6月开始Linode(除日本东京)全面升级为KVM架构,内存也升级,也就是意味着可以安装Windows系统了!到16年11月份Linode日本东京2号数据中心(Tokyo 2)内测,升级为KVM架构!12月正式上线开卖,虽说东京新机房NTT线路的口碑相比旧机房KDDI线路始终差了点,但自从12月中旬开始东京1号旧机房KDDI线路开始严重抽风,部分地区甚至不如新机房NTT线路,东京1号旧机房在国内电信彻底是炸了!估计和最近一段时间国际海底光缆的故障有关,电信已经处理了好久了,也没搞好!联通还可以,东京2号新机房在国内电信和联通...
LVS+Keepalived实现高可用集群
操作系统平台:CentOS5.2 软件:LVS+keepalived LVS+Keepalived 介绍 LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。目前有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR); 十种调度算法(rrr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq)。 Keepalvied Keepalived在这里主要用作RealServer的健康状态检查以及LoadBalance主机和BackUP主机之间failover的实现 IP配置信息: LVS-DR-Master ...
StackOverflow 的硬件
我更愿意把Stack Overflow看作是能够运行于大规模数据下,但本身并不算大规模的(running with scale but not at scale)。意思是我们的网站非常有效率,但至少目前为止,我们的规模还不够“大”。让我们通过一些数字来介绍Stack Overflow当前是一个怎样的规模吧。以下是一些核心的数字,来自于不久前在一整天(24小时)内的统计,准确说是2013年11月12日。这是一个典型的工作日,并且只统计了我们活动的数据中心,也就是我们自己的服务器。那些对CDN节点的请求和流量被排除在外,因为它们并不直接访问我们的网络。 ...
单点登录实现——基于OAuth2.0协议的接入方案
OAuth是目前广泛应用的开放接入标准,与OAuth1.0相比,OAuth2.0实现起来更加。OAuth的相关原理在互联网上有大量的资料可以查阅。以下是通过OAuth方式接入的说明: 第一步:应用接入申请 向中山市教育信息中心进行应用接入申请获得client_id和client_secret,这两个值是后续进行应用接口调用的关键内容 client_id: lejiaoyun client_secret: a1a0107555b948ada6348e39376ef52b 第二步:调用OAuth2.0的authorize接口 接口URL:http://202.96.186.112:8001/cas/oauth2.0/authorize 请求方式:GET/POST 调用参数: ...
支持高并发的IIS Web服务器常用设置
适用的IIS版本:IIS 7.0, IIS 7.5, IIS 8.0 适用的Windows版本:Windows Server 2008, Windows Server 2008 R2, Windows Server 2012 1、应用程序池(Application Pool)的设置: General->Queue Length设置为65535(队列长度所支持的最大值) Process Model->Idle Time-out设置为0(不让应用程序池因为没有请求而回收) Recycling->Regular Time Interval设置为0(禁用应用程序池定期自动回收) 2、.Net Framework相关设置 a) 在machine.config中将 <processModel autoConfig="true" /> 改为...
单点登录SSO的实现原理:asp.net Forms身份验证详解(三)
在做网站的时候,都会用到用户登录的功能。对于一些敏感的资源,我们只希望被授权的用户才能够访问,这让然需要用户的身份验证。对于初学者,通常将用户登录信息存放在Session中,笔者在刚接触到asp.net的时候就是这么做的。当我将用户信息存在在Session中时,常常会遇到Session丢失导致用户无法正常访问被授权的资源,保持用户登录状态时的安全性问题,无休止的将用户导航到登录页面等莫名其妙的问题。 其实,在asp.net中,我们有更好的解决方案,那就是通过Forms身份验证,从而对用户进行授权,这种方法可以轻松...
Validation of viewstate MAC failed 解决办法 (一)
在网上搜寻了很久看了很多关于MAC验证视图状态失败的解决方法。大部分人都说是在页里或web.config里加EnableEventValidation="false" EnableViewStateMac="false" ViewStateEncryptionMode="Never" 这些属性的设置。但是这并不从根本上解决问题,相反这样做了反而更加不安全。 为了解决问题我继续收集资料,不经意的发现了一个网页里讲到一个Blog系统从NET1.1升级到NET2后,之前所生成的所有cookies将会失效,因为NET2和NET1使用的machineKey不一样。哈哈,真是恍然大悟啊! WEB应用中经常遇到采用集群或负载均衡...
单点登录SSO的实现原理:附源码(二)
SSO的基本概念 SSO英文全称Single Sign On(单点登录)。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。(本段内容来自百度百科) 今天这篇文章将介绍SSO的一种实现方式,代码超简单,仅用来验证我的思路是否可行,具体细节请大家来完善! 二级域名的单点登录 什么是二级域名呢?例如: site1.domain.com site2.domain.com 对于二级域名的单点登录,我...