一、软件架构的定义       软件架构是开发项目和系统的蓝图,定义了必须由设计和实施团队执行的工作任务。架构是系统质量的主要载体,例如性能,可修改性和安全性,如果没有统一的架构愿景,这些都不能实现。架构是用于项目早期分析的工件,以确保设计方法将产生可接受的系统。通过构建有效的体系结构,我们可以识别设计风险并在开发过程的早期缓解它们。二、架构介绍的引子&nb
PBC架构颗粒度的描述 在开发复杂系统时,PBC(Process Based Component)架构颗粒度问题经常会引起讨论。合理的颗粒度设计可以提高系统的可维护性、可扩展性和可重用性。本文将详细介绍如何解决这一问题,从背景描述、技术原理到性能优化和案例分析,全面解析PBC架构颗粒度问题。 ```mermaid flowchart TD A[背景描述] --> B[技术原理]
原创 6月前
46阅读
测试用例是测试工作的核心。测试工作是讲究投入产出比的工作,这也是测试用例设计的指导思想。测试用例有度的概念,正如亚里士多德在《伦理学》中讨论道德为例:道德意味着过与不及之间的状态。面向测试用例,网上流传着这么一句话:“不同的机构会有不同的测试目的;相同的机构也可能有不同测试目的,可能是测试不同区域或是对同一区域的不同层次的测试”下面就列举测试用例设计的方方面面,看不同的团队,不同的测试目的,如何把
                                 &n
转载 2024-06-13 18:49:35
47阅读
在数据管理与应用中,MySQL的“颗粒度”问题指的是在设计和实施数据库时数据细节与层级的控制力度。合理的颗粒度可以提高数据库的查询效率与灵活性,而不当的颗粒度选择则可能导致性能瓶颈和维护难度上升。因此,本文将详细记录解决MySQL颗粒度问题的过程。 ### 环境预检 为确保成功实施MySQL颗粒度方案,首先需要进行环境预检。以下是四象限图和兼容性分析,确保不同配置的兼容性。 ```merma
原创 6月前
58阅读
# Redis分片颗粒度 ## 什么是Redis分片颗粒度? 在Redis中,分片是一种将数据分散存储在多个Redis实例中的方法,以提高性能和扩展性。在分片中,数据根据某种规则被分散到不同的节点中存储,从而形成一个整体的数据存储结构。而分片颗粒度则是指数据被分片的粒度大小,即将数据分片存储到多个节点的单位大小。 ## 为什么要关注Redis分片颗粒度? 正确选择和配置分片颗粒度对于Red
原创 2024-07-10 05:35:56
21阅读
最近经常与人探讨服务颗粒度的问题,大家总是觉得这个问题难以捉摸,各种各样的方法论、模型让人困惑。那么从S++的方法来看,服务的颗粒度是怎么确定的呢?让我们先从服务治理开始,从几个典型的例子来看如何梳理服务。服务治理的目标是建立理想的业务模型,其方法就是通过理解业务、划分业务、定义业务最终完成业务模型的建立。在治理之前,你可以对业务有所了解,也可以完全不懂,但治理之后你一定是个业务专家。S++治理的
  什么是服务的颗粒度?一般的说法,服务颗粒度(service granularity)就是指一个服务包含的功能大小。举个例子,对于电信九七系统中的营业受理来说,提交客户订单就是一个典型的粗粒度的服务,而实现这个提交订单服务的一系列内部操作,比如说创建客户资料,生成客户订单,记录产品属性,更新帐务关系等等就可能成为一系列细粒度的服务。细粒度的服务(fine-grained)提供相对较小的功能单元,
转载 2024-08-19 14:41:19
68阅读
前面我们学习了微服务的全景架构,了解到相对于传统单体架构,微服务的优势,以及系统服务化的发展趋势。对于新启动的项目,我们在权衡之后可以大方的使用微服务架构。但其实大部分情况下,我们还要去维护一些以前研发的单体系统,这些系统可能因为访问流量的膨胀、功能的扩张而显得非常臃肿不堪,急需要向微服务架构迁移。1 微服务迁移准备1、需对业务充分了解,这是服务拆分,通信设计,资源整合的必要前提。2、适应微服务架
1.1什么是锁?在计算机科学中,锁(lock)或互斥(mutex)是一种同步机制,用于在有许多执行线程的环境中强制对资源的访问限制。锁旨在强制实施互斥排他、并发控制策略。锁通常需要硬件支持才能有效实施。这种支持通常采取一个或多个原子指令的形式,如"test-and-set", "fetch-and-add" or "compare-and-swap"”。这些指令允许单个进程测试锁是否空闲,如果空闲
转载 2023-09-07 21:25:10
192阅读
在进行数据库应用开发时,许多开发者和DBA会遇到“SQL Server 锁颗粒度”的问题。锁颗粒度是指在事务处理过程中,数据库为保护数据完整性而施加的锁的范围。锁的颗粒度越细,锁定的数据就越少,但带来的开销也相对较大;反之,锁颗粒度越粗,锁定的数据就越多,但带来的开销较小。 $$ \text{锁颗粒度} = \frac{\text{锁定数据的数量}}{\text{事务并发度}} $$ 这个公式
原创 5月前
26阅读
# 微服务架构设计模式:拆解颗粒度 ## 引言 微服务架构是一种创新的架构模式,旨在通过将应用程序拆分为小的、独立的服务来实现灵活性和可扩展性。在微服务架构中,"颗粒度"指的是服务的大小和复杂度。合适的颗粒度不仅能提高系统的可维护性,还能增强团队的独立性。本文将探讨微服务架构中的颗粒度设计模式,并通过代码示例来展示其应用。 ## 微服务颗粒度的定义 在微服务架构中,颗粒度可以从多个维度进行
# MongoDB 事务锁的颗粒度 在 MongoDB 中,事务锁的颗粒度是指事务对数据进行操作时锁定的范围。MongoDB 支持两种类型的事务锁:行级锁和文档级锁。 ## 行级锁 行级锁是最小的锁粒度,在 MongoDB 中以文档的形式存在。当一个事务对某个文档进行读写操作时,将会对该文档加上行级锁,其他事务要访问该文档时需要等待锁释放。 ```markdown ```mermaid c
原创 2024-04-01 07:00:27
69阅读
在使用 SQL Server 管理高并发环境时,锁的颗粒度成为了性能优化中的一个重要议题。锁的颗粒度决定了 SQL Server 在并发执行多个事务时的效率和响应能力。把握这一点,对于数据库设计和应用性能至关重要。 > 根据 Microsoft 官方文档, "锁的颗粒度指的是锁定的资源范围,从行级到表级,甚至是数据库级,每种颗粒度都有其特定的使用场景,合理的锁策略能够帮助提升数据库的并发性能并减
原创 6月前
37阅读
 InnoDB支持行级锁和表级锁(默认行级锁),支持事务,外部键等;大量的insert和update更快等。只有通过索引条件检索数据,InnoDB 才使用行级锁,否则,InnoDB 将使用表锁。MyISAM是表级锁,不支持事务,大量的SELECT查询更快等BDB引擎支持页级锁和表级锁(默认页级锁) 行级锁行级锁是 MySQL 中锁定粒度最细的一种锁,表示只针对当前操作的行进行加
转载 2024-06-05 19:09:04
48阅读
# SQL Server Update 加锁颗粒度详解 在 SQL Server 中,当我们执行更新(UPDATE)操作时,数据库系统会自动管理并发访问,以保证数据的完整性和一致性。这一过程中,锁机制起到了至关重要的作用。本文将探讨 SQL Server 中的更新操作如何影响加锁颗粒度并包含相关代码示例。 ## 什么是加锁颗粒度? 加锁颗粒度指的是在数据库中施加锁的粒度程度,可以是数据库、表
原创 10月前
52阅读
测试用例颗粒度说明1. 颗粒度与测试的关系如果把测试用例设计得很细,照顾到每一个数据输入、每一个条件、每一个环境、每一个路径,那么测试用例的数量将是巨大的,虽然风险很小很小,但是测试效率会很低,并且测试执行没有思考的空间,可能使测试执行人员变得呆板(除非全部测试自动化),不需要创造力、思考。测试用例设计很粗,测试效率可能比较高,测试人员有一个发挥的空间,使测试更有趣,但这依赖于个人的责任
原创 5月前
22阅读
粒度与细粒度粒度与细粒度类的设计,为尽可能重用,所以采用细粒度的设计模式,将一个复杂的类(粗粒度)拆分成高度重用的职责清晰的类(细粒度)。   对于数据库的设计,原则:尽量减少表的数量与表与表之间的连接,能够设计成一个表的情况就不需要细分,所以可考虑使用粗粒度的设计方式。数据库访问控制的粗细粒度问题: 
通过调用方式示例,我们可以发现悲观锁基本都是在显式的锁定之后再操作同步资源,而乐观锁则直接去操作同步资源。那么,为何乐观锁能够做到不锁定同步资源也可以正确的实现线程同步呢?我们通过介绍乐观锁的主要实现方式 “CAS” 的技术原理来为大家解惑。CAS全称 Compare And Swap(比较与交换),是一种无锁算法。在不使用锁(没有线程被阻塞)的情况下实现多线程之间的变量同步。java.util.
.
原创 2022-06-01 11:39:11
396阅读
  • 1
  • 2
  • 3
  • 4
  • 5