• 【DDM 分布式数据库中间件 快速入门】之 创建逻辑表操作场景
    创建逻辑表操作场景用户创建DDM实例逻辑库后,需要在DDM实例逻辑库下创建逻辑表。一个逻辑库下最多只能建100张逻辑表。 前提条件存在DDM实例逻辑库。 操作步骤 [*]登录管理控制台。 [*]单击,选择“数据库 > 分布式数据库中间件”,进入分总览页面。 [*]单击左侧菜单栏的“DDM实例管理”,进入“实例管理”页面。 [*]选择需要操作的实例,单击右边操作栏“管理”链接;或者直接单击DDM实例名称,进入实例基本信息页面。 [*]在实例基本信息页面,选择“逻辑库管理”选项卡,查看DDM实例逻辑库。 [*]选择需要新增逻辑表的逻辑库,单击逻辑库名链接,进入逻辑库基本信息,选择“逻辑表管理”选项卡,进入逻辑表页面。 [*]单击“创建”按钮,创建逻辑表。 [*]新增逻辑表说明请参见表1。 表1 逻辑表信息填写说明 3894 说明:可以在DDM实例管理页单击“任务进度”,查询创建逻辑表的进度。
  • 【DDM 分布式数据库中间件 快速入门】之 创建逻辑库
    本帖最后由 橘色祥云楼楼主 于 2017-10-27 11:23 编辑创建逻辑库操作场景用户成功订购DDM实例,并导入RDS实例后,可以创建逻辑库。一个DDM实例下最多能新增99个逻辑库,每个逻辑库在一个RDS实例上能创建1个(非拆分模式)或者8个(拆分模式)分片。 前提条件存在已导入的RDS实例,RDS实例状态正常,且没有被其他DDM实例关联使用。已获取RDS管理员账号和密码。 操作步骤 [*]登录管理控制台。 [*]单击,选择“数据库 > 分布式数据库中间件”,进入总览页面。 [*]单击左侧菜单栏的“DDM实例管理”,进入“实例管理”页面。 [*]选择需要增加逻辑库的DDM实例,单击实例右侧的“创建逻辑库”,进入到逻辑库创建页面。 [*]填写逻辑库信息,参考说明见表1。 表1 填写逻辑库信息 3893 [*]单击“选择RDS”按钮,弹出“选择RDS实例”页面。 页面显示可关联到逻辑库的RDS实例,包括未关联或已被本实例其他逻辑库关联的RDS实例。 说明:RDS实例与DDM实例需要在相同VPC和子网中,且RDS实例正常可用 [*]单击实例左侧的复选框,选择需要关联的实例,单击“确定”按钮。返回到逻辑库创建页面,页面显示已选择的RDS实例列表。 [*]只有运行中状态的RDS实例才能被关联。 [*]非拆分模式下,逻辑库只能关联1个RDS实例。 [*]单击“预览”,可以查看RDS实例的分库详情。 如选择多个RDS实例,可以通过列表右侧的“上移”、“下移”链接,对关联到逻辑库的RDS实例顺序进行排列。在拆分模式下关联多个RDS实例,顺序排列在以下两方面的表现有所不同: [*]分片命名按照RDS实例顺序命名,具体见下述说明事项。 [*]单表将创建在第一个分片上。 说明:创建逻辑库时,系统根据拆分模式,对RDS实例进行默认分库: [*]拆分模式下,逻辑库会在每个关联的RDS实例上新建8个分片。 [*]系统分库需要按如下规则命名:逻辑库名称+"_"+编号。例如,假设逻辑库的名称是mydb,则RDS实例的分片命名为mydb_0000,mydb_0001等,以此类推。 [*]当添加多个RDS实例时,添加的第一个RDS实例的分库命名从编号0000开始,第二个RDS实例的分库命名从0008开始,以此类推。 [*]非拆分模式下,逻辑库只能关联一个RDS实例,在该RDS实例上创建一个分片。 [*]单击“确定”,系统开始执行逻辑库创建任务。 逻辑库创建耗时约3~5分钟。 后续操作可以在DDM实例管理页单击“任务进度”,查看创建逻辑库任务的执行结果。
  • 【DDM 分布式数据库中间件 快速入门】之 导入RDS实例
    本帖最后由 橘色祥云楼楼主 于 2017-10-26 11:03 编辑导入RDS实例 操作场景用户将RDS实例信息,包括实例连接地址,实例管理员账号和密码等,配置到DDM中。RDS实例被导入后,DDM才能监控到实例状态,并用来创建逻辑库。 说明:RDS实例由用户自己创建,可以在华为云上订购RDS实例。 [*]仅支持数据库类型为MySQL的RDS实例,MySQL版本兼容5.6以上。 [*]仅支持导入“运行中”状态的RDS实例。 前提条件用户已通过华为云订购RDS实例。 操作步骤 [*]登录管理控制台。 [*]单击,选择“数据库 > 分布式数据库中间件”,进入总览页面。 [*]单击左侧菜单栏的“RDS导入管理”,进入“RDS实例管理”页面。 [*]单击“导入RDS主实例”,进入RDS实例信息导入页面。 页面上方显示用户当前可以导入的RDS实例列表信息,包括实例名称、实例状态、连接地址、数据库类型、数据库版本。 [*]勾选需要导入的RDS实例,在页面下方填写RDS实例的管理员账号与密码。 支持同时导入多个RDS实例。RDS实例的管理员账号与密码,在申请RDS实例时设置。 [*]单击“确定”,完成RDS实例导入。 导入过程中,RDS实例将会重启,更新数据库配置信息。 说明:RDS实例导入后,您可以通过创建逻辑库,将RDS实例作为物理存储节点,关联到DDM实例中。
  • 【DDM 分布式数据库中间件 快速入门】之 申请DDM实例
    申请DDM实例操作场景使用分布式数据库中间件之前需要申请DDM实例。注意:DDM本身不涉及用户敏感信息。使用DDM处理数据的目的、范围、处理方式、时限等请遵从当地适用的法律法规。 为了降低敏感信息的泄露风险,建议你先对敏感信息进行加密,然后再保存到数据库中前提条件分布式数据库中间件运行于虚拟私有云。申请DDM实例前,需保证有可用的虚拟私有云,并且已配置好子网与安全组。创建虚拟私有云、子网以及安全组的方法,请参见《虚拟私有云用户指南》。操作步骤 [*]登录管理控制台。 [*]单击3802,选择“数据库 > 分布式数据库中间件”,进入总览页面。 [*]单击左侧菜单栏的“DDM实例管理”,进入“实例管理”页面。 [*]单击“申请数据库中间件实例”,进入“服务选型”页面。 [*]填写名称、可用分区、实例规格、虚拟私有云、安全组、子网等参数。参数说明如表1所示。 3801 [*]单击“立即申请”,进入“规格确认”页面。 页面显示申请的分布式数据库中间件的实例名称和实例规格等信息。 [*]单击“提交申请”,开始创建DDM实例。 [*]DDM实例创建成功后,用户可以在“DDM实例管理”页面,查看并管理自己的DDM实例。 [list=a] [*]创建DDM实例大约需要5到15分钟。 [*]DDM实例创建成功后,默认“状态”为“运行中”。 说明:提交创建申请后,如果DDM实例创建完成后状态不是“运行中”,请参考“删除逻辑库”删除该实例,然后重新申请。如果重新申请仍然失败,请联系客服。DDM实例申请完成后,还需要按照本章剩余章节继续操作,完成相关DDM服务配置,才能正常使用DDM服务。
  • [教程] 【DMS 分布式消息服务 快速入门】之 消费消息
    本帖最后由 橘色祥云楼楼主 于 2018-1-3 14:37 编辑消费消息操作场景从消息队列中读取消息。 前提条件已创建队列并创建消费组,且队列中存在消息。消息在队列中的保留时间为72小时,72小时后会被删除。 操作步骤 [*]登录管理控制台。 [*]单击页面上方的3798,选择“应用服务 > 分布式消息服务”,进入分布式消息服务信息页面。 [*]单击左侧菜单栏的“队列管理”,进入“队列管理”页面。 [*]打开“消费消息”页面,有如下两种方式: [*]在队列名称后面单击“消费消息”,进入“消费消息”的页面。 [*]在队列详情中打开: [list=a] [*]单击指定队列的名称,显示队列详情。 [*]选择“消费组”页签,显示消费组列表。 [*]在消费组的名称后面单击“消费消息”,进入“消费消息”页面。 [*]选择消费组名称、每次最多消费消息、消费间隔和消息类型,如需添加消息标签进行过滤,则输入“消息标签”,单击“开始消费”,开始消费消息。 表1 消费消息参数说明 3799 单击“开始消费”,消息将会持续消费5分钟,即使队列中没有消息,5分钟后,消费消息会自动停止。如果需要停止消费消息,您可以单击“停止”,消息消费将会在本次消费完成后停止。如果您在消费过程更换消费消息参数(消费组名称、每次最多消费消息、消费间隔、消息类型)或关闭消息消费的对话框,消息消费将会在本次消费完成后停止。已经消费的消息会在列表中展示,单击某一条消息后的“更多详情”可以查看消息的正文、大小、消息ID、属性个数、属性名称和属性值。在查看属性详情期间,消息消费不会停止。 说明:▶每条消息只能被同一个消费组消费一次,消费成功后,该消费组无法再次消费该条消息,但是其它消费组仍然可以消费。关闭消息消费对话框或更换消费组后无法查看到已消费消息。▶一个队列中的消息存储在多个不同的分区,多分区设计提升了消费并发度,可同时处理同一个消费组的多个消费请求。为了性能考虑,每个消费请求只能消费一个分区中的消息,避免跨多个分区缓存管理和访问带来性能损失,当消息数量较少时,单个分区的消息数量可能小于指定的消费消息数量,这样单次消费请求返回的消息数会少于指定的消费消息数量,但是多次消费请求会自动负载均衡到不同的分区,所有分区的消息最终都将被消费。▶每个消费组只支持一种Tag规则,如果第二次消费更换了Tag规则,则消费失败,但是已消费失败的消息,该消费组无法再重新消费,除非重置消费位置。 表2 已消费消息参数说明3800 3798
  • [教程] 【DMS 分布式消息服务 快速入门】之 生产消息
    本帖最后由 橘色祥云楼楼主 于 2017-10-25 11:47 编辑生产消息操作场景向队列中发送消息。每条消息的大小不超过512KB(包括消息体和消息属性,消息体包括界面输入的内容和固定JSON格式部分的内容)。 前提条件已创建队列。 操作步骤 [*]登录管理控制台。 [*]单击页面上方的,选择“应用服务 > 分布式消息服务”,进入分布式消息服务信息页面。 [*]单击左侧菜单栏的“队列管理”,进入“队列管理”页面。 [*]打开生产消息的页面,有如下两种方式: [*]单击队列名称后的“生产消息”,进入“生产消息”的页面。 [*]在队列详情中生产消息: [list=a] [*]单击指定队列的名称,显示队列详情。 [*]单击右上角的“生产消息”,进入“生产消息”页面。 [*]填写消息正文。如需添加消息标签,则输入“消息标签”。如果需要添加消息属性,输入消息属性的名称和属性值,单击“添加”,可以添加消息属性。3771已经添加的属性会在列表中展示,单击“删除”可以删除已经添加的属性。 [*]单击“确定”。在队列所在行,您可以看到消息数量增加了一条。如果您已经创建消费组,您可以在消费组所在行看到可消费消息数增加了一条。
  • [教程] 【DMS 分布式消息服务 快速入门】之 创建消费组
    创建消费组操作场景在消费消息之前,必须先创建消费组。每个队列最多可以创建3个消费组。消费组创建后,队列中存在的所有消息对消费组可见。 前提条件已创建队列。 操作步骤 [*]登录管理控制台。 [*]单击页面上方的3770,选择“应用服务 > 分布式消息服务”,进入分布式消息服务信息页面。 [*]单击左侧菜单栏的“队列管理”,进入“队列管理”页面。 [*]打开创建消费组的页面,有如下两种方式: [*]单击队列名称后的“更多”,选择“创建消费组”,进入“创建消费组”的页面。 [*]在队列详情中创建消费组:[list=a] [*]单击指定队列的名称,显示队列详情。 [*]选择“消费组”页签。 [*]单击“创建消费组”。进入“创建消费组”页面。 [*]填写消费组的名称。 DMS为您自动生成了消费组名称,您可以根据需要修改,消费组的名称只能包含a~z,A~Z,0~9,-,_,长度是[1,32]。同个队列的消费组名称不能重复。 [*]单击“确定”。
  • [教程] 【DMS 分布式消息服务 快速入门】之 创建队列
    创建队列操作场景创建队列,用于存储消息。 前提条件无。 操作步骤 [*]登录管理控制台。 [*]单击页面上方的3769,选择“应用服务 > 分布式消息服务”,进入分布式消息服务信息页面。 [*]单击左侧菜单栏的“队列管理”。 [*]在“队列管理”页面,单击页面右上方的“创建队列”。 每个项目默认最多可以创建5个队列,您可以在“删除队列”按钮上面看到您还可以创建多少个队列。如果您想创建更多队列,请联系客服申请增加配额。 [*]填写队列名称和描述信息。3768 [*]单击“确定”,完成创建队列。 队列创建成功后,单击队列名称,可以查看队列详情。
  • 从0-1打造最强性能Scrapy爬虫集群
    本帖最后由 yd_80193072 于 2017-10-11 15:35 编辑1 项目介绍 本项目的主要内容是分布式网络新闻抓取系统设计与实现。主要有以下几个部分来介绍: (1)深入分析网络新闻爬虫的特点,设计了分布式网络新闻抓取系统爬取策略、抓取字段、**页抓取方法、分布式结构、系统监测和数据存储六个关键功能。 (2)结合程序代码分解说明分布式网络新闻抓取系统的实现过程。包括爬虫编写、爬虫避禁、**页数据抓取、部署分布式爬虫、系统监测共六个内容,结合实际定向抓取腾讯新闻数据,通过测试检验系统性能。 (3)规划设计了包括数据清洗、编码转换、数据分类、对象添加等功能组成的数据处理模块。 分布式网络新闻抓取系统的设计 2.1 系统总体架构设计 系统采用分布式主从结构,设置 1 个 Master 服务器和多个Slave 服务器,Master管理 Redis 数据库和分发下载任务,Slave 部署 Scrapy 抓取网页和解析提取项目数据。服务器的基本环境是 Ubuntu 操作系统,Master 服务器安装 Redis 数据库服务器和 Graphite,Slave 安装 Scrapy 和 Redis 客户端。系统按功能可划分为两个主要模块,一是数据抓取模块,二是数据处理模块。数据抓取模块包含浏览器调用、网页下载、字段提取、爬虫避禁、数据存储和系统监测六个功能;数据处理模块包含数据清洗、对象添加、编码转换和数据分类四个功能。 2.2 爬取策略的设计 本项目网络爬虫采用深度优先的爬取策略,根据设定下载网页数据。网页链接处理流程如下: 1. 手动设置初始下载地址,一般为网站导航地址。 2. 爬虫开始运行并从初始地址抓取第一批网页链接。 3. 爬虫根据正则表达式识别新链接中的目录页地址和新闻内容页地址,识别的新地址加入待下载队列,等待抓取,未被识别的网页地址被定义为无用链接丢掉。 4. 爬虫从待下载队列中依次取出网页链接下载和提取数据。 5. 下载队列为空,爬虫停止抓取。 新闻站点的导航页面数量是有限的,这一规律决定了在一定的人工参与下可以轻松获取新闻导航页面的 url,并将其作为爬虫系统的初始 url。 2.3 爬取字段的设计 本项目以网络新闻数据抓取为抓取目标,因此抓取内容必须能够客观准确地反应网络新闻特征。 以抓取腾讯网络新闻数据为例,通过分析网页结构,本文确定了两步抓取步骤。第一步,抓取新闻内容页,获得新闻标题、新闻来源、新闻内容、发表时间、评论数量、评论地址、相关搜索、用户还喜欢的新闻和喜欢人数共 9 个内容;第二步,在获得评论地址后,抓取评论页,获得评论人 ID、评论人昵称,评论人性别、评论人所在地区、评论时间、评论内容、单条评论支持人数和单条评论回复数量等内容。 2.4 **页抓取方法设计 腾讯新闻网页使用 Java Script 生成**页内容。一些 JS 事件触发的页面内容在打开时发生变化,一些网页在没有 JS 支持的情况下根本不工作。一般的爬虫根本无法从这些网页获取数据。 解决 JavaScript **页的抓取问题有四种方法: 1.写代码模拟相关 JS 逻辑。 2.调用有界面的浏览器,类似各种广泛用于测试的,如 Selenium 等。 3.使用无界面的浏览器,各种基于Webkit的,如 Casperjs、Phantomjs 等。 4.结合 JS 执行引擎,实现一个轻量级的浏览器。 本项目由于是基于Python作为主要语言来编写,因此采用使用 Selenium 来处理 JS动态新闻页面。它的优点是简单、易于实现。用Python 代码模拟用户对浏览器的操作,将网页先加载到浏览器中打开,再从浏览器缓存中获取网页数据,传递到 spider 解析提取,最后传递目标数据到项目通道。 2.5爬虫分布式设计 应用 Redis 数据库实现分布式抓取。基本思想是 Scrapy 爬虫获取到的urls(request)都放到一个 Redis Queue中,所有爬虫也都从指定 Redis Queue中获取request(urls)。Scrapy-Redis 中默认使用Spider Priority Queue 来确定 url 的先后次序,这是由 sorted set实现的一种非 FIFO、LIFO方式。 Redis 中存储了 Scrapy 工程的request 和 stats 信息,根据这些信息可以掌握任务情况和爬虫状态,分配任务时便于均衡系统负载,有助于克服爬虫的性能瓶颈。同时利用 Redis 的高性能和易于扩展的特点能够轻松实现高效率下载。当 Redis 存储或者访问速度遇到问题时,可以通过增大 Redis 集群数和爬虫集群数量改善。Scrapy-Redis分布式方案很好解决了中断续抓取以及数据去重问题,爬虫重新启动后,会对照 Redis队列中的url 进行抓取,已经抓取的url 将自动过滤掉。 2.6 基于Graphite系统监测组件设计 运用 Graphite 监测系统运行状态,实现了一个针对分布式系统的 statscollector,将系统的 stats 信息以图表形式动态实时显示,即实时监测。Graphite 监测的信息有:系统的下载信息、日志信息、文件计数、调度信息、爬虫运行信息、爬虫异常信息、文件数量、获得 Item 数量、最大请求深度和收到的回应数量等。 2.7 数据存储模块的设计 Scrapy 支持数据存储为 json、csv 和 xml 等文本格式,用户可以在运行爬虫时设置,例如:scrapy crawlspider –o items.json –t json,也可以在 Scrapy 工程文件的Item Pipeline文件中定义。除此之外,Scrapy 提供了多种数据库 API支持数据库存储。如 Mongo DB、Redis 等。数据存储分两个部分,一是网页链接的存储,二是项目数据的存储。网页链接存储于 Redis 数据库,用于实现分布式爬虫的下载管理;项目数据包括新闻数据和评论数据,为方便处理,均保存为 JSON 格式的文本文件。评论数据存储时以评论 url 中包含的评论ID 命名,通过这种方法可以将新闻数据与评论数据关联起来。 3 项目总结 以上就是分布式网络新闻抓取系统的系统设计部分,采用分布式的设计是因为单机爬虫的爬取量和爬取速度的局限性,总体设计部分如上所示。 来源:segmentfault
  • 分布式系统资料推荐
    入门书籍推荐: 1.大话存储(终极版) 作者: 张冬 出版社: 清华大学出版社 副标题: 存储系统底层架构原理极限剖析 出版年: 2015-1 页数: 987 定价: 149.00元 装帧: 平装 ISBN: 9787302381242 国内存储不多的书籍之一, 比较杂散, 入门了解 2.大规模分布式存储系统 作者: 杨传辉 出版社: 机械工业出版社 副标题: 原理解析与架构实战 出版年: 2013-9-1 页数: 293 定价: 59 装帧: 平装 丛书: 大数据技术丛书 ISBN: 9787111430520 基础原理以及商业产品介绍 3.分布式系统概念与设计 作者: George Coulouris 出版社: 机械工业出版社 原作名: Distributed Systems: Concepts and Design, Fourth Edition 译者: 金蓓弘 出版年: 2008-1 页数: 568 定价: 69.00元 丛书: 计算机科学丛书 ISBN: 9787111224389 翻译不太好, 可以看英文版 这个github上记录很多资料可以参考 https://github.com/ty4z2008/Qix/blob/master/ds.md
  • 如何选择版本控制系统?
    “代码”作为软件研发的核心产物,在整个开发周期都在递增,不断合入新需求以及解决bug的新patch,这就需要有一款系统,能够存储、追踪文件的修改历史,记录多个版本的开发和维护。于是,版本控制系统(Version Control Systems)应运而生,主要分为两类,集中式和分布式。 集中式版本控制系统 集中式版本控制系统的特点是只有一台中央服务器,存放着所有研发数据,而其它客户端机器上保存的是中央服务器最新版本的文件快照,不包括项目文件的变更历史。所以,每个相关人员工作开始前,都需要从这台中央服务器同步最新版本,才能开始工作。 1.jpg (14.64 KB, 下载次数: 1) 下载附件 保存到相册 2017-8-14 16:19 上传 集中式版本控制系统的优点: 1.操作简单,使用没有难度,可轻松上手。 2.文件夹级权限控制,权限控制粒度小。 3.对客户端配置要求不高,无需存储全套代码。 集中式版本控制系统的缺点: 1.网络环境要求高,相关人员必须联网才能工作。 2.中央服务器的单点故障影响全局,如果服务器宕机,所有人都无法工作。 3.中央服务器在没有备份的情况下,磁盘一旦被损坏,将丢失所有数据。 2.jpg (16.79 KB, 下载次数: 1) 下载附件 保存到相册 2017-8-14 16:19 上传 分布式版本控制系统 分布式版本控制系统的特点是每个客户端都是代码仓库的完整镜像,包括项目文件的变更历史。所有数据分布的存储在每个客户端,不存在中央服务器。可能有人会问,我们公司使用Git分布式存储工具,也有“中央服务器”啊?其实,这个所谓的“中央服务器”仅仅是用来方便管理多人协作,任何一台客户端都可以胜任它的工作,它和所有客户端没有本质区别。 3.jpg (26.61 KB, 下载次数: 1) 下载附件 保存到相册 2017-8-14 16:19 上传 分布式版本控制系统的优点: 1.版本库本地化,版本库的完整克隆,包括标签、分支、版本记录等。 2.支持离线提交,适合跨地域协同开发。 3.分支切换快速高效,创建和销毁分支廉价。 分布式版本控制系统的缺点: 1.学习成本高,不容易上手。 2.只能针对整个仓库创建分支,无法根据目录建立层次性的分支。 4.jpg (18.19 KB, 下载次数: 1) 下载附件 保存到相册 2017-8-14 16:19 上传 SVN vs Git SVN和Git作为集中式和分布式版本控制系统的代表,都有广大的使用群体,两者的优缺点经常被比较。其实,工具对我们来说,就是帮助我们有效提升工作的效率与质量,最适合的就是最好的。我们引用几个开发场景来看看两个版本控制工具的适用范围。 场景一: 公司A,非纯技术开发,项目包含大量媒体设计文件,相关人员只需下载自己关注的部分文件;员工PC电脑配置不高,没有空间拷贝整个项目资料。 适用:SVN 分析:只需公司有一个足够大的服务器硬盘,员工本地只存储自己相关的文件夹,不必下载不想关的媒体文件,避免浪费文件传输时间。 场景二: 公司B,嵌入式底层开发,项目人员较多并且分布在两个城市,代码庞大;用分支管理多机种并行开发,机种间经常相互合并新特性,新patch。 适用:Git 5.jpg (31.97 KB, 下载次数: 1) 下载附件 保存到相册 2017-8-14 16:20 上传 分析: 1.Git有能力高效管理类似Linux内核一样的超大规模项目; 2.Git实现了离线开发、代码审核特性,解决了跨地域协同开发中代码质量和编码协同的问题; 3.分支管理功能强大,便于查询和追溯分支间的提交历史; 4.Git基于DAG(有向非环图)的设计比SVN的线性提交提供更好的合并追踪,避免不必要的冲突,提高工作效率 场景三: 公司C,某行业软件开发,包含敏感重要数据,代码仓库和版本发布权限掌握在客户手中,代码安全要求高,公司开发人员先将代码提交到本地仓库,只有在客户审核通过才能提交到发布仓库。 适用:Git 分析: 1.Git通过哈希加密保证数据的完整性,防止恶意篡改; 2.代码分布存储,异地容灾,保证数据安全; 3.Git支持团队成员自建本地版本库和分支,只有客户发出合并请求,开发人员才能提交代码,客户可以对提交说明、代码规范等方面逐一审核。 总结 不难看出,Git凭借自身的优势,完美解决了大多数公司对版本控制工具的诉求。在当今敏捷开发成为主流,研发周期短,跨地域协同开发多的大形势下,选择Git是大势所趋。也正因为如此,国内外有很多基于Git的云端代码托管服务,目前,华为软件开发云配置管理服务的托管代码功能也很强大,欢迎大家使用。
总条数:476 到第
上滑加载中