系统设计
文章平均质量分 87
尘世间一名迷途小码农
热衷于用技术思维去解决问题,厌恶低效,热衷自动化和智能化,释放人的创造性。
InfoQ博客:www.infoq.cn/u/justyman
展开
-
架构范式一 - 事件驱动架构(EDA)
EDA 是一种基于发布/订阅模式的消息异步通信的架构,你可以把它理解为架构层面的观察者模式,它主要分为以下7个核心对象。大致流程为:第一,因为它是异步的,因此特别适合以下:第二,如果业务模式的整个主流程不强调强一致性且流程变化很快的,则可以适当的考虑这种架构。第三、因为它是通过管道进行异步通信,如果你的系统是那些对交易实时性要求较高的或者是跟2C端页面交互强关联的,则不太建议使用该异步架构。...原创 2022-07-02 19:40:25 · 7232 阅读 · 3 评论 -
如何做好技术选型和分析决策
一、前言技术人一般都喜欢研究技术,但是如果你问他一般技术选型到底怎么做,估计他一下子懵掉了。因为一般来说,技术人可能更关注于学习什么新技术,反而更少去了解怎么选择一种合适的技术手段去解决业务问题。因为平时日常工作也需要涉及到这块领域,因此心里一直想想总结一下,毕竟作为一个十几年的老司机,在做技术选型的时候如果完全都是随心所欲的话,那就真的太水了吧。首先,技术选型它会涉及到方方面面的因素,例如市场上的人员招聘难度、技术组件的社区活跃度、文档丰富程度、具体落地案例、后期运维复杂度、人员学习成本等原创 2021-06-27 10:03:08 · 1119 阅读 · 0 评论 -
Redis Sharding集群跟一致性哈希有什么瓜葛?
目录一、前言二、Redis sharding集群1、概念及优劣:2、数据倾斜问题3、数据丢失问题4、应用三、后话四、参考一、前言最近在所负责的某些系统上遇到了一些Redis相关的问题,刚好在朋友圈聊到Cluster和Sharding这方面的东西,发现有些地方比较模糊,考虑到之前也整理了关于Sentinel集群模式,趁着有点力气整理一下Sharding的一些相关资料。Cluster模式后面有时间再补充吧。二、Redis sharding集群1、概..原创 2020-10-11 23:03:00 · 1062 阅读 · 0 评论 -
16种设计思想 - Design for failure
一直在说互联网系统应该是design for failure,今天看到的这篇文介绍的虽是简单几句话,但妥妥的设计思想,还是蛮契合SRE精髓。作为一名designer或者developer,应该要对墨菲定律心存敬畏,以下讲一下我对这16中设计思想的一个大致看法吧。1、防御性设计(Defensive Design)所谓的防御性设计实际上就是“防呆”,英文叫Idiot Proofing。说白了就是用户有时候会不自觉的做一些蠢事,我们在设计的时候要尽量考虑到一些不规范的交互行为,如果你的用户是一只猴子.原创 2020-07-06 00:45:41 · 1947 阅读 · 1 评论 -
API接口设计最佳实践
目录目录前言API接口设计Token设计API接口设计原则1、明确协议规范2、统一接口路径规范3、统一接口版本管理4、为你的接口设定调用门槛5、接口返回规范6、接口安全规范7、幂等性8、接口设计的一些最佳实践API接口管理前言最近团队内部在做故障复盘的时候发现有很多故障都是因为接口设计不当导致的,这里我就整理归纳一下在接口设计层面需要...原创 2019-12-01 20:33:32 · 3170 阅读 · 0 评论