自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(20)
  • 资源 (21)
  • 收藏
  • 关注

原创 【高并发、高性能、高可用】“三高” 系统设计经验

软件开发通常会提到一个名词 “三高”,即高并发、高性能、高可用。具体的指标定义,如:高并发方面要求QPS 大于 10万;高性能方面要求请求延迟小于 100 ms;高可用方面要高于 99.99%。接下来,我们重点来介绍这 三高高并发我们使用 QPS(Queries Per Second,每秒查询率)来衡量系统承载能力。架构策略有哪些?1、负载均衡正所谓双拳难敌四手,高并发撑场面的首选方案就是集群化部署,一台服务器承载的QPS有限,多台服务器叠加效果就不一样了。...

2021-05-29 11:09:41 8104 2

原创 京东商城系统架构设计原则

京东商城系统,融合了自营模式、商城模式、三方平台等模式,跟淘宝、天猫以商城模式为主的电商系统相比,业务模式上要丰富很多,包括许多WMS、TMS、OMS的部分。国内中小型电商公司,如果要学,最好是学习京东的业务架构,因为业务模式上相近一些。一、超大型电商系统架构目标1、构建超大型电商交易平台,兼顾效率和性能,达到高人效、高时效和低成本的目标。2、低成本,增加服务的重用性,提高开发效率,降低人力成本;利用成熟开源技术,降低软硬件成本;利用虚拟化技术,减少服务器成本。3、高...

2021-05-12 11:39:40 8017 3

原创 从10到10亿级PV京东系统架构演进之路

今天从宏观的角度来讲,整个时代是大众创业万众创新的时代,作为程序员我们每个人都有一个梦想,吊打面试官,很多人给我说,我想进百度,想进阿里,想进腾讯,等一线互联网公司。你就需要知道面试官的一些大招,这样才能有效躲避,进而反击;目前大多数企业都属于中小企业, 所有的大企业都是从小公司一步一步发展起来,我曾经所在的京东也同样如此;大家看一下,目前中小企业IT架构面临的问题当业务发生变化,不断的在原有系统的上打补丁 当业务发展时,系统不断出现各种瓶颈 卡顿,数据库锁死,网站打不开, 各种...

2020-08-27 18:12:45 1839 2

原创 为什么要用分布式消息队列?重复消费?顺序消费?

我们可以把消息队列比作是一个存放消息的容器,当我们需要使用消息的时候可以取出消息供自己使用。消息队列是分布式系统中重要的组件,使用消息队列主要是为了通过异步处理提高系统性能和削峰、降低系统耦合性。目前使用较多的消息队列有ActiveMQ,RabbitMQ,Kafka,RocketMQ,我们后面会一一对比这些消息队列。本课时主要介绍以下内容。消息队列类型:RabbitMQ,ActiveMQ,RocketMQ,Kafka 等同步架构和异步架构的区别。异步队列架构原理,异步架构的主要..

2020-09-01 14:14:59 875

原创 缓存面试五连击(下篇)

接着上篇去聊一下,缓存的主要类型缓存的类型主要分为客户端缓存,浏览器缓存,CDN缓存,反向代理缓存,应用缓存等;客户端缓存相对于其他端的缓存而言,要简单一些,目的就是加速各种静态资源的访问,想想现在的大型网站,随便一个页面都是一两百个请求,每天 pv 都是亿级别,如果没有缓存,用户体验会急剧下降、同时服务器压力和网络带宽都面临严重的考验。客户端缓存主要分为两种:页面缓存和浏览器缓存页面缓存页面缓存有两层含义: 一个是页面自身对某些元素或全部元素进行缓存;另一层意思...

2020-08-27 20:01:15 314

原创 缓存面试五连击(上篇)

互联网公司必问这个问题,要是一个连缓存都不太清楚,那确实比较尴尬。只要问到缓存,上来第一个问题,肯定是先问问你项目哪里用了缓存?为啥要用?不用行不行?如果用了以后可能会有什么不良的后果?这就是看看你对缓存这个东西背后有没有思考,如果你就是傻乎乎的瞎用,没法给面试官一个合理的解答,那面试官对你印象肯定不太好,觉得你平时思考太少。随着互联网系统发展的逐步完善,提高系统的qps(每秒查询率),目前的绝大部分系统都增加了缓存机制从而避免请求过多的直接与数据库操作从而造成系统瓶颈,极大的提升了用户体.

2020-08-27 19:55:19 197

原创 亿级流量高并发场景下,如何解决一致性问题

大家好,我是牛路,欢迎来到我的吊打面试官系列课,第二讲 《亿级流量高并发场景下,如何解决一致性问题》本课咱们重点讨论一下如何解决一致性问题,一致性在分布式架构面试中会经常问道,在传统单体架构中,数据状态的处理都在同一个服务和数据库中,而具有**ACID特性**的数据库支持强一致性,就是说数据库本身是不会出现不一致的状态的,比如我们常用的关系型数据库MySQL就是通过多版本控制协议(MVCC)的实现来保证了强一致性。但是随着互联网的发展,用户增多&服务也越来越多越来越复杂,数据量和请求的并发量

2020-08-27 18:34:33 1078

原创 MySQL数据库的索引原理、与慢SQL优化的5大原则

MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易...

2020-03-03 11:33:46 324

原创 分布式之消息队列的特点、选型、及应用场景详解

什么是消息队列消息队列(Message Queue,简称MQ),指保存消息的一个容器,本质是个队列。消息(Message)是指在应用之间传送的数据,消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,有消息系统来确保信息的可靠专递,消息发布者只管把消息发布到MQ中而不管谁来取,消息...

2020-03-03 10:19:18 356

原创 最全Java架构师技能图谱

计算机基础:网络和协议Java编程:并发编程、NIO等数据:MySQL、NoSQL、搜索引擎、大数据设计模式分布式架构设计还有算法和数据结构、Java并发编程、工具类这里就不一一列出了。...

2020-03-03 10:13:19 285

原创 MQ消息队列的12点核心原理总结

消息队列已经逐渐成为分布式应用场景、内部通信、以及秒杀等高并发业务场景的核心手段,它具有低耦合、可靠投递、广播、流量控制、最终一致性 等一系列功能。无论是 RabbitMQ、RocketMQ、ActiveMQ、Kafka还是其它等,都有的一些基本原理、术语、机制等,总结分享出来,希望大家在使用消息队列技术的时候能够快速理解。1. 消息生产者、消息者、队列消息生产者Producer:发...

2020-03-03 10:08:02 221

原创 分布式系统集群的搭建 -- 存储篇

概述在网络层的背后,每一个业务都需要数据的支撑,数据库的优化在整个系统中就显得至关重要了虽然NoSQL在并发性能上要优于传统的DBA,但由于MySQL在扩展性等方面的优势,MySQL依然作为企业级数据存储的首选MySQL数据库内部缓存使用建立适当索引对于MySQL优化,最简单的做法就是建立索引,在表数据量较大时可以起到快速检索数据的...

2020-02-25 09:13:39 781

原创 读写分离中间件 -- Amoeba 的安装和配置

概述之前搭建了读写分离系统:MySQL 分布式主从读写分离架构及实战对于这样主库用来读写,从库只读的系统,怎样决定每一个sql读写的真实库呢?在应用程序中主动判断显然是不现实的目前的解决方案主要有以下几种:通过应用程序实现,实现困难,增加了代码耦合 通过mysql-proxy实现,这种实现性能不高,可扩展性不强,而其又是lua脚本编写,开发环境中熟悉的人少...

2020-02-25 09:13:08 692

原创 分布式系统搭建 -- 网络篇

概述随着访问量的上升,web系统的压力越来越大,在这个过程中,面临很多问题而在网络层面上,由于数据暴增,单服务器开始疲于应对海量用户访问,就需要搭建负载均衡系统,让分布式集群分担压力所谓的负载均衡,就是让服务器集群分配工作任务,起到保护web服务器的作用而负载均衡的策略很多,主要有以下几个:HTTP重定向网页通过301、302返回包含Locatio...

2020-02-24 17:28:28 685

原创 LVS 集群搭建

概述LVS就是LinuxVirtualServer,即Linux虚拟服务器,是通过软件建立的一个虚拟服务器集群系统LVS集群采用IP负载均衡技术,因此也被称为“IP负载均衡”或“四层负载均衡”,一般分为三层结构:负载调度器:是整个集群的前端机,负责将客户请求发送到一组服务器上执行,通过修改http包的IP地址并转发包,让用户无法感知到这一过程的存在 ...

2020-02-24 17:28:01 319

原创 mysql 分表策略及 MERGE 表的使用

概述无论是大企业还是小公司,都有意无意的使用mysql来搭建数据存储服务,但是随着业务访问量、数据量的急剧膨胀,集中式数据存储越来越凸显出他的技术瓶颈,需要做读写分离而这恰恰也是mysql的一个优势所在,正是mysql的可扩展性,让mysql逐渐成为了企业的优先选择mysql的分表设计mysql上设计数据库应该力求做到小快灵,单库数据量要小,数据库要快速响...

2020-02-24 17:26:47 407

原创 缓存使用中存在的风险及应对

引言上一篇文章中,我们介绍了常见的缓存架构常见缓存架构 -- 穿透型缓存与旁路型缓存缓存对于查询压力很大的服务来说是必不可少的解决方案,对于访问频率极高及读多写少的业务来说,使用缓存提升服务性能,减轻后端服务器压力等方面有着很好的效果但是,没有任何一种技术方案是只有好处没有弊端或风险的,本文我们就来详细介绍一下在缓存使用过程中可能带来的风险与解决办法缓存雪...

2020-02-24 17:26:06 390

原创 MySQL 分布式主从读写分离架构及实战

概述随着网站业务的不断发展,用户量不断增加,数据量成倍增长,数据库的负载压力也越来越大,同时,为了防止数据库异常造成的数据丢失,我们常常需要两台或多态数据库的主从关系,可以将一台数据库服务器的数据更新同步到另一台网站可以利用mysql提供的特性,实现数据库读写分离,从而改善数据库的负载能力,并提供稳定的服务依托如上图,所谓的服务器读写分离就是让web服务器在写数据的时...

2020-02-24 17:25:29 367

原创 穿透型缓存与旁路型缓存

概述前一篇中,我们介绍了缓存面临的主要问题今天我们来介绍一下缓存架构的常用实现方式常见的缓存架构主要有两种: 旁路型缓存 穿透型缓存 穿透型缓存穿透型缓存的设计原则是将缓存与后端数据库的交互细节对应用层服务隐藏应用层服务所有的读写请求均请求缓存,读请求miss后,缓存向后端数据服务器请求数据,先更新缓存后返回而写请求也是同样的,...

2020-02-24 17:20:50 1178

原创 Redis常见面试题之缓存雪崩,缓存穿透,缓存并发,缓存预热,缓存算法详解

概述首先大家看一下redis需要掌握的知识图谱相信大家之前或多或少听过面试中,面试官提到雪崩,穿透之类的场景,今天大概讲一下缓存雪崩,缓存穿透,缓存并发,缓存预热,缓存算法这几个概念和解决思路。1、缓存雪崩可能是因为数据未加载到缓存中,或者缓存同一时间大面积的失效,从而导致所有请求都去查数据库,导致数据库CPU和内存负载过高,甚至宕机。解决思路:1.1、...

2020-02-24 17:20:24 394

基础技术部牛路《Java多线程入阶分享》纯干货

Java多线程入阶干货分享 1.使用线程的经验:设置名称、响应中断、使用ThreadLocal 2.Executor:ExecutorService和Future 3.阻塞队列:put和take、offer和poll、drainTo 4.线程间通信:lock、condition、wait、notify、notifyAll 5.Lock-free:atomic、concurrentMap.putIfAbsent、CopyOnWriteArrayList 6.关于锁的经验介绍 7.并发流程控制手段:CountDownLatch、Barrier 8.定时器:ScheduledExecutorService、大规模定时器TimerWheel 9.并发三大定律 10.图书、相关网络资源

2017-12-22

资深架构师牛路-《京东虚拟化实战应用分享》纯干货

资深架构师牛路-《京东虚拟化实战应用分享》纯干货,基于开源、Openstack、Centos、KVM

2017-12-22

京东资深架构师牛路《SAF介绍》

SAF是京东系统SOA化的重要基础组件,是接入JOS开放平台的重要前提,它是京东系统服务化、API化的标准服务支撑技术,自去年四月上线以来目前已有九百多个接口,近两千台服务器接入SAF平台,在线服务实例(JVM)达六千以上,每天通过SAF进行了服务调用都是以十亿次来计算的。

2017-12-22

国美技术总监牛路《云平台规划》

国美云平台规划建设,云存储,弹性云,消息云,缓存云等

2017-12-22

国美技术总监牛路《智能家居大数据平台技术方案》

基于国美智能家居大数据平台技术方案,大数据和云平台结合

2017-12-22

京东资深架构师牛路《区块链项目规划》

区块链项目规划,汇报材料,专业介绍区块链构成,以及区块链发展

2017-12-14

MySQL分布式集群部署文档集合

《MySql数据库双机集群》《MySQL分布式集群部署》《mysql_ab_cluster》

2017-12-06

RabbitMQ集群-ActiveMQ集群集合

《RabbitMQ集群环境生产实例部署》《ActiveMQ集群》《ActiveMQ高可用+负载均衡集群的安装、配置、高可用测试》

2017-12-06

Generator自动生成Java-Dao、Model、Mapping相关文件

使用generator自动生成Dao、Model、Mapping相关文件,java工具

2017-10-08

最全的区块链文档

其中包含:区块链技术指南,区块链架构及应用-李赫,区块链存证-网录科技-汪波,区块链是如何实现版权保护的-朱志文,中国区块链白皮书1014,中国区块链技术和应用发展白皮书(2016),区块链原理及应用简介 - v1.1

2017-07-12

图片裁剪自定义控件

对图片进行圆形或矩形的裁剪 可以进行双击放大图片 也可以进行手动缩放 拖拽 里面包含了:3中jquery控件和1种做Jcrop图片裁剪控件,还有drag控件

2017-07-07

纯javascript实现副文本框

纯javascript实现副文本框 ,实用

2013-12-11

jquery和angularJS两种百分比进度条实现方式

jquery和angularJS两种百分比进度条实现方式

2013-12-10

纯javascript网页播放器

纯javascript网页播放器,支持上传音频文件,调用javascript方法开始,暂停,停止,下一首,上一首,调节音量等功能

2010-05-05

java反射机制文档及代码

java中的反射机制,pdf文档,常用的反射用法都有详细的说明。

2009-08-27

servlet 源码

servlet详细源码 src文件夹 与lib下的class关联后让你更方便理解Tomcat的servlet内部实现。

2009-08-26

oracle存储过程语法

1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN NUMBER, 参数2 IN NUMBER ) IS 变量1 INTEGER :=0; 变量2 DATE; BEGIN END 存储过程名字 2.SELECT INTO STATEMENT 将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条 记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND) 例子: BEGIN SELECT col1,col2 into 变量1,变量2 FROM typestruct where xxx; EXCEPTION WHEN NO_DATA_FOUND THEN xxxx; END; ... 3.IF 判断 IF V_TEST=1 THEN BEGIN do something END; END IF; 4.while 循环 WHILE V_TEST=1 LOOP BEGIN XXXX END; ...

2009-08-13

oracle存储过程的学习资料

oracle存储过程的学习资料,包括oracle,基本命令,触发器等资料 .1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN NUMBER, 参数2 IN NUMBER ) IS 变量1 INTEGER :=0; 变量2 DATE; BEGIN END 存储过程名字 2.SELECT INTO STATEMENT 将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条 记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND) 例子: BEGIN SELECT col1,col2 into 变量1,变量2 FROM typestruct where xxx; EXCEPTION WHEN NO_DATA_FOUND THEN xxxx; END; ...

2009-08-13

Eclipse Axis2插件

EclipseAxis2插件 EclipseAxis2 Axis2插件 Eclipse插件 Axis2

2008-12-22

mod_jk2.dll

mod_jk2.dll是apache和tomcat结合的插件

2008-11-12

resin 结合apache的插件mod_caucho.dll

resin 结合apache的插件mod_caucho.dll

2008-11-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除