摘要: 背景 楼主有一台树莓派4B开发板(8G内存版),是目前的顶配机型。这一年来的业余时间,除了写Java、架构方面的文章,也陆续折腾了不少树莓派上的好玩小项目,在此新开一个树莓派实战的文章系列,分享给粉丝和读者。 什么是树莓派?树莓派是一个信用卡大小的单板计算机,ARM架构CPU,低功耗,可以7×24跑 阅读全文
posted @ 2022-07-10 23:15 Java烘焙师 阅读(2362) 评论(9) 推荐(11)
摘要: 正如飞机在起飞前,机长、副机长要过一遍checklist检查,确认没问题了才能起飞。楼主也整理了一个系统容量现状checklist,方便对照检查。本文搭配架构师必备:如何做容量预估和调优,食用更佳。 作为架构师,不要觉得系统容量是运维工程师才关心的问题,而应当对系统容量现状做到了如指掌。这样才能知道 阅读全文
posted @ 2022-06-13 09:11 Java烘焙师 阅读(756) 评论(0) 推荐(1)
摘要: 首先要回答一个问题,为何要使用HBase? 随着业务不断发展、数据量不断增大,MySQL数据库存在这些问题: MySQL支持的数据量为TB级,不能一直保留历史数据。而HBase支持的数据量为PB级,适合存储久远的历史冷数据 新增列的代价较高,数据量越大耗费时间越长。而HBase可以随意增加列,空列不 阅读全文
posted @ 2022-06-07 08:39 Java烘焙师 阅读(481) 评论(0) 推荐(0)
摘要: 背景 有2种常见的多维度查询场景,分别是: 带多个筛选条件的列表查询 不含分库分表列的其他维度查询 普通的数据库查询,很难实现上述需求场景,更不用提模糊查询、全文检索了。 下面结合楼主的经验和知识,介绍初级方案、进阶方案(上ElasticSearch),大部分情况下推荐使用ElasticSearch 阅读全文
posted @ 2022-05-22 11:06 Java烘焙师 阅读(839) 评论(0) 推荐(2)
摘要: 结论 有以下几种Redis集群方案,先说结论: Redis cluster:应当优先考虑使用Redis cluster。 codis:旧项目如果仍在使用codis,可继续使用,但也推荐迁移到Redis cluster。 twemproxy:不建议使用,与codis同为proxy方案,但不如codis 阅读全文
posted @ 2022-04-30 23:46 Java烘焙师 阅读(808) 评论(0) 推荐(0)
摘要: Spring cache是一个缓存API层,封装了对多种缓存的通用操作,可以借助注解方便地为程序添加缓存功能。 常见的注解有@Cacheable、@CachePut、@CacheEvict,有没有想过背后的原理是什么?楼主带着疑问,阅读完Spring cache的源码后,做一个简要总结。 先说结论, 阅读全文
posted @ 2022-03-30 10:14 Java烘焙师 阅读(950) 评论(0) 推荐(1)
摘要: 先说结论:本地缓存优先选用caffeine,因为性能比guava cache快,api风格与之兼容、能轻松地平滑迁移,并且在spring/spring boot最新版本中已经是默认本地缓存了。下面展开讲讲本地缓存和Spring cache。 本文讨论堆内缓存,暂不讨论堆外缓存。堆内缓存是指缓存与应用 阅读全文
posted @ 2022-02-28 23:58 Java烘焙师 阅读(698) 评论(0) 推荐(0)
摘要: 要在应用中做到幂等,其实并不难,本文尝试做一个系统性的总结,欢迎一起探讨。 什么是幂等 某个操作执行一次,跟执行多次的效果一样。幂等一词来自于数学中的幂等,即f(f(x)) = f(x)。 需要保证幂等的场景 查询类的读操作,天然是幂等的,多次调用不会有副作用。需考虑以下几种写操作的情况: 调用下游 阅读全文
posted @ 2022-01-14 00:04 Java烘焙师 阅读(761) 评论(2) 推荐(0)
摘要: 为了构建高并发、高可用的系统架构,压测、容量预估必不可少,在发现系统瓶颈后,需要有针对性地扩容、优化。结合楼主的经验和知识,本文做一个简单的总结,欢迎探讨。 #1、QPS保障目标 一开始就要明确定义QPS保障目标,以此来推算所需的服务、存储资源。可根据历史同期QPS,或者平时峰值的2到3倍估算。 压 阅读全文
posted @ 2021-12-24 00:39 Java烘焙师 阅读(921) 评论(0) 推荐(2)
摘要: 本文介绍如何应用Canal实现异步、解耦的架构,后续有空再写文章分析Canal原理和源代码。 Canal简介 Canal是用来获取数据库变更的中间件。 伪装自己为MySQL从库,拉取主库binlog并解析、处理。处理结果可发送给MQ,方便其他服务获取数据库变更消息,这一点非常有用。下面介绍一些典型用 阅读全文
posted @ 2021-11-27 00:15 Java烘焙师 阅读(1171) 评论(0) 推荐(0)