
软件架构
文章平均质量分 91
软件架构实战
夏之七
立足小世界,日积跬步;沟通大世界,万川映月。
展开
-
熔断机制:预防一个服务故障导致整个系统崩掉
一、引言一个系统通常包含多个服务,服务之间的数据顺利交互,是整个系统能够正常工作的基本要求。但实际应用中,不少人会经常遇到某个服务异常工作后,整个系统随之崩掉的情况,这种情况我们应该如何预防和处理呢?本章节的内容希望能够给你带来些启发。二、场景介绍2.1 接口简述一个新零售架构系统中 ,有一个通用用户服务,很多页面都会使用,它包含两个接口。第一个接口:用户态接口接口功能:返回用户车辆所在位置。使用业务:在用户信息展示页面会使用到,比如客服系统中的用户信息页面。数据来源:对接第三方系统,原创 2022-04-03 13:43:07 · 1969 阅读 · 0 评论 -
Elasticsearch: 这些坑你踩了吗?
一、引言本文罗列多数人使用Elasticsearch时可能会遇到的一些坑点,供大家参考、讨论、补充。二、坑1:ES是准实时的?为了验证这个坑是否是真坑,大家可以自己手动测试一下:当更到数据到ES并且返回提示成功这一瞬间,立马通过ES查询,查看返回的数据是不是最新的。思考:若查询到的数据是最新的,这个坑不算坑,可以填土了;而如果不是最新的数据,那么背后的原因是什么?如果你还没有做验证,不要紧,我们一起来看下ES数据索引的整个过程,也许你从中也会找到蛛丝马迹。|| 数据索引整个过程数据原创 2022-03-18 16:47:33 · 3058 阅读 · 1 评论 -
Elasticsearch: 如何设计表结构
一、 引言全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 Elastic)是目前全文搜索引擎的首选。它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。Elastic 的底层是开源库 Lucene。但是,你没法直接用 Lucene,必须自己写代码去调用它的接口。Elastic 是 Lucene 的封装,提供了 REST API 的操作接口,开箱即用。Elasticsearch 在分布式开源搜索和分析引擎中处于领先地位,能在短原创 2022-03-17 15:32:09 · 6994 阅读 · 0 评论 -
读缓存:如何减少数据库读操作压力
一、引言一个电商系统,存放了10万多条商品数据,每次用户浏览商品详情页时,需要先从数据库读取数据,再进行数据拼装和计算,,耗费的时间有时长达1s。从而导致页面打开速度慢。面对这种问题,我们应该如何解决?二、本地缓存关于缓存问题,最简单的实现方法是使用本地缓存。在Google Guava中有一个cache内存缓存模型,它把所有商品的ID与商品详情信息一对一缓存在JVM内存中,用户获取商品详情数据时,系统会根据商品ID直接从缓存中读取数据,大大提升了用户界面访问速度。咋一看,实现流程似乎简单、实用原创 2022-03-15 17:08:54 · 2661 阅读 · 0 评论 -
分库分表:如何解决数据量大读写缓慢
一、 引言一个系统,目前订单数据量已达上亿,并且每日以百万级别的速度增长,甚至之后还可能是千万级。面对如此庞大的数据量,那么一旦数据量疯狂增长,必然造成读写缓慢。那么,为了使系统能够抗住千万级数据量的压力,都有哪些解决方案呢?二、 分表分库当数据库表读写缓慢的时候,我们第一时间考虑到的是优化程序读写模块,调整软件架构;不过,对于单库单表而言,一旦数据量疯狂增长,无论是IO还是会CPU都会扛不住,单单从软件上来解决优化效果有限。我们这里要介绍的解决方案是:分表分库,即先将表进行拆分,再进行分布原创 2022-03-15 14:56:23 · 7125 阅读 · 2 评论