版本号

《DNS稳定保障系列1--服务双保障“辅助DNS”产品介绍》

大憨熊 提交于 2019-12-02 19:09:29
背景 2016 年 10 月 21 日,DNS 服务商 dyn 的服务器遭遇黑客大流量的 ddos 攻击,使得美国大量互联网公司如 twitter,github等都出现解析失败,无法提供服务。如下图可见,该事件造成了美国东海岸的网络瘫痪,媒体当时形容此次危机为“史上最大DDoS攻击”。该事件影响及其恶劣,直接对人们的生活造成了影响,唤起了广大互联网用户对 DNS 稳定性的重视。 图片来自 维基百科 权威 DNS 容灾 【DNS 解析流程】 用户向递归 DNS 请求 www.test.com 的解析 递归 DNS 向权威 DNS 请求 www.test.com 的解析 权威 DNS 将 www.test.com. 的解析 1.1.1.1 返回给递归 DNS 递归 DNS 将 www.test.com. 的解析 1.1.1.1 返回给用户 【单权威 DNS】 单权威 DNS 架构,存在单点,单点故障,权威 DNS 收不到请求或不能正常返回域名解析结果,如果域名解析配置丢失且没有备份,恢复时间会更长。 【多权威 DNS】 多权威 DNS 架构,具有以下优点:  容灾备份: 其中一个权威 DNS 故障,其他权威 DNS 可继续提供域名解析服务;  负载均衡,流量均摊:多个权威 DNS 同时对外提供解析服务时,可以达到流量负载均衡的效果;  提升解析效率: 递归 DNS 通过 SRTT

使用Carthage集成Alamofire

馋奶兔 提交于 2019-12-02 16:12:14
Carthage相较于Cocoapods有着使用灵活,对目标工程改动小的优势,使得它越来越受欢迎。今天就对我使用Carthage集成FBSDK做一个记录。 1、首先 https://github.com/Carthage/Carthage 查看官方网站,安装好Carthage. 在mac上我习惯用homebrew来安装,使用如下两个指令来安装。 安装:brew update brew install Carthage 如果你之前安装过Carthage,那么可以使用如下指令来查看当前版本号以及更新Carthage。 查看:carthage version 升级:brew upgrade carthage 2、安装完成后,cd 到你的工程根目录 Carthage和Cocoapods一样,通过一个文件来管理第三方库。名叫Cartfile 新建Cartfie文件:touch Cartfile 使用Xcode打开进行编辑:open -a Xcode Cartfile Cartfile指定依赖源以及版本号,版本号的控制与Cocoapods一样。 不指定版本号即默认最新版本。 Cartfile文件中的内容示例如下: /*--> */ /*--> */ github "Alamofire/Alamofire" ~>4.5.0 github "Alamofire/AlamofireImage"

Selenium 配置IE浏览器

吃可爱长大的小学妹 提交于 2019-12-02 15:39:41
1.安装selenium pip install selenium 2.安装IE浏览器driver http://selenium-release.storage.googleapis.com/index.html 进入索引页,首先选择版本号,IEDriverServer的版本号和Selenium的版本号一定要一致 解压缩得到IEDriverServer.exe,并将其所在目录添加到环境变量 针对windows vista和windows 7上的IE7或者更高的版本,必须在IE选项设置的安全页中,4个区域的启用保护模式的勾选都去掉(或都勾上),即保持四个区域的保护模式是一致的。如下图所示: 针对IE10和更高的版本,必须在IE选项设置中的高级页中,取消增强保护模式。如下图所示: 浏览器的缩放比例必须设置为100%,这样元素定位才不会出现问题,如下图所示: 针对IE11,需要修改注册表。 注册表位置:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones 1-4号Key下面都有名叫2500的属性,则将其值改为相同的非零值 参考自: https://www.cnblogs.com/onetheway2018/p/8603190.html http://www

[Phonegap+Sencha Touch] 移动开发72 List列表横向滑动操作(仿QQ列表滑动删除)

六眼飞鱼酱① 提交于 2019-12-02 13:18:50
原文链接: http://blog.csdn.net/lovelyelfpop/article/details/50425744 本插件有2个版本号:sencha touch 版本号和 extjs6 modern 版本号(不支持extjs6.2+) 联系我的时候。请说明你用的是什么框架。 请看演示样例图,仿照的QQ的列表横滑删除。 支持Ext.dataview.List和Ext.dataview.DataView。 本功能是Sencha touch插件类(不是Cordova插件),能够在不论什么list上使用。 用法也非常easy。仅仅要在你须要加入横滑操作功能的list上。添加一个plugins配置就能够了。 临时不公开源代码,须要的请联系我QQ(本文下方)。 我群里一位程序猿朋友应用上了我的插件类,效果例如以下: 欢迎增加Sencha Touch + Phonegap交流群 1群: 194182999 (满) 2群: 419834979 共同学习交流(博主QQ: 479858761 ) 来源: CSDN 作者: weixin_34342905 链接: https://blog.csdn.net/weixin_34342905/article/details/85916873

保证接口幂等性的解决方案(后台)

情到浓时终转凉″ 提交于 2019-12-02 12:28:57
假如有个服务提供一个接口(服务部署在多个服务机器),接着有个接口是付款接口。用户在前端上操作的时候,一个订单不小心发起了两次支付请求,然后这两个请求分散在了这个服务部署的不同的机器上,结果一个订单扣款扣两次。这样的场景,就是接口没有保证幂等性的结果。 保证幂等性的核心 1.对于每个请求必须有一个唯一的标识。 2.每次处理完请求之后,必须有一个记录标识这个请求处理过了。 3.每次接收请求需要进行判断之前是否处理过的逻辑处理。 常见解决方案 1.业务表内唯一索引 如果要对创建销售出库单的接口保证幂等性,也就是说人家网络超时,重复调用的时候,保证一个订单只能有一个对应的销售出库单。针对销售出库单的表的订单id,创建一个唯一索引,你如果接口被重试,同一个订单创建一个销售出库单的话,一定会违反唯一索引,那么此时会报错。 2.业务表内状态机 修改订单状态,比如说将订单状态修改为【待发货】的时候,订单的状态其实就变为了【待发货】。 update order set status = '待发货' where status = '待付款' and id = 1; 这时候如果id为1的订单接口被重复调用了,即使再执行一次这个操作也不会有效果,因为这时候该订单记录的状态字段已经改变了,SQL并不会命中该记录。 在这种业务场景中也是通常都会有逻辑判断的,比如当前是否处于某个状态,然后才能流转到下一个状态

Git基础使用教程

被刻印的时光 ゝ 提交于 2019-12-02 08:30:22
Git基础使用教程 Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理,是目前使用范围最广的版本管理工具。 一、Windows上安装Git 一般我们工作的电脑都是Windows系统,要使用git首先要进行安装。从软件管家或者其他平台找到git的安装包,下载后默认安装即可。 安装成功之后,可以在开始菜单里面找到git: 或者在桌面右键,也可以看到: 其中GUI为用户界面模式,Bash为命令行模式,这里就以Bash为例子介绍git的基本使用方法(其实相比于GUI,个人觉得Bash更容易学习理解)。 二、设置 由于git是分布式管理工具,需要输入用户名和邮箱以作为标识,因此,在命令行输入下列的命令: PS: 注意git config -- global 参数,有了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然你也可以对某个仓库指定的不同的用户名和邮箱,根据个人情况设置。 三、工作原理 安装好之后,在使用前先来了解一下Git的工作原理,是很有必要的一件事,下面是Git的工作流程和简化原理图: 1、Git工作流程 2、Git简化原理图 四、基本用法 1、创建版本库 版本库就是我们所说的“仓库”,英文名repository,你可以理解为一个目录,这个目录里面的所有文件都可以被Git管理,文件的修改,删除Git都能跟踪,

Git基础操作

狂风中的少年 提交于 2019-12-02 06:32:47
Git安装 通过命令行升级git for windows git update-git-for-windows git三个区 要对某个项目使用git进行管理,需要使用 git init 命令初始化git仓库 git init 会在当前目录生成一个隐藏文件夹 .git 不要去修改这个文件夹下的任意东西。 git仓库会分成三个区 工作区:我们书写代码的地方,工作的目录就叫工作区。 暂存区:暂时存储的区域,在git中,代码无法直接从工作区提交到仓库区,而是需要先从工作区添加到暂存区,然后才能从暂存区提交到仓库区。暂存区的目的是避免误操作。 本地仓库区:将保存在暂存区域的内容永久转储到 Git 仓库中,生成版本号。生成版本号之后,就可以任何的回退到某一个具体的版本。 git基本命令 git init 作用:初始化git仓库,想要使用git对某个项目进行管理,需要 git init 进行初始化 # 初始化仓库, 在当前目录下生成一个隐藏文件夹.git git init git add 作用:将文件由 工作区 添加到 暂存区 ,在git中,文件无法直接从工作区直接添加到仓库区,必须先从工作区添加到暂存区,再从暂存区添加到仓库区。 命令: git add 文件名/目录名 # 将index.html添加到暂存区 git add index.html # 将css目录下所有的文件添加到暂存区 git

MySQL学习

三世轮回 提交于 2019-12-02 03:14:43
把一个表复制到另一个表 复制表结构:create table newuser like user 导入表数据:insert into newuser select * from user 乐观锁和悲观锁 乐观锁: 首先说明一点的是:乐观锁在数据库上的实现完全是逻辑的,数据库本身不提供支持,而是需要开发者自己来实现。 常见的做法有两种:版本号控制及时间戳控制。 版本号控制的原理: 为表中加一个 version 字段; 当读取数据时,连同这个 version 字段一起读出; 数据每更新一次就将此值加一; 当提交更新时,判断数据库表中对应记录的当前版本号是否与之前取出来的版本号一致,如果一致则可以直接更新,如果不一致则表示是过期数据需要重试或者做其它操作(PS:这完完全全就是 CAS 的实现逻辑呀~) 至于时间戳控制,其原理和版本号控制差不多,也是在表中添加一个 timestamp 的时间戳字段,然后提交更新时判断数据库中对应记录的当前时间戳是否与之前取出来的时间戳一致,一致就更新,不一致就重试。 悲观锁: 使用 select .... for update 锁住使用的对象 来源: https://www.cnblogs.com/shemlo/p/11728242.html

敏捷开发流程总结

旧时模样 提交于 2019-12-02 02:04:54
Agile——敏捷开发,作为CMM神话崩溃后被引入的一套新的软件开发模式,这几年来被广泛引起关注,并被寄予厚望。敏捷开发在其它业界的应用是否理想不得而知,但下面总结了我所在公司的敏捷开发试验,希望能够达到管中窥豹的目的。 敏捷开发宣言—— 个体和交互 胜过 过程和工具 能够工作的软件 胜过 面面俱到的文档 客户合作 胜过 合同谈判 响应变化 胜过 遵循计划 尽管右项也有价值,可是我们觉得左项具有更大的价值。 以上的宣言比較抽象,基于该理念,下面是ThoughtsWork咨询公司的推崇的n个敏捷开发实践: Iteration 迭代开发。能够工作的软件胜过面面俱到的文档。因此,敏捷开发提倡将一个完整的软件版本号划分为多个迭代,每一个迭代实现不同的特性。重大的、优先级高的特性优先实现,风险高的特性优先实现。在项目的早期就将软件的原型开发出来,并基于这个原型在兴许的迭代不断晚上。迭代开发的优点是:尽早编码,尽早暴露项目的技术风险。尽早使客户见到可执行的软件,并提出优化意见。能够分阶段提早向不同的客户交付可用的版本号。 IterationPlanningMeeting 迭代计划会议。每一个迭代启动时,召集整个开发团队,召开迭代计划会议,全部的团队成员畅所欲言,明白迭代的开发任务,解答疑惑。 Story Card/Story Wall/Feature List 在每一个迭代中