【编者按】此文是根据京东资深Java工程师张开涛11月21日在msup主办的into100沙龙第14期《京东商品详情页应对大流量的一些实践》演讲中的分享内容整理而成。以下为主题内容:大家来京东打开商品页一般会看到如通用版、闪购、全球购等不同的页面风格,这里面会牵扯到各种各样垂直化的模板页面渲染。以前的解决方案是做静态化,但是静态化一个很大的问题就是页面改版时 ......
405
0
0
2022-10-20
当一个系统访问量及用户量增加,数据库的数据也随之增加。当Mysql中一张表的记录数超过1000万,会出现性能的大幅下降,甚至一条简单的SQL查询都有可能阻塞整个数据库。这时需要对数据库的架构动态扩展设计如:水平分区,才能使系统达到友好的用户体验。示例图1示例图2水平分区设计思路水平分区技术:同一个数据库表中的记录通过Hash算法取模方式等拆成多张表,分别存储 ......
409
0
0
2022-07-10
在开发具有较高并发访问的系统时,大家知道的有哪些手段可以保护后端应用不被请求击垮?比如我们可以分析出有哪些服务的访问量较大,采用缓冲的方式提供数据。另外,目前分布式服务框架,例如Dubbo、以及Spring Cloud都提供了服务的治理功能,采用服务降级策略,可以提供Mock值的方式保护服务。当然,上面的办法明显时牺牲了用户体验,保全应用的做法,对有些场景的 ......
362
0
0
2022-04-20
前言缓存,设计的初衷是为了减少繁重的IO操作,增加系统并发能力。不管是 CPU多级缓存,page cache,还是我们业务中熟悉的 redis 缓存,本质都是将有限的热点数据存储在一个存取更快的存储介质中。计算机本身的缓存设计就是 CPU 采取多级缓存。那对我们服务来说,我们是不是也可以采用这种多级缓存的方式来组织我们的缓存数据。同时 redis 的存取都会 ......
443
0
0
2022-04-15
最近在看 UNIX 网络编程并研究了一下 Redis 的实现,感觉 Redis 的源代码十分适合阅读和分析,其中 I/O 多路复用(mutiplexing)部分的实现非常干净和优雅,在这里想对这部分的内容进行简单的整理。几种 I/O 模型为什么 Redis 中要使用 I/O 多路复用这种技术呢?首先,Redis 是跑在单线程中的,所有的操作都是按照顺序线性执 ......
412
0
0
2022-04-14
技术分析如果你比较关注现在的技术形式,就会知道微服务现在火的一塌糊涂,当然,事物都有两面性,微服务也不是解决技术,架构等问题的万能钥匙。如果服务化带来的利大于弊,菜菜还是推荐将系统服务化。随着服务化的进程的不断演化,各种概念以及技术随之而来。任何一种方案都是为了解决问题而存在。比如:熔断设计,接口幂等性设计,重试机制设计,还有今天菜菜要说的限流设计,等等这些 ......
404
0
0
2022-04-12
前言在分布式系统中,缓存和数据库同时存在时,如果有写操作的时候,先操作数据库还是先操作缓存呢?先思考一下,可能会存在哪些问题,再往下看。下面我分几种方案阐述。 缓存维护方案一假设有一写(线程A)一读(线程B)操作,先操作缓存,在操作数据库,如下流程图所示:1)线程A发起一个写操作,第一步del cache2)线程A第二步写入新数据到DB3)线程B发起一个读操 ......
350
0
0
2022-04-08
处理高并发无非就是四大的方法 分流、缓存、降级、限流1、分流实现方式最简单的是增加多台机器,目的是为了扩容基本思路是 tomcat(万以下,tomcat顶峰700并发)=》nginx(3-4万并发)=》lvs(30万并发)=》F5(百万并发)=》DNS集群负载均衡集群:tomcat、jboss、weblogic、websphere负载均衡:软件:nginx、 ......
400
0
0
2022-04-02