<sup id="6oea2"></sup>
<acronym id="6oea2"><center id="6oea2"></center></acronym>
<acronym id="6oea2"><small id="6oea2"></small></acronym>
<rt id="6oea2"><small id="6oea2"></small></rt><rt id="6oea2"><small id="6oea2"></small></rt><rt id="6oea2"><small id="6oea2"></small></rt>
<acronym id="6oea2"><center id="6oea2"></center></acronym>
<acronym id="6oea2"><div id="6oea2"></div></acronym>
<rt id="6oea2"><optgroup id="6oea2"></optgroup></rt>
摘要: 正如飞机在起飞前,机长、副机长要过一遍checklist检查,确认没问题了才能起飞。楼主也整理了一个系统容量现状checklist,方便对照检查。本文搭配架构师必备:如何做容量预估和调优,食用更佳。 作为架构师,不要觉得系统容量是运维工程师才关心的问题,而应当对系统容量现状做到了如指掌。这样才能知道 阅读全文
posted @ 2022-06-13 09:11 Java烘焙师 阅读(301) 评论(0) 推荐(1) 编辑
摘要: 首先要回答一个问题,为何要使用HBase? 随着业务不断发展、数据量不断增大,MySQL数据库存在这些问题: MySQL支持的数据量为TB级,不能一直保留历史数据。而HBase支持的数据量为PB级,适合存储久远的历史冷数据 新增列的代价较高,数据量越大耗费时间越长。而HBase可以随意增加列,空列不 阅读全文
posted @ 2022-06-07 08:39 Java烘焙师 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 背景 有2种常见的多维度查询场景,分别是: 带多个筛选条件的列表查询 不含分库分表列的其他维度查询 普通的数据库查询,很难实现上述需求场景,更不用提模糊查询、全文检索了。 下面结合楼主的经验和知识,介绍初级方案、进阶方案(上ElasticSearch),大部分情况下推荐使用ElasticSearch 阅读全文
posted @ 2022-05-22 11:06 Java烘焙师 阅读(254) 评论(0) 推荐(2) 编辑
摘要: 结论 有以下几种Redis集群方案,先说结论: Redis cluster:应当优先考虑使用Redis cluster。 codis:旧项目如果仍在使用codis,可继续使用,但也推荐迁移到Redis cluster。 twemproxy:不建议使用,与codis同为proxy方案,但不如codis 阅读全文
posted @ 2022-04-30 23:46 Java烘焙师 阅读(213) 评论(0) 推荐(0) 编辑
摘要: Spring cache是一个缓存API层,封装了对多种缓存的通用操作,可以借助注解方便地为程序添加缓存功能。 常见的注解有@Cacheable、@CachePut、@CacheEvict,有没有想过背后的原理是什么?楼主带着疑问,阅读完Spring cache的源码后,做一个简要总结。 先说结论, 阅读全文
posted @ 2022-03-30 10:14 Java烘焙师 阅读(287) 评论(0) 推荐(1) 编辑
摘要: 先说结论:本地缓存优先选用caffeine,因为性能比guava cache快,api风格与之兼容、能轻松地平滑迁移,并且在spring/spring boot最新版本中已经是默认本地缓存了。下面展开讲讲本地缓存和Spring cache。 本文讨论堆内缓存,暂不讨论堆外缓存。堆内缓存是指缓存与应用 阅读全文
posted @ 2022-02-28 23:58 Java烘焙师 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 要在应用中做到幂等,其实并不难,本文尝试做一个系统性的总结,欢迎一起探讨。 什么是幂等 某个操作执行一次,跟执行多次的效果一样。幂等一词来自于数学中的幂等,即f(f(x)) = f(x)。 需要保证幂等的场景 查询类的读操作,天然是幂等的,多次调用不会有副作用。需考虑以下几种写操作的情况: 调用下游 阅读全文
posted @ 2022-01-14 00:04 Java烘焙师 阅读(518) 评论(2) 推荐(0) 编辑
摘要: 为了构建高并发、高可用的系统架构,压测、容量预估必不可少,在发现系统瓶颈后,需要有针对性地扩容、优化。结合楼主的经验和知识,本文做一个简单的总结,欢迎探讨。 #1、QPS保障目标 一开始就要明确定义QPS保障目标,以此来推算所需的服务、存储资源。可根据历史同期QPS,或者平时峰值的2到3倍估算。 压 阅读全文
posted @ 2021-12-24 00:39 Java烘焙师 阅读(589) 评论(0) 推荐(2) 编辑
摘要: 本文介绍如何应用Canal实现异步、解耦的架构,后续有空再写文章分析Canal原理和源代码。 Canal简介 Canal是用来获取数据库变更的中间件。 伪装自己为MySQL从库,拉取主库binlog并解析、处理。处理结果可发送给MQ,方便其他服务获取数据库变更消息,这一点非常有用。下面介绍一些典型用 阅读全文
posted @ 2021-11-27 00:15 Java烘焙师 阅读(483) 评论(0) 推荐(0) 编辑
摘要: 上一篇文章介绍了MySQL主从同步的原理和应用,本文总结了MySQL主从延迟的原因和解决办法。如果主从延迟过大,会影响到业务,应当采用合适的解决方案。 MySQL主从延迟的表现 先insert或update写入更新操作,再立即select查询,但是得不到最新的结果。 可通过show slave st 阅读全文
posted @ 2021-10-16 20:49 Java烘焙师 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 日常工作中,MySQL数据库是必不可少的存储,其中读写分离基本是标配,而这背后需要MySQL开启主从同步,形成一主一从、或一主多从的架构,掌握主从同步的原理和知道如何实际应用,是一个架构师的必备技能。楼主将在本文做总结,看这一篇就够了。 1、主从同步原理 主从同步架构图(异步同步) 这是最常见的主从 阅读全文
posted @ 2021-10-08 23:57 Java烘焙师 阅读(716) 评论(0) 推荐(0) 编辑
摘要: 按楼主的经验和知识,本文总结了应用开发中的各种存储架构,从易到难,从起步到起飞。如有不对之处,欢迎留言。 1、单库 最简单的初始架构,适用于千万级以下的数据,并发量低的场景。 单库、单表 或单库、多个分表:之所以分表是为了给后续分库做预留准备 2、分库分表、读写分离 最常见的存储架构,适用于十亿级别 阅读全文
posted @ 2021-09-27 09:40 Java烘焙师 阅读(344) 评论(0) 推荐(2) 编辑
摘要: 通常,如果我们要在程序中做一个耗时的操作(例如调用其他外部模块),一般会通过异步的方式执行。使用Spring @Async注解,修饰在需要异步执行的方法上,即可方便地让代码在新线程中异步执行。 对于Spring @Async注解的方法,如何进行异常处理呢?楼主想到了2种方法。方法一:配置AsyncUncaughtExceptionHandler(对于无返回值的方法), 方法二:通过AsyncResult捕获异常(对于有返回值的方法) 阅读全文
posted @ 2017-10-28 16:26 Java烘焙师 阅读(10871) 评论(0) 推荐(2) 编辑
摘要: 平时大家的工作一般是基于开发框架进行的(比如Spring MVC,或Spring Boot),所以会有相应特定的异常处理方法,这篇文章要介绍的就是web应用中的异常处理。 想快速解决问题的小伙伴可以只看“解决办法”,想进一步了解细节的小伙伴还可以看“深入剖析”部分。 阅读全文
posted @ 2017-10-01 11:35 Java烘焙师 阅读(1315) 评论(0) 推荐(1) 编辑
摘要: 在普通的单线程程序中,捕获异常只需要通过try ... catch ... finally ...代码块就可以了。那么,在并发情况下,比如在父线程中启动了子线程,如何正确捕获子线程中的异常,从而进行相应的处理呢? 也许有人会觉得,很简单嘛,直接在父线程启动子线程的地方try ... catch一把就可以了,其实这是不对的。楼主想到了3种通用解决办法,分享给大家。 阅读全文
posted @ 2017-09-25 23:40 Java烘焙师 阅读(16035) 评论(0) 推荐(8) 编辑
亚洲性爱无码区