系统架构战略体系 系统架构战略体系分布式系统理念FLPCAPBASE分布式共识算法PaxosRaftGossip架构设计方法论架构设计方法论分而治之人类解决复杂问题的根本方法:分而治之,把复杂问题拆解成若干足够小的问题关注点分离好的架构必须使每个关注点相互分离,也就是说系统中的一个部分发生了变化,不会影响其他部分。即使需要改变,也能够清晰地识别出那些部分需要改变。如果需要扩展架构,影响将会最小化,已经可以工作的每个部分都将继续工作。架构设计思维架构设
关于高可用的系统 在《这多年来我一直在钻研的技术》这篇文章中,我讲述了一下,我这么多年来一直在关注的技术领域,其中我多次提到了工业级的软件,我还以为有很多人会问我怎么定义工业级?以及一个高可用性的软件系统应该要怎么干出来?这样我也可以顺理成章的写下这篇文章,但是没有人问,那么,我只好厚颜无耻的自己写下这篇文章了。哈哈。另外,我在一些讨论高可用系统的地方看到大家只讨论各个公司的技术方案,其实,高可用的系统并不简单的是技术方案,一个高可用的系统其实还包括很多别的东西,所以,我觉得大家对高可用的系统了解的还不全面,为了让大家的
为什么集群需要 Overlay 网络 对计算机网络或者 Kubernetes 网络稍有了解的工程师都应该听说过延展网络(Overlay Network),Overlay 网络其实并不是一门新技术,它是指构建在另一个网络上的计算机网络1,这是一种网络虚拟化技术的形式,近年来云计算虚拟化技术的演进促进了网络虚拟化技术的应用2。图 1 - 延展网络因为 Overlay 网络是建立在另一个计算机网络之上的虚拟网络,所以它不能独立出现,Overlay 底层依赖的网络就是 Underlay 网络,这两个概念也经常成对出现。Underlay
如何正确的开始用 Go 编程 本文会演示简单的 Go 软件包的开发过程,并介绍了go命令行工具,这是我们获取,构建和安装 Go 软件包和命令的标准方法。go 工具要求你以特定方式组织代码。我们会介绍 Go 安装启动和运行的最简单方法,一定要仔细阅读啊。组织代码结构概要Go 程序员一般会将他们的源代码存放在一个工作区中(多个项目放在一个工作区) 工作区中包含许多由 git 管理的代码仓库(也可以是其他版本控...
理解Kubernetes网络之Flannel网络 1、Docker网络模式在讨论Kubernetes网络之前,让我们先来看一下Docker网络。Docker采用插件化的网络模式,默认提供bridge、host、none、overlay、maclan和Network plugins这几种网络模式,运行容器时可以通过–network参数设置具体使用那一种模式。bridge:这是Docker默认的网络驱动,此模式会为每一个容器分配Network...
关于如何实现一个TCC分布式事务框架的一点思考 一个TCC事务框架需要解决的当然是分布式事务的管理。关于TCC事务机制的介绍,可以参考TCC事务机制简介。TCC事务模型虽然说起来简单,然而要基于TCC实现一个通用的分布式事务框架,却比它看上去要复杂的多,不只是简单的调用一下Confirm/Cancel业务就可以了的。本文将以Spring容器为例,试图分析一下,实现一个通用的TCC分布式事务框架需要注意的一些问题。一、TCC全局事务必须...
TXC分布式事务介绍 1. TXC是什么TXC(Taobao Transaction Constructor)是阿里巴巴的一个分布式事务中间件,它可以通过极少的代码侵入,实现分布式事务。在大部分情况下,应用只需要引入TXC Client的jar包,进行几项简单配置,以及以行计的代码改造,即可轻松保证分布式数据一致性。TXC同时提供了丰富的编程和配置策略,以适应各种长尾的应用需求。2. 背景2.1. ...
十分钟入门RocketMQ 本文首先引出消息中间件通常需要解决哪些问题,在解决这些问题当中会遇到什么困难,Apache RocketMQ作为阿里开源的一款高性能、高吞吐量的分布式消息中间件否可以解决,规范中如何定义这些问题。然后本文将介绍RocketMQ的架构设计,以期让读者快速了解RocketMQ。消息中间件需要解决哪些问题?Publish/Subscribe发布订阅是消息中间件的最基本功能,也是相对于传统...
RocketMQ、Kafka、RabbitMQ的详细对比 引言分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦。现在开源的消息中间件有很多,目前对Kafka、RabbitMQ、RocketMQ这三个消息中间件做下对比分析。- - kafka RocketMQ RabbitMQ 定位 设计定位 系统间的数据流管道,实时数据处理。 例如:常规的消息系统、网站活性跟踪,监控数据,...
JVM Thread Dump日志结构解析 这篇文章首先对Thread Dump日志文件的结构进行分析。目录 [隐藏]1 第一部分:Full thread dump identifier 2 第二部分:Java EE middleware, third party & custom application Threads 3 第三部分:HotSpot VM Thread 3.1 "Attach Listener" ...
一文看懂互联网反欺诈体系建设 反欺诈作为一个职能,在互联网、金融、传统零售等各行各业广泛的存在。反欺诈是一个跨安全、风控、数据、研发、内控等多学科的一个新兴领域。本文结合近年来互联网领域内的反欺诈现状,针对互联网反欺诈体系建设过程中的经验和教训进行了简单的总结和罗列。❶互联网欺诈形态常见的互联网欺诈形态✦ 盗刷:通过互联网交易平台,将他人银行账户中的资金进行转移;✦ 薅羊...
一文读懂特征工程 背景在之前学习机器学习技术中,很少关注特征工程(Feature Engineering),而且机器学习的书中基本上是已经处理好的数据或者作者自己构造的虚拟的数据。所以在机器学习的实践中,可能会选择使用这些算法,但是常常不知道怎么提取特征来建模。因此,结合网上的资料和项目中的经验试着来总结一下。特征是什么特征是对于分析和解决问题有用、有意义的属性。例如:在表格数据中,表格中的一行是一个...
细说:特征工程 - Feature Engineering 坊间常说:“数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已”。由此可见,特征工程在机器学习中占有相当重要的地位。在实际应用当中,可以说特征工程是机器学习成功的关键。纵观Kaggle、KDD等国内外大大小小的比赛,每个竞赛的冠军其实并没有用到很高深的算法,大多数都是在特征工程这个环节做出了出色的工作,然后使用一些常见的算法,比如LR,就能得到出色的性能。遗憾的是,在很...
智能反欺诈算法概览及典型应用案例 从上个世纪90年代开始,由于反欺诈领域大数据量和高时效性需求,机器学习技术得到逐步应用:Kokkinaki(1997)提出一种基于决策树逻辑的模型,其中子节点代表不同的变量,分叉路经代表满足不同的条件;Bentley(2000)运用基因算法来搭建一套逻辑规则,可以根据最大发生概率将交易行为划分为可疑和非可疑;Bolton和Hand(2002)利用对等组分析和断点分析,...
知识图谱技术概览 本体、知识库、知识图谱、知识图谱识别之间的关系?本体:领域术语集合。知识库:知识集合。知识图谱:图状具有关联性的知识集合。知识图谱本质上是语义网络,是一种基于图的数据结构,由节点(Point)和边(Edge)组成。在知识图谱里,每个节点表示现实世界中存在的“实体”,每条边为实体与实体之间的“关系”。知识图谱是关系的最有效的表示方式。通俗地讲,知识图谱就是把所有不同种类的信息连接在一...
机器学习算法优缺点对比及选择 本文的目的,是务实、简洁地盘点一番当前机器学习算法。文中内容结合了个人在查阅资料过程中收集到的前人总结,同时添加了部分自身总结,在这里,依据实际使用中的经验,将对此模型优缺点及选择详加讨论。主要回顾下几个常用算法的适应场景及其优缺点!机器学习算法太多了,分类、回归、聚类、推荐、图像识别领域等等,要想找到一个合适算法真的不容易,所以在实际应用中,我们一般都是采用启发式学习方式来实验。通常最开...
机器学习三要素:模型、策略与算法 机器学习三要素:模型、策略与算法提到机器学习,这无疑是数据分析师最常提到的一个词儿了,机器学习也叫统计学习,即Statistics Learning。一些商学院常常讲的Business Intelligence或者Business Analytic基本上也就是这回事儿。机器学习在干嘛?就是利用已有数据,找到一些合适的数学模型去描述它,然后做一些预测分析,从而优化企业的流程或者提高决策效率...
InnoDB行格式对text/blob大变长字段的影响 1. InnoDB的Antelop与Barracuda文件格式Innodb存储引擎保存记录,是以行的形式存放的(与之对应的是像Google BigTable这种列数据库)。在InnoDB 1.0.x版本之前,InnoDB 存储引擎提供了 Compact 和 Redundant 两种格式来存放行记录数据,这也是目前使用最多的一种格式。Redundant 格式是为兼容之前版本而保留的。MySQ...