
高并发高可用
系统架构
愚公搬代码
《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。
《近期荣誉》:2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主,2024年华为云十佳博主等。
《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
展开
-
(精华)2020年10月18日 高可用高并发 缓存的使用(HTTP缓存验证)
首先安装包Marvin.Cache.Headers配置public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } public void Configu原创 2020-10-18 23:01:01 · 344543 阅读 · 2 评论 -
(精华)2020年10月18日 高可用高并发 缓存的使用(Sqlserver)
首先安装缓存数据包dotnet tool install --global dotnet-sql-cache执行dotnet sql-cache create 数据库连接字符串 dbo 缓存数据表名称nutget 安装如下包Microsoft.Extensions.Caching.SqlServer配置public class Startup { public Startup(IConfiguration configuration) {原创 2020-10-18 22:10:33 · 344606 阅读 · 2 评论 -
(精华)2020年10月18日 高可用高并发 缓存的使用(Redis)
首先按装如下包Microsoft.Extensions.Caching.Redis配置public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } pub原创 2020-10-18 21:50:20 · 344868 阅读 · 5 评论 -
(精华)2020年10月18日 高可用高并发 缓存的使用(Cache)
配置缓存public class Startup{ public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } public void ConfigureServices(IServiceCollection services) {原创 2020-10-18 21:46:26 · 345111 阅读 · 1 评论 -
(精华)2020年10月12日 高并发高可用 负载均衡
反向代理内容服务器的替身如果内容服务器具有必须保持安全的敏感信息,如信用卡号数据库,可在防火墙外部设置一个代理服务器作为内容服务器的替身。当外部客户机尝试访问内容服务器时,会将其送到代理服务器。实际内容位于内容服务器上,在防火墙内部受到安全保护。代理服务器位于防火墙外部,在客户机看来就像是内容服务器。代理服务器成为安全数据库和可能的恶意攻击之间又一道屏障。即便这道屏障打破,充其量也仅限于访问单个事务中所涉及的信息。未经授权的用户无法访问到真正的内容服务器,因为防火墙通路只允许代理服务器有权原创 2020-10-12 23:57:13 · 354409 阅读 · 1 评论 -
(精华)2020年10月12日 高并发高可用 架构集群
高并发高科用角度架构演进单机应用(WebSite)渐渐的随着用户量的增加, 问题:一台服务器已经不够用了,服务器不稳定。挑战:高可用/高并发。 解决方式:于是我们将准备两台服务器搭成集群简单集群(WebSite)搭完集群之后,假如原来十个用户访问一台服务器,现在平均开,五个人访问上面的服务器,五个人访问另一个服务器。 用户的体验就会稍微好一点。好处:简单高可用,假如其中一台服务器挂了,是不影响用户访问的,因为用户可以访问另一台好的服务器问题:这样做有一个局限性,就是同时存在两个服务器,就会同时存原创 2020-10-12 21:52:58 · 364350 阅读 · 0 评论 -
(精华)2020年10月10日 高并发高可用 .NET实现持续集成与自动化部署(Jenkins实现测试环境到生产环境一键部署Windows系统)
前言:因为dotnet在发布站点后,然后再上传服务时,会因为各种的网速问题,导致站点瞬间挂掉!那么通过一键部署,先在测试站点测试好的文件,复制到正式站点上的一个缓冲区,进行预热配置,之后再本机进行文件替换,速度是相当的快,最终把影响降到最低。所用到的插件:文件复制插件,从master复制到slave:【Copy Data To Workspace Plugin】:https://wiki.jenkins-ci.org/display/JENKINS/Copy+Data+To+Workspace+Plu原创 2020-10-10 16:09:51 · 364747 阅读 · 0 评论 -
(精华)2020年10月10日 高并发高可用 .NET实现持续集成与自动化部署(使用NuGet.Server搭建公司内部的Nuget(包)管理器)
一、下载Nuget.Server从官方Nuget服务器上搜索nuget.server,点击项目url中的github路径。从github中下载nuget.server的源码。下载并解压后的文件路径如下图所示:二、搭建Nuget.Server打开项目文件NuGet.Server.sln,找到NuGet.Server,右键发布,选择文件系统(跟发布web程序一样,发布到IIS中)。IIS新建站点MyNuGet启动程序出现以下页面代表搭建成功注意:若点击here出现404页面如下图所示可原创 2020-10-10 16:03:44 · 364487 阅读 · 2 评论 -
(精华)2020年10月10日 高并发高可用 .NET实现持续集成与自动化部署(Jenkins的使用)
一、初识Jenkins由于之前亦没有相关知识的积累,因此也是对如何实现也是一头雾水。于是只能找度娘,关键字"自动化发布"。搜索到很多工具和方法,但都是以Java平台居多,.net平台相关资料不多。其中以Jenkins介绍较多,微软也提供一套自动化部署的方式,也有一些其他持续集成工具可以实现自动化的发布,但最终还是选择了Jenkins。主要有以下几个原因:代码开源、插件丰富完善、系统稳定社区活跃,成功实践和网上资源较为丰富安装配置简单web形式的可视化的管理页面1. Jenkins是什么Jenk原创 2020-10-10 15:54:23 · 365565 阅读 · 0 评论 -
(精华)2020年10月10日 高并发高可用 信息自动化
高可用/并发架构带来部署和运维挑战更多的服务器,更复杂的软件架构,更多的工作节点…… 更多的发布,部署,测试和运维挑战。问题:高可用和架构安全的关系持续发布/部署需求持续部署和持续发布[CI/CD]:复杂软件架构,往往带来更多的地面分层,更多的软件节点。系统的节点发布就会变得很麻烦。特别微服务 系统得持续发布,持续部署就是为了解决这些问题持续集成:强调开发人员提交了新代码之后,立刻进行构建、(单元)测试,根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起持续交付:是在持续集成原创 2020-10-10 15:28:38 · 364582 阅读 · 0 评论 -
(精华)2020年10月10日 高并发高可用 架构安全
常见的高可用/并发场景带来挑战问题:高可用和架构安全的关系常见的架构安全问题SQL注入SQL注入(SQLi)是一种注入攻击,,可以执行恶意SQL语句。它通过将任意SQL代码插入数据库查询,使攻击者能够完全控制Web应用程序后面的数据库服务器。攻击者可以使用SQL注入漏洞绕过应用程序安全措施;可以绕过网页或Web应用程序的身份验证和授权,并检索整个SQL数据库的内容;还可以使用SQL注入来添加,修改和删除数据库中的记录。带内注入常见的tsql拼接或UNION ALL 推理SQL注入:非为了显示数据原创 2020-10-10 15:07:38 · 365707 阅读 · 0 评论 -
(精华)2020年10月8日 高并发高可用 分布式架构
什么是分布式架构单体分布式集群分布式的高可用搭建服务集群,提高负载,避免单点故障应对灾难,搭建异地灾备,预防地区因发生地震等自然灾害接口限流以及服务降级。为防止过高的并发量造成服务器负载过高而出现故障故障监控报警服务的可伸缩性,易于水平扩张服务器数量。使用缓存降低数据库压力使用CDN等加速静态资源的访问分布式能够给架构带来什么应用服务器集群:随着访问量的继续增加,单台应用服务器也无法满足需求了,我们就需要搭建应用服务器集群来对外提供服务了数据负载-读写分离主从数据库之间的数据需原创 2020-10-08 23:17:43 · 364895 阅读 · 2 评论 -
(精华)2020年10月7日 高并发高可用 Redis实现异步架构
前言在后端编程时,对需要立即返回的数据我们应当立刻返回,而对于可以慢慢处理而业务复杂的我们可以选择延迟返回。这个实现使用到了异步消息队列。异步消息队列主要用于实现生产者-消费者模式。也就是说,这个队列应当是可以阻塞的,否者会带来大量的性能浪费。生产者-消费者模式实现1.定义事件类型 – 定义Enum类 – EnumType用于表示该事件的类型public enum EventType { //这里列举了四种类型 LIKE(0), COMMENT(1), LOG原创 2020-10-07 23:18:31 · 370397 阅读 · 0 评论 -
(精华)2020年10月7日 高并发高可用 RocketMQ异步架构
[微服务异步架构—MQ之RocketMQ]“我们大家都知道把一个微服务架构变成一个异步架构只需要加一个MQ,现在市面上有很多MQ的开源框架。到底选择哪一个MQ的开源框架才合适呢?”一、什么是MQ?MQ的原理是什么?MQ就是消息队列,是Message Queue的缩写。消息队列是一种通信方式。消息的本质就是一种数据结构。因为MQ把项目中的消息集中式的处理和存储,所以MQ主要有解耦,并发,和削峰的功能。1,解耦:MQ的消息生产者和消费者互相不关心对方是否存在,通过MQ这个中间件的存在,使整个系统达到解原创 2020-10-07 23:13:00 · 370557 阅读 · 0 评论 -
(精华)2020年10月7日 高并发高可用 异步架构
同步架构与异步架构背景把智能系统比喻成KFC营业厅,处理器是窗口和窗口后面的服务员(把一个窗口当作一个核心),指令集是后面排队的人,窗口是数据吞吐量。 当中午就餐人多的时候,一个窗口肯定忙不过来, 这时候就需要增加窗口解决方案1.在窗口后面增加多个服务员,分担一下工作2.新增多个窗口分析方案一就是异步架构,方案二同步架构一个窗口是不可能比上多个窗口的工作效率对比结论优点:异步架构设计简单,实现方便。缺点:性能低,吞吐量差。总结:如果对处理并发量不高的系统。优先选择异步架构!!!异步原创 2020-10-07 23:11:05 · 370203 阅读 · 1 评论 -
(精华)2020年10月7日 高并发高可用 浅谈命令查询职责分离(CQRS)模式
在常用的三层架构中,通常都是通过数据访问层来修改或者查询数据,一般修改和查询使用的是相同的实体。在一些业务逻辑简单的系统中可能没有什么问题,但是随着系统逻辑变得复杂,用户增多,这种设计就会出现一些性能问题。虽然在DB上可以做一些读写分离的设计,但在业务上如果在读写方面混合在一起的话,仍然会出现一些问题。本文介绍了命令查询职责分离模式(Command Query Responsibility Segregation,CQRS),该模式从业务上分离修改 (Command,增,删,改,会对系统状态进行修改)和查原创 2020-10-07 22:57:06 · 370199 阅读 · 0 评论 -
(精华)2020年10月7日 高并发高可用 架构分隔
什么是架构分隔单体单体:是把系统部署到一台服务器上,所有的请求业务都由这台服务器处理优点:适合小型系统,节省资源缺点:安全性低,一旦有突发压力, 整个系统都会面临崩溃分层—隔离效果分层:分层架构的一个突出特性是组件间关注点分离 (separation of concerns)。一个层中的组件只会处理本层的逻辑。比如说,展示层的组件只会处理展示逻辑,业务层中的组件只会去处理业务逻辑组件分离,让我们更容易构造有效的角色和强力的模型。这样应用变的更好开发,测试,管理和维护。忌:分层使架构变得复杂原创 2020-10-07 20:50:33 · 370571 阅读 · 1 评论 -
(精华)2020年10月6日 高并发高可用 架构冗余
冗余是什么:单体单体:是把系统部署到一台服务器上,所有的请求业务都由这台服务器处理优点:适合小型系统,节省资源缺点:安全性低,一旦有突发压力, 整个系统都会面临崩溃集群集群:把系统的各个功能拆分成不同的小系统,主要是分散能力优点:资源利用率高,可以承担部分压力,降低耦合度,易于扩展缺点:安全性低,如果其中一台服务器出现问题整个系统就会崩塌 忌:服务器架构单点,集成必须解决单点问题冗余是什么多余的重复或啰嗦内容(包括信息、语言、代码、结构、服务、软件、硬件等等)均称为冗余。冗余有两层含义,原创 2020-10-06 23:26:13 · 371419 阅读 · 0 评论 -
(精华)2020年10月6日 高并发高可用 nginx+haproxy+keepalived实现服务高可用
高可用负载均衡: haproxy+keepalived正文:企业业务量比较小的时候,单台服务器就可以满足业务需要了。但是随着业务发展,单服务器的问题就凸显出来了:·当服务器挂掉时,业务就会中断·当业务量增加,单台服务器性能变差,如何透明的扩展服务器和带宽,增加服务器吞吐量负载均衡器可以解决以上问题1 负载均衡器拓扑图本文会根据拓扑图,用haproxy和keepalived搭建一个负载均衡器2 准备2.1 准备环境准备5台CentOS7.3主机和一个VIP地址:·准备一个可用IP用作虚原创 2020-10-06 23:19:09 · 371470 阅读 · 4 评论 -
(精华)2020年10月6日 高并发高可用 wcf分布式构架集群案例(百万并发秒杀系统)
在wcf集群中,高性能的构架中一种常用的手法就是在内存中维护一个叫做“索引”的内存数据库,在实战中利用“索引”这个概念做出“海量数据的”秒杀。首先,先上架构图:大体讲解下该系统流程;所谓的Search集群就是图中WCF模块,它分布于不同的服务器上,为了提供高效率的数据检索,我们分步骤进行:1、我们将数据库中的数据通过程序加载到内存数据库中2、通过各个服务器中的WCFSearch服务为IIS提供内存数据中的数据检索3、为了管理不同服务器中的WCFSearch服务,我们利用了“心跳检测”,实现WCFS转载 2020-10-06 23:13:53 · 371511 阅读 · 0 评论 -
(精华)2020年10月5日 高并发高可用 分层架构(微服务技术中台)
首先先上张技术中台架构图概念中台概念出现之前,在信息化模式上,前端为支撑业务的应用端,后端为各个应用系统,为前端用户,如:客户、供应商、伙伴、社会,提供服务,但随着市场、用户需求、业务的多变性,底层僵硬的应用无法及时提供支撑。企业需要一个强大的中间层为高频多变的业务提供支撑,为不同的受众用户提供多端访问渠道,基于此类需求“中台”概念出现,接着开始对企业客户、中间件厂商、数据平台厂商、甚至传统应用软件厂商都有较大的概念冲击。恰逢此时,微服务技术和架构、容器化的生态、Devops概念和工具处于大发展的阶段原创 2020-10-05 23:29:53 · 375745 阅读 · 2 评论 -
(精华)2020年10月5日 高并发高可用 分层架构(CQRS)
一.DDD分层架构介绍本篇分析CQRS架构下的Equinox开源项目。该项目在github上star占有2.4k。便决定分析Equinox项目来学习下CQRS架构。再讲CQRS架构时,先简述下DDD风格,在DDD分层架构中,一般包含表现层、应用程序层(应用服务层)、领域层(领域服务层)、基础设施层。在DDD中讲到服务这个术语时,比如领域服务,应用层服务等,这个服务是指业务逻辑,而不是指任何技术如wcf,web服务。下图是从经典三层构架演变为DDD下的分层架构图: 1.表现层表现层前端往后端pos原创 2020-10-05 22:58:57 · 371452 阅读 · 1 评论