
架构设计
文章平均质量分 67
A__17
这个作者很懒,什么都没留下…
展开
-
分布式事务
2PC和3PC:都是以集中式的方式实现分布式事物,这种方法都存在两个共同的缺点,一个是同步执行性能差,一个是没有解决数据不一致的问题。分布式消息确保事物最终一致性的方案就出现了。TCC:适用于执行时间确定且较短,实时性要求高,对数据一致性要求高,比如互联网金融企业最核心的三个服务:交易、支付、账务。本地消息表/MQ 事务:适用于事务中参与方支持操作幂等,对一致性要求不高,业务上能容忍数据不一致到一个人工检查周期,事务涉及的参与方、参与环节较少,业务上有对账/校验系统兜底。原创 2023-11-29 22:11:58 · 1061 阅读 · 0 评论 -
单元化架构的思考
还是以核心系统为例,核心系统在同城两个数据中心同时部署,共同对外提供服务,实现应用层的多活,但是该模式还是存在一个主库,所以在同城另外一个中心发起的交易存在跨中心的数据访问,对于SQL数较多的交易影响明显。如果可以用一种“轻量级”的解决方案解决“多活”建设的诉求,其实是为银行的“多活”架构建设提供了一条新的建设路径,尤其是针对很多科技能力、科技投入相对大行较低、较少的中小银行,既满足了诉求,又降低了建设难度。同时,在应用层可以实现故障面更小的影响,满足银行进行“多活”建设的最高诉求,既故障影响最小。原创 2023-10-30 19:13:31 · 609 阅读 · 0 评论 -
单元化架构在金融行业的最佳实践
单元化架构在金融行业的最佳实践_51CTO博客_什么是单元化架构原创 2023-10-30 19:24:59 · 243 阅读 · 0 评论 -
用户中心——银行业务中台设计
在传统银行,只有在银行开立了账户的个人和企业才称之为客户。以个人为例,只有在银行开了储蓄账户(I类户、II类户)才会被银行纳入客户管理范围,银行只对这些客户提供服务,或进行分析、营销、关系维护等管理工作。而互联网企业的客户定义范围则大得多,即使是没有进行用户注册的普通游客,也在互联网企业的客户范畴内。客户定义是传统银行与互联网企业的最大差异点,这让互联网企业可以经营的客户范围远远大于传统银行,因而经营效果也远超银行。转载 2022-12-09 20:11:24 · 2466 阅读 · 0 评论 -
什么是Service Mesh
Service Mesh 作为下一代微服务技术的代名词,初出茅庐却深得人心一鸣惊人,大有一统微服务时代的趋势。那么到底什么是 Service Mesh ?一言以蔽之:Service Mesh是微服务时代的TCP协议。有了这样一个感性的初步认知,我们再来看到底什么是 Service Mesh 。提到 Service Mesh ,就不得不提微服务。根据维基百科的定义:微服务 ( Microservices ) 是一种软件架构风格,它是以专注于单一责任与功能的小型功能区块 ( Small B转载 2021-08-10 21:03:01 · 502 阅读 · 0 评论 -
分布式链路追踪
前言现代Internet服务通常被实现为复杂的、大规模的分布式系统。这些应用程序是由软件模块的集合构成的,这些模块可能由不同的团队开发,可能使用不同的编程语言,可能跨越多个物理设施的数千台机器。在这样的环境中,帮助理解系统行为和对性能问题进行推理的工具是非常宝贵的。 现有的分布式追踪工具基本都是借鉴了 google 的Dapper来实现的。google dapper(dapper原文共14页,建议下载阅读)原理分布式系统中的调用链: 通过收集每一个server接收和发送消息的信息(消息标识符.原创 2021-05-19 00:19:13 · 703 阅读 · 0 评论 -
线程池中线程的数量
前言: 在设置线程池中线程的数量时,我们通常先会对任务的特性进行分析,根据任务的特性来确定一个大致的线程数并执行任务,然后依据任务执行的效果来适当地对线程数进行调整,最终找到最优的线程数。 线程池线程数量如何确定?CPU密集型任务Ncpu+1 个线程 减少上下文的切换,提高吞吐率。IO密集型任务 或 依赖外部资源型任务:2*Ncpu个线程,或者更多的线程,主要取决于等待外部资源的时间。 常见的外部资源: 任务需要调用其它系统的接口:在请求返回前,cpu处于空闲的状态,此时该线程.原创 2015-06-28 12:31:00 · 3004 阅读 · 0 评论 -
分布式基础
分布式 概念:多台机器同时存储数据和状态,彼此交换消息来保持数据一致,可视为一个完整的存储系统。分布式的CAP理论: Consistency、Availability、Tolerance to netword Partitions 在任何系统架构实现时只可能同时满足其中两点,无法三者兼顾。传统的关系型数据库的ACID只满足了Consistency、Availability,而在Par原创 2018-07-05 00:11:06 · 276 阅读 · 0 评论 -
常见的限流算法
令牌桶算法(Token Bucket)令牌桶是速率限制(Rate Limiting)中最常使用的一种算法桶容量大于零,并且是非延迟模式。如果桶中存在令牌,则允许突发流量,否则请求被拒绝。系统会按恒定1/QPS时间间隔(如果QPS=100,则间隔是10ms)往桶里加入Token.新请求来临时,会各自拿走一个Token,如果没有Token可拿了就阻塞或者拒绝服务.令牌桶的另外一个好处是可以方便的改变速...原创 2018-07-05 00:11:34 · 420 阅读 · 0 评论 -
MFS部署及运维
公司使用moosefs做图片存储,最近学习了一下,在此小小总结一下,主要分以下几部分:MFS概述、特性和新版改进 MFS 工作原理和设计架构 MFS的安装、部署、配置 MFS的高级特性 MFS的性能测试 MFS集群的维护 MFS的常见问题和建议对策一、MFS概述、特性和新版改进MooseFS是一个分布式存储的框架,其具有如下特性:Free(GPL) 通用文件系统,...转载 2019-12-09 16:52:06 · 698 阅读 · 0 评论 -
本地消息表实现最终一致性
背景传统的单体应用不会横跨多个数据库,可以通过单机事务保证一致性。然而在海量数据的场景下,我需要对数据库做拆分,即分库分表,而Cobar、MyCat这类分库分表中间件并不提供分布式事务的特性,并且基于二阶段提交的分布式事务性能较差,对于大多数业务场景来说,并不需要强一致,只需要保证最终一致性即可。实践下面我们举个下订单的场景,总共有3个实体,商品、用户、订单,我们按照user_id来sharding。所以相同user_id的用户和订单在同一个物理库下,而商品表中不存在user_id,所以商品表在转载 2021-03-25 14:59:00 · 928 阅读 · 0 评论 -
RPC
分布式对象模型框架RMI:RMI(Remote Method Invoke): 概念:RMI是jdk提供的远程方法调用框架,它封装了所有底层通信的细节,并且解决了编组、分布式垃圾收集、安全检查以及并发性等通用问题。 说明:RMI框架要求客户端和服务端都是Java应用。 原理:RMI采用客户端/服务端通信的方式,在服务器上部署提供服务的远程对象,客户端请求访问服务器上远程对象的方法。原创 2016-12-10 01:00:00 · 1427 阅读 · 0 评论 -
nginx.conf
===========================================================================nginx.conf===========================================================================user nobody;# 指定nginx worker进程运行用户...原创 2018-06-22 23:18:34 · 287 阅读 · 0 评论 -
zookeeper
分布式服务框架 Zookeeper 概念:为分布式应用系统提供一致性服务,是一个典型的分布式数据一致性解决方案。 原理:通过管理(存储/读取)数据节点和监听数据节点的状态变化来实现基于数据的集群管理。 特性: 高性能:Zookeeper将所有的数据都保存在内存中,故读取数据很快。 高可用:支持以集群部署。 角色: Zookeeper集群: 概念:Zookeep...原创 2019-08-21 22:51:51 · 264 阅读 · 0 评论 -
事件机制
事件机制 相关概念: 事件EventObject 事件生成器 事件的产生者,生成事件后,使用事件发布器发布事件。 事件生成器工厂 生产多种类型的事件生成器 事件发布器EventPublisher 发布事件:将事件发布到广播器中。 事件广播器 通知在事件监听器注册表中注册的事件监听器。即将事件dispatch到对应的监听器上。 事件监听器E...原创 2019-06-27 22:23:41 · 302 阅读 · 0 评论 -
Reactor线程模型
Reactor线程模式单Reactor单线程模型 概念:使用单个线程(以非阻塞IO的方式)处理所有的IO事件,包括连接、读写事件等。 优点:实现简单。 缺点:单线程可靠性差,并发较高时,处理速度慢。 说明:一般情况下,单线程模型很少被使用。单Reactor多线程模型 概念:使用一个线程来接收连接,使用一组线程来处理IO读写事件。 优点: 接收线程只接收连接,不处理IO...原创 2019-07-23 22:11:06 · 432 阅读 · 0 评论 -
阿里巴巴为什么不用 ZooKeeper 做服务发现?
2008 年底,淘宝开启一个叫做“五彩石”的内部重构项目,这个项目后来成为了淘宝服务化、面向分布式走自研之路,走出了互联网中间件体系之始,而淘宝服务注册中心 ConfigServer 于同年诞生。2008 年前后,Yahoo 这个曾经的互联网巨头开始逐渐在公开场合宣讲自己的大数据分布式协调产品 ZooKeeper,这个产品参考了 Google 发表的关于 Chubby 以及 Paxos 的论文...转载 2019-08-20 21:44:39 · 609 阅读 · 0 评论 -
Databus架构分析
1. 简介Databus是一个低延迟、可靠的、支持事务的、保持一致性的数据变更抓取系统。由LinkedIn于2013年开源。Databus通过挖掘数据库日志的方式,将数据库变更实时、可靠的从数据库拉取出来,业务可以通过定制化client实时获取变更并进行其他业务逻辑。Databus有以下特点:数据源和消费者之间的隔离。 数据传输能保证顺序性和至少一次交付的高可用性。 从变化流的任意时间点进行消费,包括通过bootstrap获取所有数据。 分区消费 源一致性保存,消费不成...转载 2020-05-30 16:14:46 · 1601 阅读 · 0 评论 -
UML建模-用例图
用例图主要用来描述角色以及角色与用例之间的连接关系。说明的是谁要使用系统,以及他们使用该系统可以做些什么。一个用例图包含了多个模型元素,如系统、参与者和用例,并且显示这些元素之间的各种关系,如泛化、关联和依赖。它展示了一个外部用户能够观察到的系统功能模型图。【用途】:帮助开发团队以一种可视化的方式理解系统的功能需求。一、用例图所包含的的元素1.参与者(Actor)——与应用程序或系统进行交互的用户、组织或外部系统。用一个小人表示。 2....转载 2021-03-04 20:10:33 · 847 阅读 · 1 评论 -
分布式事务
1、事务简介 事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。在关系数据库中,一个事务由一组SQL语句组成。事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。 原子性(atomicity):个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。 一致性(consistency):事务必须是使数据库从一个一致性状态变到另一个一致性状态,事务的中间状态不能被观察到的。...转载 2021-03-02 21:07:13 · 431 阅读 · 0 评论 -
服务网关
一、什么是服务网关服务网关 = 路由转发 + 过滤器1、路由转发:接收一切外界请求,转发到后端的微服务上去;2、过滤器:在服务网关中可以完成一系列的横切功能,例如权限校验、限流以及监控等,这些都可以通过过滤器完成(其实路由转发也是通过过滤器实现的)。二、为什么需要服务网关上述所说的横切功能(以权限校验为例)可以写在三个位置:每个服务自己实现一遍 写到一个公共的服务中,然后其他所有服务都依赖这个服务 写到服务网关的前置过滤器中,所有请求过来进行权限校验第一种,缺点太明显,基.转载 2020-12-03 17:27:29 · 689 阅读 · 0 评论 -
web服务架构演进
单体应用架构 概念:所有功能都在一个应用中实现。 场景:适合项目初期试错。 说明:用于简化增删改查工作量的数据访问框架(ORM)是关键。 优点:容易开发、测试,部署成本低(所需的机器很少)。 缺点:随着项目越来越复杂,团队不断扩大,单体应用的缺点就很容易显现出来了。 1>代码复杂度高:修改一个地方,很可能会影响到其它地方。 2>技术债越来越多:人员流动,不敢轻易动老代码。 3>持续部署困难:任何小的改动...原创 2020-10-23 20:39:13 · 438 阅读 · 0 评论