亿级流量网站架构核心技术笔记

第一章  交易型系统设计的一些原则

    1.1 高并发原则

             1.1 高并发原则

                 1.1.1 无状态

                                 如果设计的应用是无状态的,那么应用比较容易进行水平扩展。实际生产环境可能是这样的:应用无状

                              态,配置文件有状态。比如,不同的机房需要读取不同的数据源,此时,就需要通过配置文件或配置中心指

                              定。

                              关于有状态的应用指的是session,无状态的应用指的是session,具体查看博客

                              https://blog.youkuaiyun.com/kikajack/article/details/80293328

                              这里只说下session的缺点:

                              --  服务器压力大:每个用户在认证后,Session 信息都会保存在服务器的内存中,开销大。

                              --  难以扩展:对于基于 Session 的分布式系统,要实现负载均衡,有两个办法:确保同一用户始终访问同一

                                                    个服务器,或在多台服务器之间同步 Session。对于前者,Nginx 也可以用 ip_hash 把同一来源

                                                    的 IP(同一 C 段)指向后端的同一台机器。对于后者则需要通过 Session Sticky 机制在多台服

                                                    务器之间同步 Session(例如 Nginx 的扩展模块 nginx-sticky-module。假设 Session 存储在A服

                                                    务器上,而用户访问了 B 服务器,则可以将 Session 从 A 同步到 B,但是如果存储 Session的A

                                                    服务器挂掉,还是会导致用户掉线)。

                 1.1.2 拆分  

                                 笔者遇到的拆分主要有如下几种情况。

                                      系统维度:按照系统功能/业务拆分,比如商品系统、购物车、结算、订单系统等。

                                      功能维度:对一个系统进行功能再拆分,比如,优惠券系统可以拆分为后台券创建系统、领券系统、用券

                                                        系统等;

                                      读写维度:根据读写比例特征进行拆分。比如,商品系统,交易的各个系统都会读取数据,读的量大于写,

                                                        因此可以拆分成商品写服务、商品读服务:读服务可以考虑使用缓存提升性能;写的量太大时,

                                                        需要考虑分库分表;有些聚合读取的场景,如商品详情页,可考虑数据异构拆分系统,将分散

                                                        在多处的数据聚合到一处存储,以提升系统的性能和可靠性;

                                      AOP维度:根据访问特征,按照AOP进行拆分,比如,商品详情页可以分为CDN、页面渲染系统;CDN

                                                         就是一个AOP系统。

                                      模块维度:比如,按照基础或者代码维护特征进行拆分,如基础模块分库分表、数据库连接池等;代码结

                                                        构一般按照三层架构(web、Service、DAO)进行划分。

                                      模块维度:比如,按照基础或者代码维护特征进行拆分,如基础模块分库分表、数据库连接池等;代码结

                                                        构一般按照三层架构(web、Service、DAO)进行划分。

转载于:https://www.cnblogs.com/jialanshun/p/10618207.html

京东高级工程师开发十年,终于总结出:“亿级流量网站架构核心技术”笔记 前言: 相信大家都知道,说起亿万流量网站高性框架的设计方案,就能想到关键的两点,那就是高可用和高并发。而要谈对高并发和高可用有多熟悉,京东的大佬们还是有一定发言权,而作为京东高级工程师更是大佬级别。 而今天分享的正是京东十年开发经验工程师编写的:“亿级流量网站架构核心技术”。 笔记作者:京东高级工程师:大飞 笔记特点:条理清晰,含图像化,内容创新深奥却易懂。 笔记大致分为四部分∶概述、高可用原则、高并发原则、案例实战。从负载均衡、限流、降级、隔离、超时与重试、回滚机制、压测与预案、缓存、池化、异步 阅读详情

相关推荐

Fluent后台计算中Journal文件的自动化编写与优化实践

本文深入探讨了Fluent在Linux/Unix环境下进行后台计算时,Journal文件的自动化编写与优化实践。Journal文件作为Fluent后台计算的“灵魂”,是实现仿真流程自动化、保证计算可重复性与准确性的关键。文章从基础脚本骨架搭建、命令简写技巧,到进阶的参数化研究与批量计算实现,提供了详实的实战指南,帮助工程师大幅提升仿真效率。

postgres8guard的博客 756

《亿级流量网站架构核心技术》总结

nginx后端节点健康检查 主要有三种实现方式: 1. 本身自带的ngx_http_proxy_module模块和ngx_http_upstream_module模块,属于惰性检测。 ngx_http_proxy_module:proxy_connect_timeout(与后端服务器建立连接的超时时间)、proxy_read_timeout(从后端服务器读取响应的超时)和proxy_next...

6865

shopro 商城,2025年新申请的微信支付提示失败,支付提示 Get Wechat Public Cert Error 问题的修复办法

shopro 商城,最近新申请的微信支付商户 支付提示 Get Wechat Public Cert Error 问题的修复办法

行走的卡路里 1245

亿级流量高并发学习笔记(一)

1、在虚拟机中安装CentOS 启动一个virtual box虚拟机管理软件virtual box。 (1)使用课程提供的CentOS 6.5镜像即可,CentOS-6.5-i386-minimal.iso。 (2)创建虚拟机:打开Virtual Box,点击“新建”按钮,点击“下一步”,输入虚拟机名称为eshop-cache01,选择操作系统为Linux,选择版本为Red Hat,分配1024M...

selt791的博客 1349

SAP-ML章<<<<第二节:物料账报错处理ABAP编程错误:RAISE_EXCEPTION>>>>

#SAP-ML章<<<<第一节:物料账报错处理ABAP编程错误:RAISE_EXCEPTION>>>> 1.物料账报错提示: ABAP编程错误:RAISE_EXCEPTION ABAP程序:SAPLFCML4H_RUN_PRICES应用组件CO-PC-ACT 2. 物料账报错背景: CKMLCP运行结算时 3. 解决方案: 通过DEBUG查看错误的地方 OKTZ:分析原因为:可能打包或者配置传输时弄错 ...

SAP.David.Gao的博客 1856

Unreal5从入门到精通之初学者碰到解决不了的问题怎么办?

在学习Unreal的过程中,你曾陷入困境了吗?对于我来说,这种情况发生得比我愿意承认的要多得多。幸运的是,除了一般地在网上搜索之外,还有很多地方可以获得虚幻引擎的帮助。

TxNet 979

《亿级流量网站架构核心技术》读书笔记 —— 交易型系统设计的一些原则

设计一个系统,不仅需要考虑实现业务功能,还要保证系统高并发、高可用、高可靠等,在系统容量规划(流量、容量)、SLA指定(吞吐量、响应时间、可用性、降级方案等)、压测方案(线上、线下等)、监控报警(机器负载、响应时间、可用率等)、应急预案(容灾、降级、限流、隔离、切流量、可回滚)等方面 1. 高并发原则 1.1 无状态 应用无状态易于扩展.实际中应用无状态,配置文件有状态。 1....

alleyz 899

28、基准剂量法:原理、应用与计算详解

本文详细介绍了基准剂量法(BMD)的原理、在监管机构中的应用以及具体的计算方法。内容涵盖样本量与BMD的关系、主要监管机构如EPA对BMD的应用、BMD的模型选择与数据拟合过程、拟合优度评估、下置信限(BMDL)计算,以及实验设计对BMD结果的影响。同时,还讨论了剂量指标和响应选择的关键问题,为理解和应用基准剂量法提供了全面的参考。

info6的博客 280

亿级流量网站架构核心技术阅读笔记

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Ma...

weixin_46021767的博客 294

ESP32-C3模组上跑通HTTPS分次传输文件(1)

ESP32-C3模组上跑通HTTPS分次传输文件(1)

phmatthaus的专栏 760

华为OD机试双机位C卷:日志排序 (Py/C/C++/Java/Js/Go)

华为OD机试双机C卷真题【日志排序】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。华为OD机试-日志排序。

qq_45776114的博客 1754

亿级流量网站架构核心技术 pdf_高扩展、高可用、高性能时代,亿级流量网站的架构核心技术开源...

这份笔记高屋建瓴,抓住了大型高并发网站设计的核心,从设计原则,到高性能、高吞吐量、高可用的系统设计,到高灵敏的监控系统构思、再到应急方案的制定,不失细节,又不拘泥于细节。这份笔记总结并梳理了亿级流量网站高可用和高并发原则,通过实例详细介绍了如何落地这些原则。笔记分为四部分:概述、高可用原则、高并发原则、案例实战,从负载均衡、限流、降级、隔离、超时与重试、回滚机制、压测与预案、缓存、池化、异步化、扩...

weixin_39765339的博客 614

C++笔记之emplace_back(),push_back()性能比较i++ 、 ++i

操作是否需要临时对象/拷贝性能需要(构造临时对象)较慢不需要(直接构造)较快i++需要(保存旧值)对于内置类型无影响,但对于自定义类型(如迭代器、大对象)会有拷贝开销++i不需要相对更快(尤其是自定义类型)都存在"是否需要额外的临时对象/拷贝"这一性能差异点和++i都是更高效的版本(避免临时对象/拷贝)和i++都可能产生额外的临时对象(前者构造临时对象,后者保存旧值)对于内置类型(如int),i++和++i性能几乎没有差异(编译器会优化);但对于自定义类型(尤其是迭代器等重量级对象),

小勇博客 96

读书笔记: 《亿级流量网站架构核心技术》(开涛的那本)

这本书知识范围广,但都浅尝辄止,可以用来开阔视野,由于之前看过李智慧的《大型网站技术架构》,有部分内容是重合的,所以翻起来比较快。这里只记录下之前没太了解的点第1章:交易型系统设计的一些原则开场白太棒了,想全部记录下来,本章还记录了一些设计的原则。1、一个好的设计要做到,解决现有需求和问题,把控实现和进度风险,预测和规划未来,不要过度设计,从迭代中演进和完善。2、墨菲定律:任何事都没有表面看起来那...

key_next的博客 3951

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

亿级流量网站架构核心技术 -- 读书笔记

亿级流量网站架构核心技术 -- 读书笔记

xuguangyuansh的博客 589

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

《亿级流量网站架构核心技术》读书笔记

虽然本人平时主要从事OA系统的开发,系统并发量不会特别大,主要是注重业务逻辑和快速交付,但是通过学习电商网站对高并发高可用的处理,可以促进自己对系统架构的思考,提升自己的业务水平,以后出现高并发高可用问题的时候,才不会手足无措,而且,系统架构原理是想通的,即使是小系统,也可以从大系统的架构中学习到相关技术解决方案和设计思路,也就是所谓的触类旁通。 一,系统设计的一些原则 在我们的技术生涯中

bin的专栏 1311

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

读书笔记:《亿级流量网站架构核心技术 -- 跟开涛学搭建高可用高并发系统》

from 《亿级流量网站架构核心技术 – 跟开涛学搭建高可用高并发系统》 概述 一个好的设计要做到,解决现有的需求和问题,把控实现和进度风险,预测和规划未来,不要过度设计,从迭代中演进和完善。 在设计系统时,应多思考墨菲定律: 1、任何事情都没有表面看起来那么简单。 2、所有的事都会比你预计的时间长。 3、可能出错的事总会出错。 在系统划分时,也要思考康威定律: 1、系统架构是公司组织架构的反映。 2、应该按照业务闭环进行系统拆分/组织架构划分,实现闭环/高内聚/松耦合,减少沟通成本。 3、如果沟.

看,未来的博客 4535

亿级流量网站架构核心技术【笔记】(二)

九、应用级缓存A.缓存简介1.先从缓存中读取数据,如果没有,再从慢速设备上读取实际数据并同步到缓存2.经常读取的数据、频繁访问的数据、热点数据、I/O瓶颈数据、计算昂贵的数据、符合5分钟...

硬核项目经理 775

亿级流量网站架构核心技术【笔记】(一)

一、交易型系统设计的一些原则1.在设计系统时,应该多思考墨菲定律:* 任何事情都没有表面看起来那么简单* 所有的事都会比你预计的时间长* 可能出错的事总会出错* 如果你担心某种情况发生,...

硬核项目经理 827

读书笔记000000001--亿级流量网站架构核心技术--隔离术

隔离是指将系统或资源分割开,系统隔离是为了在系统发生故障时,能限定传播范围和影响范围,即发生故障后不会出现滚雪球效应,从而保证只有出问题的服务不可用,其他服务还是可用的。资源隔离通过隔离来减少资源竞争,保障服务间的的相互不影响和可用性。

好好学电脑 554

读书笔记000000002--亿级流量网站架构核心技术--限流术

在开发高并发系统时,有很多手段来保护系统,如缓存、降级和限流等。缓存目的是提升系统访问速度和增大系统处理能力,可谓是抗高并发流量的银弹。而降级是当服务出问题或者影响到核心流程的性能,需要暂时屏蔽掉,待高峰过去或者问题解决后再打开的场景。而有些场景并不能用缓存和降级来解决,比如稀缺资源(秒杀、抢购)、写服务(如评论、下单)、频繁的复杂查询(评论的最后几页)等。因此,需有一种手段来限制这些场景下的并发/请求量,这种手段就是限流。

好好学电脑 622

京东高级工程师开发十年,编写出:“亿级流量网站架构核心技术”

前言: 相信大家都知道,说起亿万流量网站高性框架的设计方案,就能想到关键的两点,那就是高可用和高并发。而要谈对高并发和高可用有多熟悉,京东的大佬们还是有一定发言权,而作为京东高级工程师更是大佬级别。 而今天分享的正是京东十年开发经验工程师编写的:“亿级流量网站架构核心技术”。 **笔记作者:**京东高级工程师:大飞 **笔记特点:**条理清晰,含图像化,内容创新深奥却易懂。 笔记大致分为四部分∶**概述、高可用原则、高并发原则、案例实战。**从负载均衡、限流、降级、隔离、超时与重试、回滚机制、压测与预案、缓

爱写代码的程序员 349

这才叫高并发,阿里架构师手写的三份绝密百亿级架构笔记限时分享

今天给大家带来三份绝密笔记:出自阿里的《百亿级并发系统设计(内部绝密)》,《微服务实战:Dubbox+Spring Boot+Docker》,《亿级流量网站架构核心技术》,都属于内部绝密,在这限时分享。话不多说看内容《百亿级并发系统设计(内部绝密)》我们知道,高并发代表着大流量,高并发系统设计的魅力就在于我们能够凭借自己的聪明才能设计出巧妙的方案,从而抵抗巨大流量的冲击,带给用户更好的使用体验。这些方案好似能操纵流量,让流量更加平稳得被系统中的服务器和组件处理。

知识分享官 446

openresty完全开发指南 pdf_京东高级工程师开发十年,编写出:“亿级流量网站架构核心技术”...

前言:相信大家都知道,说起亿万流量网站高性框架的设计方案,就能想到关键的两点,那就是高可用和高并发。而要谈对高并发和高可用有多熟悉,京东的大佬们还是有一定发言权,而作为京东高级工程师更是大佬级别。 而今天分享的正是京东十年开发经验工程师编写的:“亿级流量网站架构核心技术”。笔记作者:京东高级工程师:大飞笔记特点:条理清晰,含图像化,内容创新深奥却易懂。笔记大致分为四部分∶概述、高可用原则、高并发原...

weixin_39936558的博客 421
上一篇: Hadloop
下一篇: BIO NIO AIO
anshuo7139
博客等级 码龄10年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值