web架构设计
web架构设计
王道长的编程之路
学不死那就朝死里学
展开
-
拼团业务的并发问题分析
一、活动介绍最近有个项目,拼团的业务,但区别于一般的拼团完成就发货,我们的业务时拼团完成后,有一个抽奖活动,从参加活动的成员中抽出一名幸运儿。二、代码逻辑拼团下单的业务如下://拼团下单 逻辑func payMoney(){ //1、创建采购订单 funcA() { DB::starttrancs; //.....业务处理 DB::commit } //2、创建支付订单 funcB() { DB::start原创 2020-11-04 22:17:17 · 1127 阅读 · 1 评论 -
k8s的私人搭建
下载 centos7 docker pull centos:centos71 环境准备修改源#修改中文显示vi /etc/locale.confLANG="zh_CN.UTF-8"LC_ALL="zh_CN.UTF-8"LC_CTYPE="zh_CN.UTF-8"#更新yum upgrade -y#cat /etc/hostsport 10000 192.168.0.104 centos-1.shared masterport 10001 192.168.0.10原创 2020-06-07 16:39:59 · 372 阅读 · 2 评论 -
web系统整体性能测试
一、性能测试概要什么是性能测试性能测试就是通过技术的手段模拟大量用户同时访问被测应用,观察、记录和分析系统的各项性能指标的过程。性能测试的目标是评估系统的性能瓶颈,预测系统的最大用户负载能力。性能测试的两个关键点模拟大量并发用户监控系统负载参数分析系统瓶颈性能指标平均响应时间( TTLB , Time to laster byte )平均每个请求从发送到接收响应的...原创 2019-06-09 22:31:50 · 7221 阅读 · 1 评论 -
面试官:你知道哪些限流方案?
前言Java单机限流可以使用AtomicInteger,RateLimiter或Semaphore来实现,但是上述方案都不支持集群限流。集群限流的应用场景有两个,一个是网关,常用的方案有Nginx限流和Spring Cloud Gateway,另一个场景是与外部或者下游服务接口的交互,因为接口限制必须进行限流。本文的主要内容为:Redis和Lua的使用场景和注意事项,比如说KEY映射的问题...转载 2019-06-06 16:28:19 · 1512 阅读 · 0 评论 -
高并发的核心技术-幂等的实现方案
一、背景我们实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果。 例如:前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果。我们发起一笔付款请求,应该只扣用户账户一次钱,当遇到网络重发或系统bug重发,也应该只扣一次钱;发送消息,也应该只发一次,同样的短信发给用户,用户会哭的;创建业务订单,一次业务请求只能创建一个,创建多个就会出大问题。等等...转载 2019-06-06 16:25:08 · 840 阅读 · 0 评论 -
架构师眼中的高并发架构
文章目录一、前言二、服务器架构2.1 并发测试2.2 实战方案2.2.1 通用方案2.2.2 消息队列2.2.3 一级缓存2.2.4 静态化数据2.2.5 其他方案三、分层,分割,分布式四、集群五、异步六、缓存七、面向服务八、冗余,自动化九、总结一、前言高并发经常会发生在有大活跃用户量,用户高聚集的业务场景中,如:秒杀活动,定时领取红包等。为了让业务可以流畅的运行并且给用户一个好的交互体验,...转载 2019-06-06 16:19:32 · 901 阅读 · 0 评论 -
Node学习
一、Node基础1.1 Node的优势?IO优势对于文件读写,Node采用的是非阻塞IO传统IO在读写文件的时候CPU来处理,而代码执行也处于等待中,浪费性能非阻塞IO将读写操作交给CPU,而代码正常执行,减少等待浪费的性能应用场景实际应用: webpack/gulp/npm/http-server/json-server服务器中负责IO读写的中间层服务器(天猫中间层IO...原创 2019-05-17 15:22:01 · 169 阅读 · 0 评论 -
缓存三大问题及解决方案(理论)
文章目录1. 缓存来由2. 缓存问题2.1 缓存穿透2.2 解决方案2.3 缓存雪崩2.4 解决方案2.5 缓存击穿2.6 解决方案1. 缓存来由随着互联网系统发展的逐步完善,提高系统的qps,目前的绝大部分系统都增加了缓存机制从而避免请求过多的直接与数据库操作从而造成系统瓶颈,极大的提升了用户体验和系统稳定性。2. 缓存问题虽然使用缓存给系统带来了一定的质的提升,但同时也带来了一些需要注...转载 2019-05-10 10:08:53 · 1315 阅读 · 0 评论 -
负载均衡的Hash策略引发的session丢失
文章目录一、什么是 Session 丢失二、Nginx 如何来解决这个问题2.1 Session 保持三、Session 保持的其他方案3.1 Session 复制3.1 Session 共享四、各个方案的适用场景结语负载均衡后添加机器后,发现数据库的压力迅速上升,越来越多的用户说刚登陆后没多久,操作着就退出了,接着登陆,又退出了。这些问题背后都是由于一个「Session 丢失」问题导致的。...转载 2019-05-10 08:55:06 · 1345 阅读 · 0 评论 -
常用负载均衡及策略图解
文章目录一、负载均衡是什么二、常用负载均衡策略图解2.1 轮询2.2 加权轮询2.3 最少连接数2.4 最快响应2.5 Hash 法三、用健康探测来保障高可用3.1 HTTP 探测3.2 TCP 探测3.3 UDP 探测四、结语一、负载均衡是什么正如上图所示的这样,由一个独立的统一入口来收敛流量,再做二次分发的过程就是负载均衡,它的本质和分布式系统一样,是分治。如果大家习惯了开车的时候用一...原创 2019-05-10 01:18:13 · 4496 阅读 · 0 评论 -
Web 日志分析过程
文章目录Web 日志分析过程一、日志格式学习二、入侵日志分析2.1 网站被入侵,分析解决思路:2.1.1 下载日志分析 access.log+error.log2.1.2 找到攻击者的 IP 地址2.1.3 攻击者是如何找到网站后台的?2.1.4 攻击者如何进入后台?2.1.5 攻击者修改了什么文件来写一句话?2.1.6攻击者通过一句话后门做了什么?三、通过 SQL 注入日志分析3.1 sql 入...转载 2019-05-09 20:44:30 · 2551 阅读 · 0 评论 -
从URL输入到页面展现到底发生什么
前言打开浏览器从输入网址到网页呈现在大家面前,背后到底发生了什么?经历怎么样的一个过程?先给大家来张总体流程图,具体步骤请看下文分解!总体来说分为以下几个过程:DNS 解析:将域名解析成 IP 地址TCP 连接:TCP 三次握手发送 HTTP 请求服务器处理请求并返回 HTTP 报文浏览器解析渲染页面断开连接:TCP 四次挥手一、URL 到底是啥URL(Uniform R...转载 2019-05-09 18:28:04 · 693 阅读 · 0 评论 -
OAuth系列之 OAuth2.0 Demo(四)
这组 OAuth 系列教程,第一篇介绍了基本概念,第二篇介绍了获取令牌的四种方式,今天演示一个实例,如何通过 OAuth 获取 API 数据。很多网站登录时,允许使用第三方网站的身份,这称为"第三方登录"。下面就以 GitHub 为例,写一个最简单的应用,演示第三方登录。文章目录一、第三方登录的原理二、应用登记三、示例仓库四、浏览器跳转 GitHub五、授权码六、后端实现七、令牌八、API 数...原创 2019-05-06 09:48:35 · 533 阅读 · 0 评论 -
OAuth系列之OAuth 2.0的四种方式(三)
上一篇文章介绍了 OAuth 2.0 是一种授权机制,主要用来颁发令牌(token)。本文接着介绍颁发令牌的实务操作。文章目录RFC 6749第一种授权方式:授权码第二种方式:隐藏式第三种方式:密码式第四种方式:凭证式令牌的使用更新令牌RFC 6749OAuth 2.0 的标准是 RFC 6749 文件。该文件先解释了 OAuth 是什么。OAuth 引入了一个授权层,用来分离两种不同的...原创 2019-05-06 08:41:21 · 705 阅读 · 0 评论 -
OAuth系列之简单理解OAuth 2.0(二)
第一章 OAuth 2.0是什么OAuth 2.0 是目前最流行的授权机制,用来授权第三方应用,获取用户数据。例如:大型的居民小区->小区有门禁系统->进入的时候需要输入密码,那么问题来了经常网购和外卖,每天都有快递员来送货。我必须找到一个办法,让快递员通过门禁系统,进入小区。如果我把自己的密码,告诉快递员,他就拥有了与我同样的权限,这样好像不太合适。万一我想取消他进入小区的...原创 2019-05-06 08:29:25 · 146 阅读 · 0 评论 -
OAuth系列之理解OAuth 2.0(一)
第一章 OAuth 是什么OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为RFC 6749。第二章 应用场景在详细讲解OAuth 2.0之前,需要了解几个专用名词。它们对读懂后面的讲解,尤其是几张图,至关重要。(1) Third-party...转载 2019-05-06 08:18:01 · 324 阅读 · 0 评论 -
Api通讯数据的加解密
第一章 背景在与 APP 的 api 通讯中,经常会将敏感数据进行加密传输,然后再解密进行处理。在项目开发的时候,也会封装方法去对数据进行加解密。接下来我们通过php的laravel框架来实现加解密,下面是我通过 middleware 和 Response::macro 实现加解密的方案。第二章 请求的解密对请求数据进行处理,首选当然是在 middleware 中进行。 namespac...原创 2019-05-06 01:01:36 · 807 阅读 · 0 评论 -
Web常用缓存详解
第一 知识结构介绍在php网站中主要的缓存知识点,以一个商场的首页和几个核心页为例,实际应用这些技术。点评这些技术的优点和存在的问题从架构看缓存文件类缓存内存数据库之memcached内存数据库之redis浏览器缓存机制服务器程序的缓存第二 从架构看缓存布局缓存的目的:压力均分,减少对瓶颈环节的流量冲击;简化处理流程,提升整个流程的处理速度;持久化和固化数据合理使用缓存...原创 2019-05-05 02:34:55 · 872 阅读 · 0 评论