聊聊admin服务的架构模式

2023-09-15
阅读 2 分钟
298
一般而言,一个服务提供的接口有的是C端用的,有的是给B端用的,还有的是给admin用的,对于admin服务该不该访问业务服务的数据库,这里通常会有很多分歧和实践模式。这里给admin服务的定义就是给admin后台系统的前端提供http接口的服务。

聊聊软件开发的REP、CCP、CRP原则

2022-04-06
阅读 1 分钟
2.8k
复用/发布等同原则The granular of reuse is the granular of release.软件复用的最小粒度应等同于其发布的最小粒度,需要有自己的发布版本号。

聊聊软件开发的SLAP原则

2022-04-05
阅读 7 分钟
2.3k
SALP即Single Level of Abstraction Principle的缩写,即单一抽象层次原则。在Robert C. Martin的<<Clean Code>>一书中的函数章节有提到:

技术文档画图工具箱

2022-04-01
阅读 3 分钟
2.9k
序本文主要介绍一下撰写技术文档中可能会用的一些画图工具。这里主要分为两大派,一派是直接拖拽完成,一派是通过代码来完成UI工具主要有processon、draw.io、excalidraw、archimatetool、cloudcraft.coprocesson架构图[链接]类图[链接]ER图[链接]用例图[链接]流程图[链接]拓扑图[链接]draw.io国内貌似访问不了,可以画C...

聊聊Guava的RateLimiter

2018-08-31
阅读 10 分钟
3.2k
guava-26.0-jre-sources.jar!/com/google/common/util/concurrent/RateLimiter.java

聊聊leaky bucket算法的实现

2018-08-30
阅读 2 分钟
8.6k
序 本文主要研究一下leaky bucket算法的实现 leaky bucket算法 bucket以一定速率滴水,相当于增加桶容量 bucket有其容量限制,请求过来时bucket满,则直接被抛弃 请求到来时,如果bucket不满,则放入bucket,相当于放行 简单实现 {代码...} 这个实现设计了lastLeakTimestamp字段,用于计算时间差,以及在这个时间段内需...

聊聊token bucket算法的实现

2018-08-28
阅读 3 分钟
7.3k
序 本文主要研究一下token bucket算法的实现 限流算法概述 主要有如下几种: 基于信号量Semaphore 只有数量维度,没有时间维度 基于fixed window 带上了时间维度,不过在两个窗口的临界点容易出现超出限流的情况,比如限制每分钟10个请求,在00:59请求了10次,在01:01又请求了10次,而从00:30-01:30这个时间窗口来看,这...

[case32]alibaba限流组件Sentinel实战

2018-08-12
阅读 3 分钟
4.5k
这里指定应用的端口为8080,与sentinel server通信端口为7080,sentinel server的地址为localhost:9999

ArchiMate分层概念

2017-03-18
阅读 1 分钟
2.5k
分层 Business Layer Application Layer Technology Layer 元素 所有的元素都归类于上面的三个层当中。 Business Layer Business actor Business role Business collaboration Business interface Business object Business process Business function Business interaction Business event Business service Representa...

业务应用报表生成方式

2016-12-27
阅读 1 分钟
2.2k
报表生成中,既有适用于定期生成大量报表的方式,也有适用于仅在必要时机生成必要报表的方式,因此结合所生成报表的特点就可以优化系统性能的使用和运维。

功能性与非功能性需求

2016-12-24
阅读 1 分钟
8.9k
功能性需求是指关于“想通过系统做什么”的需求。例如“想要扫描商品的条形码,价格就会在终端上显示出来”“想要统计昨天每个小时的销售额”等内容都是功能性需求。因为功能性需求与客户的日常工作有直接联系,所以很容易定义。

服务编排与去中心化

2016-11-14
阅读 1 分钟
8.5k
集中化的编排程序会通过一个进程对多个服务进行协调以完成大规模工作流。服务对工作流本身及所涉及的具体细节完全不知情。编排程序会处理复杂的安排和协调,例如强制规定不同服务的运行顺序,或对某个服务请求失败后重试。为确保编排程序了解执行进展,此时通信通常是同步的。使用编排程序最大的挑战在于要在一个集中位...

程序员必读之软件架构-笔记

2016-05-27
阅读 3 分钟
3.1k
质量属性:非功能需求(比如,性能、可扩展性、安全等)通常是技术方面的,也很难改造。理论上,这些都需要体现在初始的设计中,忽视这些属性会导致软件系统要么做得不够,要么做得太过。

XYZ伸缩立方

2016-05-01
阅读 1 分钟
2.2k
Z轴伸缩 也是把应用部署多份,不过每一份访问的只是整个数据库的不同子集,类似数据的分片。这种伸缩模式经常使用在数据库伸缩的场景。同样的,Z伸缩中也可能应用X伸缩的模式,即每个数据分片,启用多份的服务。同样的,Z伸缩也可以应用在X伸缩的服务中,即每个服务启用不同的分片。缺点就是得进行数据的路由和汇总。