转载至我的博客 https://www.infrastack.cn ,公众号:架构成长指南 当我们使用 Mysql数据库到达一定量级以后,性能就会逐步下降,而解决此类问题,常用的手段就是引入数据库中间件进行分库分表处理,比如使用 Mycat、ShadingShpere、tddl,但是这种都是过去式了 ...
在当今的互联网时代,微服务架构已经成为许多企业选择的架构模式,它能够提高系统的灵活性、可维护性和可扩展性。然而,微服务架构下的高可用性和弹性扩展是一个复杂的挑战。本文将介绍如何利用容器与中间件来实现微服务架构下的高可用性和弹性扩展的解决方案。 ...
原文链接:https://cwiki.apache.org/confluence/display/KAFKA/KIP-405%3A+Kafka+Tiered+Storage 译者:Kafka KIP-405是一篇非常优秀的多层存储的设计稿,不过此设计稿涉及内容很多,文章量大、严谨、知识点诸多。我们国 ...
架构设计师是系统开发的主体角色,他们通过执行一系列活动来实施架构设计。架构设计通过生成过程形成最终的产品架构,架构设计师的成果是创建架构。从图1可以看出,系统开发中架构设计师是整个系统的核心. ...
嗨,大家好!欢迎来到C-Shopping,这是一场揭开科技面纱的电商之旅。我是C-Shopping开源作者“继小鹏”,今天将为你介绍一款基于最新技术的开源电商平台。让我们一同探索吧! 点击 这里,http://shop.huanghanlian.com/,即刻踏上C-Shopping 体验之旅! 项 ...
概述 系统中的三高一般指:高并发、高吞吐、高可用。高并发指在某个时间点上能够接收多少并发访问。高吞吐主要关注处理的数据量。高可用指在部分服务出现故障后仍能对外提供服务。 高并发的核心指标 QPS(Query Per Second):每秒的请求或查询数量,在互联网领域指每秒响应的请求数量 TPS(Tr ...
阅读说明: 如果有排版格式问题,请移步 [《业务单系统架构设计心得(一)》](https://www.yuque.com/mrhuang-ire4d/oufb8x/ilud3u0w74sthfpo?singleDoc# 《业务单系统架构设计心得(一)》),选择宽屏模式效果更佳。 本文为原创文章,转发 ...
个人用户管理是业务系统中非常基础且重要的一个公共服务系统,我们写的绝大多数应用都和个人用户或会员有关,用户(会员)数据安全无小事,必须有一个完备的用户管理平台系统。 因为不同公司的主业务不同,个人用户管理的侧重点也会有不同,PowerDotNet这里介绍的个人用户管理平台,只是个人用户管理系统中很基 ...
一、从痛点中思考答案 痛点一:复杂系统的设计和逻辑碎片化散落,缺少沉淀导致系统后期维护、迭代以及架构升级都非常困难。 痛点二:由于新需求或新项目导致的系统的老旧逻辑梳理往往耗费大量人力,甚至造成人才的流失。 痛点三:多团队共建场景下需要参与各方了解跨应用系统的整体设计,沟通效率低成本高、共建初期花费 ...
一、业务背景 系统业务功能:系统内部进行数据处理及整合, 对外部系统提供结果数据的初始化(写)及查询数据结果服务。 系统网络架构: 部署架构对切量上线的影响 - 内部管理系统上线对其他系统的读业务无影响 分布式缓存可进行单独扩容, 与存储及查询功能升级无关 通过缓存层的隔离, 系统扩展期间外部系统可 ...
什么是布隆过滤器? 布隆过滤器是一种数据结构,具有快速插入和查找的特性,能确定某个字符串一定存在或者可能存在。布隆过滤器有着高效的空间利用率,它不存储具体数据,只存储数据的关键标识,所以占用的空间较小。它的查询结果可能会存在一定误差,但是误差总体可控,同时不支持删除操作。布隆过滤器的应用场景丰富,在 ...
在软件开发的世界里,虽然技术日新月异,但有些原则是经久不衰的。就像建房子需要坚实的地基,软件开发也有其基础原则。它们像是指南针,帮助开发者在变化莫测的技术海洋中保持方向。 ...
本篇我们讲红黑树的经典实现,Java中对红黑树的实现便采用的是经典红黑树。前一篇文章我们介绍过左倾红黑树,它相对来说比较简单,需要大家看完上篇再来看这一篇,因为旋转等基础知识不会再本篇文章中赘述。本篇的大部分内容参考 《算法导论》和 Java 实现红黑树的源码,希望大家能够有耐心的看完。 在正文开始 ...
本文聊一个程序员都会关注的问题:性能。当大家谈到“性能”时,你首先想到的会是什么?性能优化是一个复杂且多面的话题,涉及到代码的编写、系统的架构以及硬件的选择与配置。在追求性能的旅途中,我们需要掌握的知识有很多,既有软件方面的,也有硬件方面的,很多东西我也没有展开详细讲,只是给大家提供了一个引子,遇到... ...
一、背景 周所周知,Kafka是一个非常成熟的消息产品,开源社区也已经经历了多年的不断迭代,特性列表更是能装下好几马车,比如:幂等消息、事务支持、多副本高可用、ACL、Auto Rebalance、HW、Leader Epoch、Time Index、Producer Snapshot、Stream ...
1. 编程语言类型:首先,Python、C/C++、Java 都是强类型的编程语言。强类型的编程语言定义如下: 强类型的编程语言是一种强制类型定义的编程语言,即一旦某一个变量被定义类型,如果不经强制转换,那么它永远就是该数据类型。而弱类型的编程语言是一种弱类型定义的编程语言,某一个变量被定义类型,该 ...
微服务架构是一种软件开发模式,它将一个复杂的应用程序拆分为多个个独立的、小型的、可复用的服务,每个服务负责一个特定的业务功能。 微服务架构有许多优点,例如提高系统的可扩展性、可维护性、可测试性和故障容忍性。 但是,微服务架构也有很多问题需要注意,例如如何设计合理的划分服务接口、如何在服务间实现高效通 ...
1. 可演进的API 1.1. 随着需求的变化,你需要改变你的API,即代码之间的共享接口 1.2. 改变API很容易,但很难做到正确 1.3. 保持API小巧 1.3.1. 小巧的API更易于理解和演进 1.3.2. 只添加即刻需要的API方法或字段 1.3.3. 带有许多字段的API方法应该有合 ...
1. 行为准则 2. 需求的不确定性 2.1. 不断变化的客户需求 2.2. 软件项目无法避免的挑战 2.3. 产品需求和环境会随着时间的推移而改变,你的应用程序也必须随之改变 2.4. 不断变化的需求会导致不稳定性,使开发工作偏离轨道 2.5. 通过构建可演进的架构来适应不断变化的需求 2.5.1 ...