分布式事务 GTS 的价值和原理浅析

今年2684亿的背后,有一个默默支撑,低调到几乎被遗忘的中间件云产品——GTS(全局事务服务,GlobalTransactionService),稳稳地通过了自2014年诞生以来的第5次“大考”。/2019年11月1日至12日,GTS日均处理分布式事务数量达 亿级 ,每天峰值TPS达 万级 。这背后最重要意义在于:成绩是在给业务应用的设计和开发带来 0负担 的前提下得到的。随着企业的发展,企业业务架构面临数据、服务的分布化,几乎无可避免地要遇到分布式架构带来的数据一致性问题。GTS开创性地把分布式事务问题从业务中剥离出来,作为一个独立的技术切面来单独管理,以服务的形式给构建在云上的应用提供简单、易用、高效的分布式事务解决方案。GTS给业务应用带来的价值体现在以下几个方面:架构复杂度降低:分布式事务这个 切面 的技术问题,全部 收敛 到GTS提供的服务来解决。设计和开发成本减轻:业务逻辑的设计和开发,完全不需要针对是否涉及分布式事务而做任何额外的事情,对业务 0侵入 。...

plsql dev引起的数据库被黑勒索比特币实现原理分析和解决方案

转自http://www.xifenfei.com/2016/11/plsql-dev-hacker-bitcoin.htmlafterconnect.sql是plsqldev登录后自动执行脚本,非Oralce官方脚本数据库启动后执行触发器DBMS_SUPPORT_INTERNALDBMS_SUPPORT_INTERNAL主要的意义是:1.当数据库创建时间大于1200天之后,开始备份tab$表2.删除tab$中除掉owner#为0和38的记录(sys,xdb)3.通过SYS.DBMS_BACKUP_RESTORE.RESETCFILESECTION清理掉备份信息(v$controlfile_record_section)4.然后通过DBMS_SYSTEM.KSDWRT在你的alert日志中写上2046次的提示信息Hibuddy,yourdatabasewashackedbySQLRUSHTeam,send5bitcointoaddress166xk1FXMB2g8JxBVF5T4Aw1Z5JaZ6vrSE(casesensitive),afterthatsendyourOracleSI...

JSP基本原理

JSP的基本原理:  jsp的本质是servlet。jsp通过在标准的HTML页面中嵌入java代码,其静态的部分无需Java程序控制,只有那些需要从数据库读取或需要动态生成的的页面内容,才使用Java脚本控制。  jsp页面内容:  >静态部分:标准的HTML标签、静态的页面内容,这些内容与静态HTML页面相同。  >动态部分:受Java程序控制的内容,这些内容由Java程序来控制。<%@pagelanguage="java"contentType="text/html;charset=UTF-8"language="java"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><title>这是一个jsp页面代码</title></head><body>欢迎进入<br>现在是时间是:<%out....
代码星球 代码星球·2021-02-24

打造“云边一体化”,时序时空数据库TSDB技术原理深度解密

/本文选自云栖大会下一代云数据库分析专场讲师自修的演讲——《TSDB云边一体化时序时空数据库技术揭秘》 自修——阿里云智能数据库产品事业部高级专家第一代时序时空数据处理工具虽然通用关系数据库可以存储时序数据,但是由于缺乏针对时间的特殊优化,比如按时间间隔存储和检索数据等等,因此在处理这些数据时效率相对不高。第一代时序数据典型来源于监控领域,直接基于平板文件的简单存储工具成为这类数据的首先存储方式。以RRDTool,Wishper为代表,通常这类系统处理的数据模型比较单一,单机容量受限,并且内嵌于监控告警方案。第二代面向时序时空领域的数据库伴随着大数据和Hadoop的发展,时序数据量开始迅速增长,系统业务对于处理时序数据的扩展性等方面提出更多的要求。基于通用存储而专门构建的时间序列数据库开始出现,它可以按时间间隔高效地存储和处理这些数据。像OpenTSDB,KairosDB等等。这类时序数据库在继承通用存储优势的基础上,利用时序的特性规避部分通用存储的劣势,并且在数据模型,聚合分析方面做了贴合时序的大量创新。比如OpenTSDB继承了HBase的宽表属性结合时序设计了偏移量的存...

Apache Flink 进阶(三):Checkpoint 原理解析与应用实践

大家好,今天我将跟大家分享一下Flink里面的Checkpoint,共分为四个部分。首先讲一下Checkpoint与state的关系,然后介绍什么是state,第三部分介绍如何在Flink中使用state,第四部分则介绍Checkpoint的执行机制。Checkpoint是从source触发到下游所有节点完成的一次全局操作。下图可以有一个对Checkpoint的直观感受,红框里面可以看到一共触发了569K次Checkpoint,然后全部都成功完成,没有fail的。state其实就是Checkpoint所做的主要持久化备份的主要数据,看下图的具体数据统计,其state也就9kb大小。我们接下来看什么是state。先看一个非常经典的wordcount代码,这段代码会去监控本地的9000端口的数据并对网络端口输入进行词频统计,我们本地行动netcat,然后在终端输入helloworld,执行程序会输出什么?答案很明显,(hello,1) 和 (word,1)那么问题来了,如果再次在终端输入helloworld,程序会输入什么?答案其实也很明显,(hello,2) ...

Apache Flink 1.9.0版本新功能介绍

/摘要:ApacheFlink是一个面向分布式数据流处理和批量数据处理的开源计算平台,它能够基于同一个Flink运行时,提供支持流处理和批处理两种类型应用的功能。目前,ApacheFlink1.9.0版本已经正式发布,该版本有什么样的里程碑意义,又具有哪些重点改动和新功能呢?本文中,阿里巴巴高级技术专家伍翀就为大家带来了对于ApacheFlink1.9.0版本的介绍。演讲嘉宾介绍:本次分享主要分为以下三个方面:Flink1.9.0的里程碑意义Flink1.9.0的重点改动和新功能总结下图展示的是在2019年中阿里技术微信公众号发表的两篇新闻,一篇为“阿里正式向ApacheFlink贡献Blink代码”介绍的是在2019年1月Blink开源并且贡献给ApacheFlink,另外一篇为“修改代码150万行!ApacheFlink1.9.0做了这些重大修改!”介绍的是2019年8月Bink合并入Flink之后首次发版。之所以将这两篇新闻放在一起,是因为无论是对于Blink还是Flink而言,Flink1.9.0的发版都是具有里程碑意义的。在2019年年初,Blink开源贡献给ApacheFl...

Apache Flink 进阶入门(二):Time 深度解析

Flink的API大体上可以划分为三个层次:处于最底层的ProcessFunction、中间一层的DataStreamAPI和最上层的SQL/TableAPI,这三层中的每一层都非常依赖于时间属性。时间属性是流处理中最重要的一个方面,是流处理系统的基石之一,贯穿这三层API。在DataStreamAPI这一层中因为封装方面的原因,我们能够接触到时间的地方不是很多,所以我们将重点放在底层的ProcessFunction和最上层的SQL/TableAPI。在不同的应用场景中时间语义是各不相同的,Flink作为一个先进的分布式流处理引擎,它本身支持不同的时间语义。其核心是ProcessingTime和EventTime(RowTime),这两类时间主要的不同点如下表所示:ProcessingTime是来模拟我们真实世界的时间,其实就算是处理数据的节点本地时间也不一定就是完完全全的我们真实世界的时间,所以说它是用来模拟真实世界的时间。而EventTime是数据世界的时间,就是我们要处理的数据流世界里面的时间。关于他们的获取方式,ProcessTime是通过直接去调用本地机器的时间,而Event...

Apache Flink 进阶(一):Runtime 核心机制剖析

本文主要介绍FlinkRuntime的作业执行的核心机制。首先介绍FlinkRuntime的整体架构以及Job的基本执行流程,然后介绍在这个过程,Flink是怎么进行资源管理、作业调度以及错误恢复的。最后,本文还将简要介绍FlinkRuntime层当前正在进行的一些工作。Flink的整体架构如图1所示。Flink是可以运行在多种不同的环境中的,例如,它可以通过单进程多线程的方式直接运行,从而提供调试的能力。它也可以运行在Yarn或者K8S这种资源管理系统上面,也可以在各种云环境中执行。图1.Flink的整体架构,其中Runtime层对不同的执行环境提供了一套统一的分布式执行引擎。针对不同的执行环境,Flink提供了一套统一的分布式作业执行引擎,也就是FlinkRuntime这层。Flink在Runtime层之上提供了DataStream和DataSet两套API,分别用来编写流作业与批作业,以及一组更高级的API来简化特定作业的编写。本文主要介绍FlinkRuntime层的整体架构。FlinkRuntime层的主要架构如图2所示,它展示了一个Flink集群的基本结构。FlinkRunt...

如何在 Apache Flink 中使用 Python API?

本文根据ApacheFlink系列直播课程整理而成,由ApacheFlinkPMC,阿里巴巴高级技术专家孙金城分享。重点为大家介绍FlinkPythonAPI的现状及未来规划,主要内容包括:ApacheFlinkPythonAPI的前世今生和未来发展;ApacheFlinkPythonAPI架构及开发环境搭建;ApacheFlinkPythonAPI核心算子介绍及应用。1.Flink为什么选择支持PythonApacheFlink是流批统一的开源大数据计算引擎,在Flink1.9.0版本开启了新的ML接口和全新的PythonAPI架构。那么为什么Flink要增加对Python的支持,下文将进行详细分析。最流行的开发语言Python本身是非常优秀的开发语言,据RedMonk数据统计,除Java和JavaScript之外,受欢迎度排名第三。RedMonk是著名的以开发人员为中心的行业分析公司,其更详细的分析信息,大家在拿到我的PPT之后,可以点击链接进行详细查阅。好了,那么Python的火热,与我们今天向大家分享的流批统一的大数据计算引擎,ApacheFlink有什么关系呢?带着这个问题,...

开发者说 | 分布式事务中间件 Seata 的设计原理

微服务架构体系下,我们可以按照业务模块分层设计,单独部署,减轻了服务部署压力,也解耦了业务的耦合,避免了应用逐渐变成一个庞然怪物,从而可以轻松扩展,在某些服务出现故障时也不会影响其它服务的正常运行。总之,微服务在业务的高速发展中带给我们越来越多的优势,但是微服务并不是十全十美,因此不能盲目过度滥用,它有很多不足,而且会给系统带来一定的复杂度,其中伴随而来的分布式事务问题,是微服务架构体系下必然需要处理的一个痛点,也是业界一直关注的一个领域,因此也出现了诸如CAP和BASE等理论。在今年年初,阿里开源了一个分布式事务中间件,起初起名为Fescar,后改名为Seata,在它开源之初,我就知道它肯定要火,因为这是一个解决痛点的开源项目,Seata一开始就是冲着对业务无侵入与高性能方向走,这正是我们对解决分布式事务问题迫切的需求。因为待过的几家公司,用的都是微服务架构,但是在解决分布式事务的问题上都不太优雅,所以我也在一直关注Seata的发展,今天就简要说说它的一些设计上的原理,后续我将会对它的各个模块进行深入源码分析,感兴趣的可以持续关注我的公众号或者博客,不要跟丢。目前分布式事务解决的方案...

修改代码150万行!与 Blink 合并后的 Apache Flink 1.9.0 究竟有哪些重大变更?

8月22日,ApacheFlink1.9.0正式发布,早在今年1月,阿里便宣布将内部过去几年打磨的大数据处理引擎Blink进行开源并向ApacheFlink贡献代码。当前Flink1.9.0是阿里内部版本Blink合并入Flink后的首次发版,修改代码150万行,此次发版不仅在结构上有重大变更,在功能特性上也更加强大与完善。本文将为大家介绍Flink1.9.0有哪些重大变更与新增功能特性。在此先简单回顾一下阿里巴巴Blink开源的部分要点:Blink开源的内容主要是阿里巴巴基于开源Flink引擎,依托集团内部业务,在流计算和批处理上积累的大量新功能、性能优化、稳定性提升等核心代码Blink以分支的形式开源,即开源后会成为ApacheFlink项目下的一个分支。Blink开源的目标不是希望成为另一个活跃的项目,而是将Flink做的更好。通过开源的方式让大家了解所有Blink的实现细节,提高Blink功能merge进入Flink的效率,与社区协作更高效。半年的时间过去了,随着Flink1.9.0版本的发布,在此我们可以骄傲的宣布:Blink团队已经实现了之前的诺言!尽管不是所有功能都顺利m...

Apache Flink 1.9重磅发布!首次合并阿里内部版本Blink重要功能

8月22日,ApacheFlink1.9.0版本正式发布,这也是阿里内部版本Blink合并入Flink后的首次版本发布。此次版本更新带来的重大功能包括批处理作业的批式恢复,以及TableAPI和SQL的基于Blink的新查询引擎(预览版)。同时,这一版本还推出了StateProcessorAPI,这是社区最迫切需求的功能之一,该API使用户能够用FlinkDataSet作业灵活地读写保存点。此外,Flink1.9还包括一个重新设计的WebUI和新的PythonTableAPI(预览版)以及与ApacheHive生态系统的集成(预览版)。ApacheFlink项目的目标是开发一个流式处理系统,以统一和支持多种形式的实时和离线数据处理应用程序以及事件驱动的应用程序。在此版本中,我们在这方面取得了巨大的进步,将Flink的流处理和批处理能力集成在了统一的运行时之上。本文将描述所有主要的新功能、改进、重要变化、以及未来的发展计划。有关更多详细信息,请查看完整版变更日志。Flink1.9版本的二进制分发和源文件可以通过Flink项目的下载页面以及文档页面获得。Flink1.9与之前1.x版本的@...

从遇见到信任 | Apache Dubbo 的毕业之旅

所谓信任,就是多一次机会。2018年2月16日,ApacheDubbo加入Apache基金会孵化器。...2019年5月16日,Apache软件基金会董事会决议通过了ApacheDubbo的毕业申请,这意味着ApacheDubbo正式成为Apache的顶级项目。5月21日,Apache官方发布了这一消息。这也是阿里巴巴微服务继ApacheRocketMQ后的又一个Apache顶级项目。ApacheDubbo起初的定位是一款轻量级、高性能的服务框架,自2012年开源以来,深受国内开发者的喜爱,并被国内许多企业选型作为服务化改造的方案首选和微服务架构的基石之一。其主要功能是:提供基于RPC的高性能接口,对用户透明。智能负载均衡:支持多种开箱即用的负载均衡策略,可以感知下游服务状态,从而减少总体延迟并提高系统吞吐量。自动服务注册和发现:支持多个服务注册表,可以立即在线/离线检测服务。高可扩展性:微内核和插件设计确保可以通过协议,传输和序列化等核心功能轻松扩展第三方实施。运行时流量路由:可以在运行时配置,以便根据不同的规则路由流量,这样可以轻松支持蓝绿部署,数据中心感知路由等功能。可视化服务治...

从开源小白到 Apache Member,我的成长之路

我们走过的每一步路,都会留下印记,越坚实,越清晰。近日,Apache软件基金会(ASF)官方Blog宣布全球新增40位ApacheMember,张乎兴有幸成为其中一位。目前,全球共有771位ASFMember,中国仅13位。本文将分享作者从0基础的开源小白,一路走来的感触,希望把期间的经历分享出来,让更多的人看到,世界开源舞台的中国力量。只要有持续的付出,总会有所收获。2014年,我加入阿里巴巴中间件团队,开始接手集团应用容器的维护工作。当时集团的应用容器绝大部分都是基于JBoss,老旧且无人维护,另外有一小部分跑在Jetty和Tomcat之上,当时中间件团队维护了Tomcat的一个私有分支,最大的目标就是要统一所有集团的应用容器为Tomcat。而在那之前,我从未接触过Tomcat的开发和运维,对我来说,挑战很大。然而,更大的挑战来自于团队大leader提出的,在当时看来几乎是无法实现的目标:成为ApacheTomcat的committer。要知道,作为Apache的核心项目之一,Tomcat自1999年发布第一版以来,一直是开源届和Apache基金会的明星项目,至今仍然在应用容器领域...

Apache ORC 到 Apache Calcite | 2019大数据技术公开课第一季《技术人生专访》

/摘要: 什么是ApacheORC开源项目?主流的开源列存格式ORC和Parquet有何区别?MaxCompute为什么选择ORC?如何一步步成为committer和加入PMC的?在阿里和Uber总部的工作体验有何异同?中美两种互联网公司的文化有什么差别?尽在本次直播。2019年5月,大数据计算技术公开课又开播啦!!第一季《技术人生专访》,将带领开发者们从ApacheORC到ApacheCalcite探讨大数据技术,从中美日看不同公司的工作经历和体验。【直播详情】吴刚专访《大数据和MaxCompute技术和故事》5月14日19:00-19:50 分享资料下载>>>雷春蔚专访《MaxCompute与Calcite的技术和故事》5月21日19:00-19:50 分享资料下载>>>苑海胜专访《MaxCompute与大数据查询引擎的技术和故事》5月28日20:00-20:50【精彩剧透】什么是ApacheORC开源项目?主流的开源列存格式ORC和Parquet有何区别?MaxCompute为什么选择ORC?什么是ApacheCa...
首页上一页12345...下一页尾页