首页 文章 精选 留言 我的

精选列表

搜索[实时风控],共10000篇文章
优秀的个人博客,低调大师

阿里巴巴直播防控中的实人认证技术

直播作为近来新兴的互动形态,已经成为近几年最风生水起的行业之一。在2016年仿佛进入了“千团大战”的繁华。欢聚时代10亿砸向虎牙和ME直播,斥资1亿签下主播MISS;腾讯4亿投资斗鱼,后者估值10亿美元;新成立的映客获得昆仑万维、复赛等机构的8000万人民币投资;易直播获得6000万人民币A轮融资;360推出花椒、秒拍推出一直播....网络直播正享受其最好的时光,直播"风口"成投资方必争之地。 然而网络直播也因为走的太快,而失去了出发的初心,主播行为、直播内容变得不可控,低俗、大尺度、无下限成为“劲爆”栏目。针对网络直播的种种怪相,12月1日,由国家网信办发布的,媒体认为“史上最严”的《互联网直播服务管理规定》正式开始施行。《规定》要求直播平台按照“后台实名、前台自愿”的原则,对用户进行移动电话号码等真实身份信息认证。而对于网络主播

优秀的个人博客,低调大师

Scrum 实操流程

Scrum 是用于开发、交付和持续支持复杂产品的一个框架,是一个增量的、迭代的开发过程。 敏捷的原则和方法 必须在每天的实践中落地,对人和管理要求高。所以有scrum master 为了适应变化,敏捷的迭代周期短 特征 迭代开发 :这意味着你应该重复开发过程。 增量交付 :意味着你应该一步一步地创建产品的“可用”子集,而不是在项目结束时一次性交付。 原则 迭代是受时间框限制的,也就是说即使放弃一些功能,也必须结束迭代。 每次迭代结束的时候让产品达到可交付状态十分重要, 每次迭代都以一个可运行的产品的公布而结束。 迭代开发是在变与不变中寻求平衡,在迭代开始的时候寻求变,而在迭代开发期间不能改变,以期集中精力完成已经确定的工作。由于一次迭代的时间并不长,所以就使稳定性和易变性得到很好的平衡。经验证明:4周是非常好的时间。 能否每个Sprint生成满足质量定义的PSPI 是Scrum 执行效果的试金石。 角色 product owner 作为产品负责人,PO清楚地知道产品的愿景,需要对产品待办列表的梳理、优化、优先级排序等负责。PO决定Why和What,一般可以对应为我们理解的产品经理和业务分析师的角色。 主要负责确定产品的功能和达到要求的标准,指定软件的发布日期和交付的内容,同时有权力接受或拒绝开发团队的工作成果。 Scrum master 主要负责整个Scrum流程在项目中的顺利实施和进行,以及清除挡在客户和开发工作之间的沟通障碍, 一般可以对应为我们理解的项目经理的角色。 Scrum team 主要负责软件产品在Scrum规定流程下进行开发工作。每位成员可能负责不同的技术方面(开发、测试),要求团队有很强的自组织能力,能够交付一个端到端的真正对客户有价值的产品。 曾经需要由经理或者lead来分配任务的团队,现在需要自己评审,估算,制定故事点数来管理BUG,然后再自己承诺在一个sprint中要解决的问题。 开发小组的工作 作为一个整体工作 :开发团队、测试团队、客服团队和product owner一起工作 按短迭代周期工作 :大部分是 2~4周,在 Scrum中采用的是 30个日历天,也就是 4 周。 每次迭代包括:分析、设计、编码、测试,变成可交付的软件(称之为功能增量) 关注业务优先级:按照PO制定的优先级交付功能 检查与调整 :每次新迭代开始,敏捷小组都会结合上一次迭代中获得新知识做出相应调整。 概念/工具 产品代办列表 Product backlog 使用产品Backlog来管理产品的需求, 产品backlog是一个按照商业价值排序的需求列表 PO首先将需求按照优先级进行排列,产生一个Product Backlog。作用类似于传统开发中项目经理确定需求文档 用户故事 user story :尽量减少依赖 冲刺代办列表 Sprint backlog 先有product backlog 产品经理和项目团队紧密协作,一起定义目标、梳理产品需求清单。清单中通常会包含产品特性、修复bug、非必要功能需求以及其他要在交付时完成的工作。 当研发团队制定了迭代清单后,除了团队成员外,任何人都不能再加入需求。 看板 工作流可视化 高度可视化的调度系统 DOD 用户故事完成dod 迭代完成dod 发布完成dod CI/CD 持续集成/部署 一次集成要做哪些事情呢?它至少包括:获得所有源代码、编译源代码、运行所有测试,包括单元测试、功能测试等; 会议 Sprint计划会议, sprint planning meeting 每日站会 Daily scrum meeting, 短期会议固定的日常循环下,每一位团队成员都回答三个问题: 上一次会议我完成了什么? 达到我的目标碰到了什么障碍? 下一次会议之前我需要做些什么? 调整,优化次日工作。 Sprint 评审会议 检验发布目标的进展,优化下一个sprint Sprint回顾会议 回顾已经完成的sprint, 并且确定做出什么改善使下个sprint更高效,快乐,满意 流程 1、我们首先需要确定一个Product Backlog(按优先顺序排列的一个产品需求列表),这个是由Product Owner 负责的; 2、Scrum Team根据Product Backlog列表,做工作量的预估和安排; 3、有了Product Backlog列表,我们需要通过 Sprint Planning Meeting(Sprint计划会议)来从中挑选出一个Story作为本次迭代完成的目标,这个目标的时间周期是1~4个星期,然后把这个Story进行细化,形成一个Sprint Backlog; 4、Sprint Backlog是由Scrum Team去完成的,每个成员根据Sprint Backlog再细化成更小的任务(细到每个任务的工作量在2天内能完成); 5、在Scrum Team完成计划会议上选出的Sprint Backlog过程中,需要进行 Daily Scrum Meeting(每日站立会议),每次会议控制在15分钟左右,每个人都必须发言,并且要向所有成员当面汇报你昨天完成了什么,并且向所有成员承诺你今天要完成什么,同时遇到不能解决的问题也可以提出,每个人回答完成后,要走到黑板前更新自己的Sprint burn down(Sprint燃尽图); 6、做到每日集成,也就是每天都要有一个可以成功编译、并且可以演示的版本;很多人可能还没有用过自动化的每日集成,其实TFS就有这个功能,它可以支持每次有成员进行签入操作的时候,在服务器上自动获取最新版本,然后在服务器中编译,如果通过则马上再执行单元测试代码,如果也全部通过,则将该版本发布,这时一次正式的签入操作才保存到TFS中,中间有任何失败,都会用邮件通知项目管理人员; 7、当一个Story完成,也就是Sprint Backlog被完成,也就表示一次Sprint完成,这时,我们要进行Srpint Review Meeting(演示会议),也称为评审会议,产品负责人和客户都要参加(最好本公司老板也参加),每一个Scrum Team的成员都要向他们演示自己完成的软件产品(这个会议非常重要,一定不能取消); 8、最后就是Sprint RetrospectiveMeeting(回顾会议),也称为总结会议,以轮流发言方式进行,每个人都要发言,总结并讨论改进的地方,放入下一轮Sprint的产品需求中; 本文分享自微信公众号 - PM吃瓜(wu_lian_club)。如有侵权,请联系 support@oschina.cn 删除。本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

优秀的个人博客,低调大师

【实操】VPC迁移

现在阿里云要求所有的云上用户在本月底之前将所有经典网络环境的产品迁移至专有网络VPC中,需要迁移而且还没有操作的用户需要抓紧时间了。下面给大家分享一个用户的迁移案例。 这个案例的产品架构是一个SLB下面挂着两台ECS,后端连接着RDS。因此需要将SLB、ECS、RDS都迁移至专有网络VPC下。 既然要迁移到VPC,我们就需要先来创建一个VPC。点击阿里云控制台下的“专有网络VPC”,然后点击“创建专有网络”。注意要选择和我们的云产品在同一地域。 然后需要我们配置专有网络和虚拟交换机,注意虚拟交换机要选择和我们的云产品在同一可用区,点击“确定”。 创建好VPC之后我们顺便来配置一下安全组(也可以之后再配置,但是必须要配置)。点击我们刚刚创建的VPC,再点击安全组进入安全组列表。点击右上角的“创建安全组”。 之后会弹出安全组配置窗口,阿里云给用户提供了windows和linux两种模板可以直接使用。两种模板开通的端口是完全一样的,当然我们也可以自行配置要开通的端口。然后输入安全组的名称,网络类型一定要选择专有网络,再选择我们刚刚创建的VPC。选择好以后点击“确定”。 以上工作都做好之后我们先来迁移RDS,点击我们要迁移的RDS实例,在数据库连接页面中点击“切换为专有网络”。 之后会弹出切换为专有网络的配置窗口,选择我们刚刚之前创建的VPC和虚拟交换机。勾选“保留原经典网络”的话可以保留现有经典网络的RDS实例最多120天,超过保留期限之后将会被释放。最后点击“确定”就可以完成RDS经典网络往专有网络VPC的切换了。切换过程中数据库会中断连接,请在不影响业务的情况下操作。 有的时候会提示我们无法操作,需要开启高安全模式才能切换为专有网络。高安全模式需要我们到数据库代理页面中开启。需要注意的是开启高安全模式会降低数据库的相应时间20%以上,另外开启的时候数据库连接会中断10秒左右。 RDS迁移完之后我们再来迁移ECS,ECS的迁移需要先跟阿里云预约。选择我们要迁移的服务器,点击“更多”-“网络和安全组”-“预约迁移至专有网络”。 接下来会弹出窗口提示我们一些注意事项,点击“确定”就完成预约了。之后我们需要等待阿里云审批。 审批进度可以在“云服务器ECS”-“概览”-“待处理事件”中查看。 审批通过之后就可以进行后续的操作了,同样到“待处理事件”中查看,可以看到现在的状态是等待预约。 勾选我们需要迁移的实例,然后点击“预约迁移”。 接下来需要选择我们之前创建的VPC、虚拟交换机、和专有网络安全组,下面还需要设置迁移的时间,一般时间会默认在当前操作时间的1小时之后。确认没问题之后点击“确定”。 操作完之后阿里云会在到达我们预约迁移时间的时候自动执行ECS实例的迁移。这时候实例需要重启,注意设定预约时间的时候选择不影响业务的时间来迁移。另外ECS从经典网络迁移到专有网络VPC之后公网地址不会改变,但是无法在ECS实例端查看到ECS公网地址,所以如果部署的应用对ECS操作系统上可见的公网IP有依赖,迁移后会有影响,请谨慎评估。最后当我们把ECS的迁移工作完成之后SLB会自动添加新的ECS地址,不需要我们去操作。 注意事项1、ECS和RDS的迁移过程都有一段时间无法正常工作,迁移操作请选择合适的时间进行。2、ECS迁移之后内网地址会改变,所以需要在RDS白名单中配置新的ECS内网IP来保证ECS和RDS之间的正常访问。3、部分Windows操作系统的用户在迁移之后出现web应用无法访问的问题,基本都是因为host配置中的地址还是原经典网络的IP造成的。 更多内容请关注

优秀的个人博客,低调大师

秒杀之流控

01 秒杀带来的问题和挑战 秒杀场景下几大问题: 瞬时流量之高一方面造成的读写冲突,数据库锁会非常严重。 应用服务器负载高。 秒杀意味着各种活动,需要快速迭代业务,快速上下线,快速支持需求! 从系统上讲我们要做到高可用和高并发;从开发效率上我们要做到敏捷开发以支持产品快速迭代。 如果把解决秒杀问题看成一种武林秘籍,则产品架构是内功,流量控制是招法,上乘内力搭配制胜招法则无往而不利。 02 内功-产品架构解决之道 向一站式架构说”NO” 上图是一个典型的一站式架构,一站式架构存在很多问题。 首先就是不易扩展,难以维护。 一站式架构中的扩容往往建立在“既然什么都没改,则运行应该正常”的假设之上,而扩容迁移中的各种BUG则隐藏在这种假设之中。 其次是代码难以理解,开发质量得不到保证。随着系统规模的扩大,即便是最初经过良好设计的代码,经过人员迭代,需求压力,也难免会逐渐走向混乱。 最后在一站式架构下项目的可靠性是无法得到保证的,由于业务调整而修改一处逻辑,往往会影响到代码中很多功能的逻辑,而这些额外受到影响的功能则通常不会得到测试,只是在假定这些都是正常的,而这种假定也通常正确,直接潜在的问题爆发。该出错的总会出错,墨菲定律往往这时候是最有效的。 综上可以看出一站式架构设计与敏捷开发格格不入,持续开发,持续集成,持续部署也就只能变成空谈了。 03 微服务架构 上图是优化后的微服务架构,将整个系统拆分成订单、推送、折扣、产品、个人信息等各个微服务,每个服务都有自己的数据库和缓存等,并且不会互相交叉。各服务之间使用消息队列、RPC调用等传输数据。目前大部分系统设计可能处于一站式架构和微服务架构之间,即上层应用可能已经服务化,但是数据库层面还是使用同一个库。但个人以为系统应该朝完全微服务化努力,隔离数据库层面的共用,以获得更高的系统可靠性。 微服务架构下的系统更加容易进行扩展,可以只针对需要扩容的系统来进行扩容,例如订单量增大,可以只扩容订单服务,而对于其他服务例如个人信息、折扣中心等都都不进行调整,这样一方面减少了系统扩容而对整体稳定性带来的变化,即只需测试新环境中的订单服务即可,随着微服务拆分的越细,这种优势也就越大。 在这种微服务架构下,开发人员可以更加集中精力,将重点放到少量的代码和明确的业务上,这样能够产出更加优雅的代码和良好的设计,在代码优化调整中,也不会由于到处调用而畏手畏脚。每个微服务可以安排2-3人的小组专门维护,这样也会减少一个微服务内部的沟通成本,而进一步提高生产力。每个微服务小组可以独立工作,无需过多协调即可实践新功能或想法。 随着技术的不断发展,项目所用的技术架构总会过时,在系统技术革新上,对于传统的一站式架构,甚至是之前提到的服务化架构在应用新技术上都会遇到不小的困难,牵一发动全身,技术改革往往除了推倒重来而没有其他办法。对于微服务架构,由于系统的完全拆分,公共组件依赖只剩下异步的消息队列,在新技术应用这方面则有了天然优势。微服务基于组件开发设计,提供了在开发过程中技术选型的最大灵活性,甚至是编程语言的变化都可以进行尝试。 最后要提到的,就是系统稳定性和可用性方面的考虑。在业务需求的持续推动下,持续部署不可避免,在线系统随时都需要进行上线。随着业务的增长、系统的复杂,系统部署时造成问题的潜在可能性会大大提高。而微服务在这方面极大的提高了系统的可靠性。由于微服务的划分,故障天然被隔离,某个服务的故障,不会造成系统的整体瘫痪。而发布的时间由于只需要发布更新相关的服务而大大缩短,这也提高了整体系统的稳定性。当面临问题需要回滚时,也只需要回滚更新相关服务即可,而这在一站式架构中将会是一个灾难。 良好的架构可以更好的支持快速迭代。高内聚的设计将开发人员精力集中到相对集中的领域以设计更优雅的代码实现。随着技术的演进,项目架构也可以跟着一起迭代升级。也可以更好的支持持续集成、持续部署。总之,微服务可以渗透到开发中的每个领域为业务迭代提供更好的支持。微服务这方面建议可以参考spring clound和docker。 04 招法-流量控制解决方案 内功的修炼固然重要,不过并非一朝一夕可成,是需要长期的努力和不断的沉淀。在武学中固然有高神内力,同时也存在一些致胜招法,一旦练成即可功力猛进,下来就让我们看一下支持秒杀业务中的一些致胜招法:流量控制解决方案。 05 流量控制解决总览 如上图所示,在项目的整个架构中,流量要做到逐层减少。在每层中都可以使用一些方法来减少流量。 06 前端流量控制 前端流量控制,页面可以设计为动静分离,将尽可能多的数据使用CDN进行缓存,以减少到自己服务器上的流量。同时可以加入验证问题,拉长用户下单时间并防止刷单。对较核心逻辑担心用户破译验证方式,可以再增加服务器端的用户ID访问限制,例如同一用户5s内只能触发1次相关操作等。 07 反向代理流量控制 反向代理(nginx)流量控制,很多页面或者接口响应数据都可以进行静态化处理,应用侧(tomcat)可以定时生成这些资源,发到内容分发服务上,内容分发服务可以将这些静态化资源分发到所有的反向代理上。这些数据可以根据需要按照一定时间间隔进行更新。同时,也可以利用nginx中的缓存配置功能,对热点接口进行缓存。 借助nginx中nginx-lua插件的功能,一些简单逻辑在nginx中直接实现会比较容易,使用恰当,能够大幅减少到应用服务器的请求。例如倒计时,取系统当前时间等逻辑就非常适合在nginx中使用lua实现。对于存在缓存中的商品数量等信息也可由nginx直接访问缓存返回,而不将请求再转发给应用服务器。 08 访问数据分析流量控制 在秒杀中,令人头疼的问题不只是正常流量突增。由于秒杀活动一般都带有优惠性质,恶意访问也会增多,对于恶意请求在nginx层也可以做很多工作,进行一次拦截。nginx配置中有限制用户访问频率的配置可以根据需要进行配置。同时,也可以使用nginx-lua完成一些简单的封禁逻辑,例如调用接口可以封掉指定IP或者UA的访问请求。之后利用日志分析程序,对访问日志进行分析,将需要封掉的IP或者UA等信息调用nginx上提供的接口进行封杀。 09 应用服务器流量控制 经过之前的处理,能够到达应用服务器的流量已经少了很多。对于秒杀活动这类的需求,可以准备专门的活动服务器,专门处理相关逻辑。可以使用不同域名进行分流,或者按照一定URL规则在反向代理服务器上进行分流。同时,对于到数据库进行操作的请求可以使用阻塞队减少到数据库的访问以减少行锁等。对于明显超出处理范围的请求可以直接返回秒杀已经结束。例如商品总量300,剩余量100,每台应用服务器上待处理的值超过总量的值则可以直接返回秒杀结束。剩余量可以存入缓存服务中,剩余量可以不那么精确,确保缓存中的剩余量>=实际剩余量即可。超出剩余量的请求也可以直接返回秒杀结束。 缓存存储多点部署以提高系统的整体可用性,避免缓存问题导致系统出错的情况。redis会是一个目前比较好的选择,主从自动切换等功能可以更好的增强系统整体可用性。对于使用单点memcache等系统,建议可以配置keepalived,使得发生机器故障时,IP可以自动转移到另外一台健康memacahe服务器上,虽然数据不可恢复,但是缓存组件依然可用。宕机的组件对系统造成的影响往往是不可预料的,尤其是在未良好设计的系统中,整体架构中应任一组件完全宕机的可能性。 对于秒杀活动需求,可能是一系列的活动,相关逻辑可以判断是否可以做到一个专门活动库中,并进行读写分离设计。有条件的情况下,数据库中间件会完成其中一部分工作。在没有相关条件的时候,即使没有数据库中间件,相关逻辑也可以直接在代码中实现。 对于数据库行锁问题,如有需要可以进一步优化,例如上图,将行锁问题通过拆分具体商品,增加分配ID标志,去掉行锁。这个变动的缺点是可能对现有业务逻辑影响较大。不过优点也很明显,在数据库层面消除了行锁。 10 流量控制总结 一图胜千言,以上讨论的流量控制总结方案可以总结到一张图上: 11 总结 结合微服务架构,我们最终的架构图可以是这样的:

优秀的个人博客,低调大师

【图文】实操创建快照

大家好,本期为大家介绍阿里云如何创建快照。当您希望使用某块磁盘上的数据作为其它磁盘的基础数据,或者是当磁盘上的数据出现问题需要回滚磁盘的时候,都需要用到磁盘快照。下面开始说明:首先登录阿里云控制台,进入云服务器ECS实例页面,选择需要创建快照的实例。之后点击本实例磁盘。这里我们可以看到本实例的系统盘和数据盘。下面我们可以通过两种方式来创建快照:手动创建和设置自动快照策略。我们先介绍一下手动创建,点击创建快照。在弹出的页面中输入快照名称,标签可以定义快照,方便管理,非必填项,大家可根据需求选择。最后点击确定。之后点击左侧导航栏的本实例快照。这里就可以看到我们刚刚手动创建的快照,等进度变成100%的时候,快照就创建好了。同时也可以在这里通过快照进行回滚磁盘和创建自定义镜像的操作。接下来介绍一下如何创建自定义快照策略。在云服务器ECS页面下点击自动快照策略。这里可以看到我之前创建的快照策略,点击右上角的创建策略。在弹出的页面中输入策略名称,选择创建时间和重复日期,这两项都可以多选,大家根据业务需求自行选择。最后选择快照的保留时间然后点击确定。之后自动快照策略就创建好了,接下来还需要我们将这条策略应用到磁盘上。点击设置磁盘,勾选未设置策略的磁盘,然后点击执行快照策略。现在自动快照策略就设置好了,系统会在我们设置的时间和重复日期里自动创建磁盘快照。 本期创建快照的介绍到此结束,如果大家在创建快照的操作中遇到问题可以在下方留言与我们进行交流。 想获得更多信息,请扫描二维码,关注云特快。如您有疑问也可通过公众号或者直接来电400-650-2029与资深专家进行一对一沟通解决。

优秀的个人博客,低调大师

【图文】实操重置密码

大家好,我们今天介绍如何修改阿里云服务器ECS的远程连接密码和实例密码。 在使用过程中许多用户容易忘掉自己的密码,或者因更改负责人且交接没到位,导致不知道密码,无法使用服务器。这时,您可以登录阿里云账号在控制台直接重置更改密码。 进入管理控制台,这里我们新建了一个ECS。在右侧,点开“更多”,可以看到“密码/密钥”,您可以根据需求选择需要修改的密码,我们分别点开看看。这是点击重置密码之后的窗口,可参照提示修改实例密码,修改完成后记得重启。这是点击修改远程连接密码之后的窗口,这里修改的是远程连接的密码。以上就是修改密码的流程,如果您在操作中遇到其它问题欢迎在下方留言,我们会一一帮您解答。 想获得更多信息,请扫描二维码,关注云特快。如您有疑问也可通过公众号或者直接来电400-650-2029与资深专家进行一对一沟通解决。

资源下载

更多资源
Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册