自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

庄梦蝶殇

架构设计是全局的,需要取舍,做好折中,只有阶段最合适。

  • 博客(27)
  • 资源 (5)
  • 收藏
  • 关注

原创 分布式架构设计篇(十一)-柔性事务之最大努力通知事务详解

​ - 概述 -咱们在上一篇文章探讨了事务消息,事务消息是基于MQ实现的一种异步事务。接下来咱们开始聊聊咱们分布式事务系列中的最后一个方案:最大努力通知事务。最大努力通知事务的主流实现仍是基于MQ来进行事务控制。最大努力通知事务和事务消息都是通知型事务,主要适用于那些需要异步更新数据,并且对数据的实时性要求较低...

2020-06-29 18:23:06 397

原创 分布式架构设计篇(九)-柔性事务之Saga详解

- 起源 -Saga模型起源于1987年 Hector Garcia-Molina,Kenneth Salem 发表的论文《Sagas》,是分布式事务相关概念最早出现的。Saga模型是把一个分布式事务拆分为多个本地事务,每个本地事务都有相应的执行模块和补偿模块(对应TCC中的Confirm和Can...

2020-06-23 16:40:18 1034

原创 分布式架构设计篇(四)-聊聊cap

- CAP的前世今生 -1.1 起源CAP理论,被戏称为“帽子理论”,CAP是Eric Brewer在2000年ACM研讨会上出了一个想法:“一致性、可用性和分区容错性三者无法在分布式系统中被同时满足,并且最多只能满足其中两个!”2002年,Seth Gilbert和Nancy Lynch采用反正法证明了猜想:“如果三者可同时满足,则因为允许P的存在,一定存在Server之间的丢包,如此则不能保证C。” 在该证明中,对CAP的定义进行了更明确的声明。C:一致性...

2020-05-29 20:58:32 285

原创 一致性算法 - Distro协议在Nacos的实践

- 引文 -​​​​本系列文章前面几篇已经总体介绍了一致性、AP的Gossip、CP的Raft。接下去咱们了解一个简单的AP协议:Distro协议。Distro是阿里巴巴的私有协议,目前流行的Nacos服务管理框架就采用了Distro协议。Distro 协议被定位为临时数据的一致性协议:该类型协议,不需要把数据存储到磁盘或者数据库,因为临时数据通常和服务器保持一个session会话,该会话只要存在,数据就不会丢失。Distro 协议保证写必须永远是成功的,即使可能会发生网...

2020-09-14 17:29:25 2264

原创 分布式架构设计篇(十三)-一致性算法概述

- 一致性定义 -提到一致性这个词,大家会想到外文中有几个单词,如CAP中的Consistency、Cache Coherence、区块链的Consensus。这三个单词在外文不同环境拥有不同的含义。但在汉字中统一可以翻译为“一致性”。因此在谈一致性之前,有必要对这几个概念做一个区分,否则很容易让人迷惑。 Coherence:出现在Cache Coherence 一词中,称为“缓存一致性”。 Consensus:准确翻译是共识,即多个提议者达成共识的过程,例如Paxos、...

2020-08-28 14:44:29 369

原创 一致性算法 - Raft协议实践(SOFAJRaft剖析)

​ - SOFAJRaft 概述 -咱们对Raft协议已经进行了原理的解析,接下去咱们从通过SOFAJRaft 框架的核心流程剖析加深对Raft协议的理解。SOFAJRaft 是一个纯 Java 的 Raft 算法实现库, 基于百度 braft 实现而来, 使用 Java 重写了所有功能, 支持: 领导人选举和基于优先级的半确...

2020-08-28 14:38:13 606 1

原创 一致性算法 - Raft协议流程详解

- 引文 -咱们上文整体的介绍了下Raft协议,Raft协议分区容忍的一致性协议的核心思想:一致性的保证不一定非要所有节点都保持一致,只要大多数节点更新了,对于整个分布式系统来说数据也是一致性的。Raft 协议将概念分解成:Leader election、Log replication、Safety。Raft 把一致性协议划分为 Leader 选举、MemberShip 变更、日志复制、Snapshot 等几个几乎完全解耦的模块,实现了模块化设计。Raft 设计原则是通过减少状态数量...

2020-08-03 11:27:57 827

原创 一致性算法 - Raft协议总述

- 起源-Raft协议起源于 2013 年 斯坦福 Diego Ongaro和John Ousterhout的论文《In Search of an Understandable Consensus Algorithm》。作者表示因为Paxos 晦涩难懂且缺乏工程实现,所以要设计个既容易实现又利于学生学习的一致性算法。Raft 的数据一致性等价于 Multi Paxos,可以用于取代Paxos,并且证明可以提供与Paxos相同的容错性以及性能。Raft协议是一种基于日志复制的一致性算...

2020-07-28 15:23:56 381

原创 一致性算法-Gossip协议实践(Memberlist)

- 引文 -咱们上文简单说了Gossip协议的原始方案,在真实场景有几百种变种,比较常见的Gossip 协议实现框架有:java:https://github.com/scalecube/scalecube-cluster scalecube(伸缩立方)社区go:https://github.com/hashicorp/memberlist hashicorp公司出品memberlist 是HashiCorp公司出品的go语言开发库,使用基于Gossip协议管理集群成...

2020-07-21 10:22:57 1885

原创 一致性算法-Gossip协议详解

- 起源 -Gossip protocol 也叫 Epidemic Protocol (流行病协议),是基于流行病传播方式的节点或者进程之间信息交换的协议。。Gossip protocol在1987年8月由施乐公司帕洛阿尔托研究中心研究员艾伦·德默斯(Alan Demers)发表在ACM上的论文《Epidemic Algorithms for Replicated Database Maintenance》中被提出。Gossip协议是基于六度分隔理论(Six Degrees of ...

2020-07-15 12:09:09 6894

原创 分布式架构设计篇(十二)-分布式事务总结篇

- 总述 -咱们前面分别对分布式事务的几个分支:XA、2PC、3PC、TCC、Saga、事务消息、最大努力事务进行的详细介绍。本篇作为分布式事务设计的收尾篇,讲对前面的内容查缺补漏和总结,最后对市面的一些开源框架做一些介绍。- 查缺补漏 -1.补偿型事务柔性事务分补偿型事务和通知型事务。但对补偿型事务没有进行详细介绍,那什么是补偿型事务呢,在Atomikos 公司Guy Pardon的论文《Business Activities》中有这样的描述:...

2020-07-08 11:43:35 332

原创 分布式架构设计篇(十)-柔性事务之事务消息详解

- 概述 -在 《柔性事务之TCC详解》 和《柔性事务之Saga详解》两文中我们详细剖析了柔性事务的第一个分支补偿型事务。在《刚性事务总结和柔性事务概述》中我们介绍过的柔性事务包含补偿型事务和通知型事务。通知型事务主要包含事务消息和最大努力通知型分布式事务两个组成。通知型事务的核心思想是通过MQ来通知其他事务参...

2020-06-22 19:55:21 486

原创 未来技术展望(一):混沌工程与ChaosBlade

- 起源 -混沌工程是在分布式系统上进行实验的学科, 目的是建立对系统抵御生产环境中失控条件的能力以及信心。由...

2020-06-20 14:22:50 750

原创 分布式架构设计篇(八)-柔性事务之TCC详解

- 起源 -TCC概念由Pat Helland于2007年发表的一篇名为《Life beyond Distributed Transactions:an Apostate’s Opinion》的论文提出, 在该论文中,TCC还是以Tentative-Confirmation-Cancellation命名。正式以Try-Confirm-Cancel作为名称的是Atomikos公司,并且还注册了TCC商标。国内最早可查引进TCC概念,应是阿里程立2008年在 软件开发2.0大会 上分享主...

2020-06-12 20:20:03 723

原创 分布式架构设计篇(七)-刚性事务总结和柔性事务概述

- 刚性事务总结 -在《分布式架构之设计篇-刚性事务之2PC详解》和《分布式架构之设计篇-刚性事务之3PC详解》二文中分析了分布式事务的本质、XA、2PC、3PC等等。但是没有说分布式事务的现象或者场景,我总结了分布式事务的触发场景大约有以下几种:1、跨数据库分布式事务:数据库的物理分割下保障跨库操作的ACID。2、跨服务分布式事务:服务的网络分割下保障多服务的事务完整性。3、混合式分布式事务:跨数据库分布式事务 + 跨服务分布式事务。最根本的原因就是事务参与者...

2020-06-05 20:06:46 549

原创 分布式架构设计篇(六)-刚性事务之3PC详解

2PC必须注意的问题咱们上文介绍了分布式事务的常见方案、类型划分、2PC的起源和流程。但是不幸的是2PC还是存在几个问题:1、全流程的同步阻塞:不管是第一阶段还是第二阶段,所有参与节点都是事务阻塞型。当参与者占有公共资源时,其他第三方访问公共资源可能不得不处于阻塞状态。2、TM单点故障:由于全流程依赖TM的协调,一旦TM发生故障。参与者会一直阻塞下去。尤其在第二阶段,TM发生故障,那么所有的参与者还都处于锁定事务资源的状态中,而无法继续完成事务操作。所有参与者必须等待TM重新上线(TM重新.

2020-05-31 10:58:08 445

原创 分布式架构设计篇(五)-刚性事务之2PC详解

分布式一致性分布式场景下,多个服务同时对服务一个流程,比如电商下单场景,需要支付服务进行支付、库存服务扣减库存、订单服务进行订单生成、物流服务更新物流信息等。如果某一个服务执行失败,或者网络不通引起的请求丢失,那么整个系统可能出现数据不一致的原因。上述场景就是分布式一致性问题,追根到底,分布式一致性的根本原因在于数据的分布式操作,引起的本地事务无法保障数据的原子性引起。分布式一致性问题的解决思路有两种,一种是分布式事务,一种是尽量通过业务流程避免分布式事务。分布式事务是直接解决...

2020-05-27 18:50:09 300

原创 7小时上线1个秒杀系统!!!!

本文基于东南某市的真实案例进行文字化整理,由林淮川/孙玄工作编写。首发于 微信公众号“架构之美”上,转载请保留。

2020-03-31 10:55:49 301 1

原创 分布式注册中心的思考和选型

一、概述在微服务时代,注册中心越来越被重视。服务治理逐渐跟业务服务并驾齐驱。所以本文想对注册中心进行体系化探索。注册中心,起源于分布式时代。不管是水平拆分架构 或者 ESB架构;对于多服务、多实例的支持,出现服务治理的需求,注册中心被用于服务治理中的服务发现、服务注册、服务探活三个功能与需求。架构师需要追寻事物的本质,才能设计使用好技术。那么注册中心的本质是什么:1、根据服务发现的需求...

2019-12-30 15:58:44 405 1

原创 分布式锁选型背后的架构思维(带源码)

此文为林淮川(鄙人)和玄姐(转转首席架构师)共同编写,发布在csdn和 架构之美工作号上。https://blog.csdn.net/jianxian89/article/details/103584137转载请保留!1. 分布式锁本质提到分布式锁,有很多实现,比如Redis分布式锁、ZooKeeper分布式锁、etcd分布式锁等。但是选择哪个更适合你的项目?在《基于CAP模型设计企...

2019-12-17 18:41:17 716

原创 Dubbo rest 协议简单示例

一、应用配置A、引入依赖 (jboss.resteasy 的版本为:3.6.2.Final)        B、配置web.xml(使用外部tomcat启动时) C、配置提供者        D、配置rest地址(类似Spring mvc Controller)       E、注意事项            1、使用外部容器时(比如部署到tom...

2018-12-10 10:58:39 1243

原创 quartz学习四--存储、集群

一、Quartz的存储和持久化    1、存储机制       Quartz 用 JobStores 对 Job、Trigger、calendar 和 Schduler 数据提供一种存储机制。       Scheduler 应用已配置的JobStore 来存储和获取到部署信息,并决定正被触发执行的 Job 的职责。       所有的关于哪个 Job 要执行和以什么时间表

2016-06-01 15:31:29 509

原创 quartz学习三--Spring集成

一、基础    1、依赖 jar       quartz-1.8.5.jar        spring-context-3.0.5.RELEASE.jar       spring-context-support-3.0.5.RELEASE.jar         2、Spring 与 Quartz       Spring-3.1 整合必须使用 Quartz-1.

2016-06-01 15:25:35 403

原创 quartz学习二--监听、排除日期、线程

一、Listener    1、基本概念       (1)、分类            JobListener        TriggerListener        SchedulerListener       (2)、作用            可以扩展框架并定制来做特定的事情。跟Spring,Hibernate,Servlet监听器类似.

2016-06-01 15:24:48 796

原创 quartz学习一--入门

一、概述    1、简介       (1)、项目创立于1998年, 不间断更新,活跃度高。       (2)、纯Java设计,设计用于JavaSE、JavaEE, 方便集成于:JVM、JMI       (3)、官网            http://www.quartz-scheduler.org/       (4)、cron表达式辅助工具

2016-06-01 15:24:12 543

原创 JPA 注解

一、Table注解    源代码: @Target({TYPE}) @Retention(RUNTIME)        public @interface Table {            String name()                default "";        --->    实体所对应表的名称,默认表名为实体的名称。            Strin

2012-03-12 09:35:40 765

原创 Oracle入门

一、Oracle初识    1、oracle监听配置                        ---->        作用:类似于Mysql的连接        a、"开始" --> "所有程序" --> "Oracle..." --> "配置和移植工具" --> "Net manager"        b、Oracle Net配置" --> "本地" --> "服务命名

2012-03-12 09:30:33 218

附件九-rpc论文译文.pdf

《Implementing Remote Procedure Calls》译文,了解rpc机制的最佳方案。 本文描述一个提供了远程调用工具的软件包,面对这样一个软件包时一 个设计者拥有的选项,以及我们做出的选择。我们描述了我们的RPC机制的整体结 构,用于绑定RPC客户端的工具,传输通信层协议,以及一些性能测量。包括用于实现高性能和最小化集群间负载的一些优化的描述。

2020-06-20

JSON-RPC 2.0 规范(中文版)

JSON-RPC 2.0 规范(中文版)。 JSON-RPC是一个无状态且轻量级的远程过程调用(RPC)协议。 本规范主要定义了一些数据结构及其相关的处理规则。它允许运行在基于socket,http等诸多不同消息传输环境的同一进程中。其使用JSON(RFC 4627)作为数据格式。

2018-11-16

EditPlus 5汉化包(汉文博士翻译版)

EditPlus 5汉化包(汉文博士翻译版)。 可处理文本、HTML和程序语言的文字编辑器,通过设置用户工具可以将它作为C/Java/Php等语言的简单IDE调试编辑工具,它支持HTML、PHP、Java、C / C ++、CSS、ASP、Perl、JavaScript、VBScript、Python、Ruby on Rails语法突出显示,可以基于自定义语法文件对其它编程语言进行扩展。它还具有FTP/FTPS/sftp功能、十六进制查看器,HTML编辑器,cliptext,颜色标记、监视剪贴板、强大的搜索和替换、定制键盘快捷方式等功能。它内置完整的HTML/CSS1指令功能,可以用记事本编辑网页,支持直接在IE浏览器内编辑预览网页。

2018-10-15

(ThinkinJava4)Java编程思想第四版完整中文高清版.pdf 源码和答案

java 编程思想,第四版 中文版 pdf格式,还附有源码及答案哦,经典呀,赶快了

2013-04-09

JavaEE 5 api (中文)

自己编译的api, 搜索不是很好用. 但是文档信息绝对中文. 骗子死全家!(请都点几个类在下结论.因为里面的包介绍有些是英文.)

2012-03-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除