首页 文章 精选 留言 我的

精选列表

搜索[索引崩溃],共10007篇文章
优秀的个人博客,低调大师

IO问题引发线上20台机器同时崩溃

几年前的一个下午,公司里码农们正在安静地敲着代码,突然很多人的手机同时“哔哔”地响了起来。本来以为发工资了,都挺高兴!打开一看,原来是告警短信 故障回顾 告警提示“线程数过多,超出阈值”,“CPU空闲率太低”。打开监控系统一看,订单服务所有20个服务节点都不行了,服务没响应。 每个springboot节点线程数全都达到了最大值。但是JVM堆内存和GC没有明显异常。CPU 空闲率基本都是0%,但是CPU使用率并不高,反而IO等待却非常高。下面是执行top命令查看CPU状况的截图: 从上图,我们可以看到: CPU空闲率是0%(上图中红框id) CPU使用率是22%(上图中红框 us 13% 加上 sy 9%,us可以理解成用户进程占用的CPU,sy可以理解成系统进程占用的CPU) CPU 在等待磁盘IO操作上花费的时间占比是76.6% (上图中红框 wa) 到现在可以确定,问题肯定发生在IO等待上。利用监控系统和jstack命令,最终定位问题发生在文件写入上。大量的磁盘读写导致了JVM线程资源耗尽(注意,不代表系统CPU耗尽)。最终导致订单服务无法响应上游服务的请求。 IO,你不知道的那些事儿 既然IO对系统性能和稳定性影响这么大,我们就来深入探究一下。 所谓的I/O(Input/Output)操作实际上就是输入输出的数据传输行为。程序员最关注的主要是磁盘IO和网络IO,因为这两个IO操作和应用程序的关系最直接最紧密。 磁盘IO:磁盘的输入输出,比如磁盘和内存之间的数据传输。 网络IO:不同系统间跨网络的数据传输,比如两个系统间的远程接口调用。 下面这张图展示了应用程序中发生IO的具体场景: 通过上图,我们可以了解到IO操作发生的具体场景。一个请求过程可能会发生很多次的IO操作: 页面请求到服务器会发生网络IO 服务之间远程调用会发生网络IO 应用程序访问数据库会发生网络IO 数据库查询或者写入数据会发生磁盘IO IO和CPU的关系 不少攻城狮会这样理解,如果CPU空闲率是0%,就代表CPU已经在满负荷工作,没精力再处理其他任务了。真是这样的吗? 我们先看一下计算机是怎么管理磁盘IO操作的。计算机发展早期,磁盘和内存的数据传输是由CPU控制的,也就是说从磁盘读取数据到内存中,是需要CPU存储和转发的,期间CPU一直会被占用。我们知道磁盘的读写速度远远比不上CPU的运转速度。这样在传输数据时就会占用大量CPU资源,造成CPU资源严重浪费。 后来有人设计了一个IO控制器,专门控制磁盘IO。当发生磁盘和内存间的数据传输前,CPU会给IO控制器发送指令,让IO控制器负责数据传输操作,数据传输完IO控制器再通知CPU。因此,从磁盘读取数据到内存的过程就不再需要CPU参与了,CPU可以空出来处理其他事情,大大提高了CPU利用率。这个IO控制器就是“DMA”,即直接内存访问,Direct Memory Access。现在的计算机基本都采用这种DMA模式进行数据传输。 通过上面内容我们了解到,IO数据传输时,是不占用CPU的。当应用进程或线程发生IO等待时,CPU会及时释放相应的时间片资源并把时间片分配给其他进程或线程使用,从而使CPU资源得到充分利用。所以,假如CPU大部分消耗在IO等待(wa)上时,即便CPU空闲率(id)是0%,也并不意味着CPU资源完全耗尽了,如果有新的任务来了,CPU仍然有精力执行任务。如下图: 在DMA模式下执行IO操作是不占用CPU的,所以CPU IO等待(上图的wa)实际上属于CPU空闲率的一部分。所以我们执行top命令时,除了要关注CPU空闲率,CPU使用率(us,sy),还要关注IO Wait(wa)。注意,wa只代表磁盘IO Wait,不包括网络IO Wait。 Java中线程状态和IO的关系 当我们用jstack查看Java线程状态时,会看到各种线程状态。当发生IO等待时(比如远程调用时),线程是什么状态呢,Blocked还是Waiting? 答案是Runnable状态,是不是有些出乎意料!实际上,在操作系统层面Java的Runnable状态除了包括Running状态,还包括Ready(就绪状态,等待CPU调度)和IO Wait等状态。 如上图,Runnable状态的注解明确说明了,在JVM层面执行的线程,在操作系统层面可能在等待其他资源。如果等待的资源是CPU,在操作系统层面线程就是等待被CPU调度的Ready状态;如果等待的资源是磁盘网卡等IO资源,在操作系统层面线程就是等待IO操作完成的IO Wait状态。 有人可能会问,为什么Java线程没有专门的Running状态呢? 目前绝大部分主流操作系统都是以时间分片的方式对任务进行轮询调度,时间片通常很短,大概几十毫秒,也就是说一个线程每次在cpu上只能执行几十毫秒,然后就会被CPU调度出来变成Ready状态,等待再一次被CPU执行,线程在Ready和Running两个状态间快速切换。通常情况,JVM线程状态主要为了监控使用,是给人看的。当你看到线程状态是Running的一瞬间,线程状态早已经切换N次了。所以,再给线程专门加一个Running状态也就没什么意义了。 深入理解网络IO模型 5种Linux网络IO模型包括:同步阻塞IO、同步非阻塞IO、多路复用IO、信号驱动IO和异步IO。 写在前面 为了更好地理解网络IO模型,我们先了解几个基本概念。 Socket(套接字):Socket可以理解成,在两个应用程序进行网络通信时,分别在两个应用程序中的通信端点。通信时,一个应用程序将数据写入Socket,然后通过网卡把数据发送到另外一个应用程序的Socket中。我们平常所说的HTTP和TCP协议的远程通信,底层都是基于Socket实现的。5种网络IO模型也都要基于Socket实现网络通信。 阻塞与非阻塞:所谓阻塞,就是发出一个请求不能立刻返回响应,要等所有的逻辑全处理完才能返回响应。非阻塞反之,发出一个请求立刻返回应答,不用等处理完所有逻辑。 内核空间与用户空间:在Linux中,应用程序稳定性远远比不上操作系统程序,为了保证操作系统的稳定性,Linux区分了内核空间和用户空间。可以这样理解,内核空间运行操作系统程序和驱动程序,用户空间运行应用程序。Linux以这种方式隔离了操作系统程序和应用程序,避免了应用程序影响到操作系统自身的稳定性。这也是Linux系统超级稳定的主要原因。所有的系统资源操作都在内核空间进行,比如读写磁盘文件,内存分配和回收,网络接口调用等。所以在一次网络IO读取过程中,数据并不是直接从网卡读取到用户空间中的应用程序缓冲区,而是先从网卡拷贝到内核空间缓冲区,然后再从内核拷贝到用户空间中的应用程序缓冲区。对于网络IO写入过程,过程则相反,先将数据从用户空间中的应用程序缓冲区拷贝到内核缓冲区,再从内核缓冲区把数据通过网卡发送出去。 同步阻塞IO 我们先看一下传统阻塞IO。在Linux中,默认情况下所有socket都是阻塞模式的。当用户线程调用系统函数read(),内核开始准备数据(从网络接收数据),内核准备数据完成后,数据从内核拷贝到用户空间的应用程序缓冲区,数据拷贝完成后,请求才返回。从发起read请求到最终完成内核到应用程序的拷贝,整个过程都是阻塞的。为了提高性能,可以为每个连接都分配一个线程。因此,在大量连接的场景下就需要大量的线程,会造成巨大的性能损耗,这也是传统阻塞IO的最大缺陷。 同步非阻塞IO 用户线程在发起Read请求后立即返回,不用等待内核准备数据的过程。如果Read请求没读取到数据,用户线程会不断轮询发起Read请求,直到数据到达(内核准备好数据)后才停止轮询。非阻塞IO模型虽然避免了由于线程阻塞问题带来的大量线程消耗,但是频繁的重复轮询大大增加了请求次数,对CPU消耗也比较明显。这种模型在实际应用中很少使用。 多路复用IO模型 多路复用IO模型,建立在多路事件分离函数select,poll,epoll之上。在发起read请求前,先更新select的socket监控列表,然后等待select函数返回(此过程是阻塞的,所以说多路复用IO也是阻塞IO模型)。当某个socket有数据到达时,select函数返回。此时用户线程才正式发起read请求,读取并处理数据。这种模式用一个专门的监视线程去检查多个socket,如果某个socket有数据到达就交给工作线程处理。由于等待Socket数据到达过程非常耗时,所以这种方式解决了阻塞IO模型一个Socket连接就需要一个线程的问题,也不存在非阻塞IO模型忙轮询带来的CPU性能损耗的问题。多路复用IO模型的实际应用场景很多,比如大家耳熟能详的Java NIO,Redis以及Dubbo采用的通信框架Netty都采用了这种模型。 下图是基于select函数Socket编程的详细流程。 信号驱动IO模型 信号驱动IO模型,应用进程使用sigaction函数,内核会立即返回,也就是说内核准备数据的阶段应用进程是非阻塞的。内核准备好数据后向应用进程发送SIGIO信号,接到信号后数据被复制到应用程序进程。 采用这种方式,CPU的利用率很高。不过这种模式下,在大量IO操作的情况下可能造成信号队列溢出导致信号丢失,造成灾难性后果。 异步IO模型 异步IO模型的基本机制是,应用进程告诉内核启动某个操作,内核操作完成后再通知应用进程。在多路复用IO模型中,socket状态事件到达,得到通知后,应用进程才开始自行读取并处理数据。在异步IO模型中,应用进程得到通知时,内核已经读取完数据并把数据放到了应用进程的缓冲区中,此时应用进程直接使用数据即可。 很明显,异步IO模型性能很高。不过到目前为止,异步IO和信号驱动IO模型应用并不多见,传统阻塞IO和多路复用IO模型还是目前应用的主流。Linux2.6版本后才引入异步IO模型,目前很多系统对异步IO模型支持尚不成熟。很多应用场景采用多路复用IO替代异步IO模型。 如何避免IO问题带来的系统故障 对于磁盘文件访问的操作,可以采用线程池方式,并设置线程上线,从而避免整个JVM线程池污染,进而导致线程和CPU资源耗尽。 对于网络间远程调用。为了避免服务间调用的全链路故障,要设置合理的TImeout值,高并发场景下可以采用熔断机制。在同一JVM内部采用线程隔离机制,把线程分为若干组,不同的线程组分别服务于不同的类和方法,避免因为一个小功能点的故障,导致JVM内部所有线程受到影响。 此外,完善的运维监控(磁盘IO,网络IO)和APM(全链路性能监控)也非常重要,能及时预警,防患于未然,在故障发生时也能帮助我们快速定位问题。 看完三件事❤️ 如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙: 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。 关注公众号 『 java烂猪皮 』,不定期分享原创知识。 同时可以期待后续文章ing🚀 本文作者:冯涛 来自公众号:架构师进阶之路

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

详尽复盘苹果为何死磕美国政府:业务崩溃风险

圣伯纳迪诺郡是美国加州南部一个贫瘠的地区,广袤的荒漠,炙热的阳光,稀少的人口。如果不是因为去年12月那起震惊美国乃至全球的恐怖枪击案,这里很少会成为媒体的报道焦点。这起枪击案不仅促使全球最强大的美国政府开始反思本土反恐政策,也将全球最强大的苹果公司卷入了一场前所未有的安全风波。(注:美国的郡行政级别相当于中国的地级市。) 去年12月2日,圣伯纳迪诺郡卫生局员工赛义德·法鲁克(Syed Farook)在一次聚会与同事发生冲突之后回家,带着妻子持枪返回聚会现场大开杀戒,导致14人死亡,17人受伤。两名嫌犯在逃跑过程中被警方当场击毙。在枪支泛滥的美国,这是2015年的第355起枪击案。但法鲁克和妻子都信奉伊斯兰教,妻子来自中东地区,更曾经在Facebook上匿名支持ISIS伊斯兰国。两人在案发之前购入了大量枪支弹药进行准备。因此,这起事件被定性为一起有预谋的恐怖袭击事件。 美国联邦调查局在调查过程中查获了嫌犯法鲁克的一部iPhone 5c手机,这是圣伯纳迪诺卫生局配发给他的工作手机。由于手机设置了密码,连续十次输错就有可能导致数据销毁,联邦调查局因此寻求苹果公司的协助,希望苹果可以解除这部手机的安全防护功能,查明法鲁克在案发之前的一些关键动向,尤其是与国外伊斯兰恐怖组织的联系。 这也由此掀开了苹果与美国政府的公开对抗事件。苹果公司拒绝了美国联邦调查局的这一要求,后者因此通过法律渠道,借助加州法官向苹果下达命令。而苹果选择了公开对抗法官命令的应对方式。全球市值最高的苹果公司发现自己被逼到了一个进退两难的困境。或许在目前的情况下,库克唯一可以选择的就是通过各种公开渠道,顶住美国政府的压力。 美国南加州恐怖袭击嫌犯 美国南加州恐怖袭击嫌犯 苹果到底在对抗什么? 双方的冲突焦点到底何在?即便是联邦调查局也承认,苹果已经提供了诸多技术协助。根据美国政府的搜查令,苹果提供了法鲁克iPhone手机的iCloud备份数据,但数据截止日期是嫌犯作案前的一个半月。在这段关键的时期,法鲁克关闭了iCloud自动备份功能。加州中部地区检察官在法庭文件中表示,“嫌犯停止了iCloud自动备份功能,可能是为了隐藏证据。(这部手机)可能存在嫌犯在作案前后的相关关键的通讯和数据,而目前调查人员尚未获得。这些数据存储在这部手机中,而且无论是政府还是苹果都无法通过其它手段接入。” 虽然联邦调查局已经通过电信运营商和互联网公司成功获取了这部手机的社交网络、通信记录、网络搜索、电子邮件以及常规短信等数据。但真正让他们感兴趣的,正是案发之前六个星期这部iPhone 5c手机上的关键数据,包括iMessage、FaceTime、WhatsApp这样存储在手机上的加密通信,以及没有备份的照片和视频等内容。 按照目前iOS 9的安全设定,如果用户关闭自动备份并且加密手机,那么只有拿到用户密码才可能获得iPhone上的数据。如果用户开启自动销毁功能,那么连续输错十次密码,手机上的所有数据都会自动销毁。这正是让联邦调查局感到抓狂之处。由于解锁要求遭到苹果公司拒绝,美国司法部依据《All Writs Act》协助调查法案,借助法官下令要求苹果提供一个新软件,暂停iPhone的这一保密功能。 显然美国政府认为,“苹果有大量技术手段可以协助政府完成搜查”。这种理解也来自于过往的记录。根据美国司法部的法庭文件,苹果公司从2008年以来收到了70次法庭命令,要求协助政府获取手机数据,苹果都服从命令提供了协助。他们由此认为,苹果抗拒与政府合作的主要原因是出于对商业模式和公众品牌营销战略的担忧。 然而,苹果也有自己的解释。此前配合政府调查解锁手机,大多是在较老的操作系统版本。在过去几个月美国警方15次协助调查要求中,苹果已经拒绝了其中的12次。但最为关键的一点是,苹果声明自己在技术上也无法做到直接破解用户手机。苹果公开声明,“我们于 2014 年 7 月 1 日到 2015 年 6 月 30 日期间收到的、所有涉及美国帐户的信息请求,经我们严格审查,Apple 实际上仅披露了其中的 27% 而已。” 难道,联邦调查局没有能力自己强行破解吗?目前看起来的确如此,他们更担心解锁不慎导致数据销毁。如果他们可以自己搞定,为何要丢脸难堪通过法院来公开施压苹果公司?非营利性机构民主科技中心(Center for Democracy and Technology)首席技术官约瑟夫·哈尔(Joseph Hall)也持有同样观点,“(iPhone的)加密如此完善严格,他们(联邦调查局)知道自己无法破解(很可能会导致手机自动销毁数据),否则早就自己破解了。” 那么究竟苹果是不愿配合,还是无法做到?在拿到法庭命令配合调查反恐的义务上,苹果没有理由去公开对抗美国司法部门,解锁这部手机是情理之中。但如果仔细探寻最近几年iOS的保密权限演变,可以发现苹果从2013年就开始有意识地逐步断绝获取用户数据的通道。在过去几年的公开讲话中,库克也多次强调,即便是苹果公司的工程师,也无法获取用户的加密未备份数据,包括iMessage和FaceTime通讯内容。 时间追溯到2013年,苹果推出重新设计的iOS 7,同年iPhone 5s推出指纹支付。苹果在iOS 7上将所有第三方数据存储在用户手机上。2014年,iOS 8断绝了苹果自己工程人员解锁用户手机的可能性。2015年,iOS 9彻底隔绝了用户手机数据被暴力破解的可能性。换句话说,如果iOS 8之后的iPhone用户加密手机,关闭iCloud备份功能,那么除非拿到用户密码,否则数据将一直保存在 iPhone内。即便是苹果自己,也无能为力。 是什么促使苹果彻底断绝自己的技术后路?除了苹果引以为荣的安全功能,还有几大关键因素也在促使他们不断加强iOS的保密性能。 2013年,美国国家安全局(NSA)合约商的雇员爱德华·斯诺登(Edward Snowden)曝光了棱镜门事件,即美国国家安全局持续施压诸多互联网公司提供用户通讯信息,被指控卷入其中的互联网公司包括谷歌、苹果、雅虎、微软、Facebook。虽然这些互联网公司随后均声明并不知情棱镜门项目,谷歌、微软等公司甚至还起诉联邦政府。然而,这一事件毫无疑问给美国互联网公司的声誉带来了难以估计的负面影响。 除了棱镜门事件之外,苹果收紧系统安全控制也是与外在压力以及自身功能所密切相关的。早在五年前,苹果就因为iPhone收集用户位置数据问题开始遭受集体诉讼,在中国也曾在2014年遭致中国中央电视台的曝光。2014年7月,美国一名黑客曝光苹果在iOS上留有一个检测运行状态的后门,可以在用户不知情的情况下获取信息。而且,2013年的指纹识别功能和2015年的Apple Pay功能,让苹果更加重视安全问题。因为只有在确保安全性的前提下,这两项功能才可以得到用户的认可。 此外,虽然苹果也有iAd这样的移动平台,但苹果的商业模式依然与谷歌截然不同。谷歌提供了免费的Android平台以及诸多网络服务,而后通过数据分析实现精准广告定位来获取营收;广告收入是谷歌最主要的收入来源。而苹果的收入来源则是iPhone、Mac、iPad等硬件产品,尤其是贡献了接近七成营收的iPhone。从营收占比来说,苹果实际上是一家手机公司。 这也是为何苹果要在iOS 8之后彻底断绝后路的原因。在iOS 8之后,只有用户自己才可以获取iPhone数据,只要加密手机和关闭备份。一方面避免外在黑客暴力破解的可能性,更重要的另一方面是,无论政府如何施压苹果,苹果也无法配合,除非改写iOS系统代码。而这正是美国政府如今施压苹果的目的所在。 苹果绝不会设立后门 苹果绝不会设立后门 苹果为何要公开对抗? 如果苹果被迫接受美国政府的要求,在iOS系统中给政府重新开了一个后门,那也就意味着政府可以不再需要像目前这样,每次向法院申请执行命令才找苹果获取数据。而这正是库克“措辞愤怒”发布公开信,选择与法官命令公开对抗的直接原因,因为给政府留出后门是苹果无论如何都不能接受的,这会直接导致苹果赖以生存的安全大坝出现溃堤,给苹果的业务模式带来无法弥补的巨大损失。 分析苹果上一财年的财报可以发现,苹果有三分之二的营收都是来自于北美以外市场,海外的1500多亿美元几乎相当于微软和谷歌的营收总和。如果苹果此次不公开对抗美国司法部门,屈服压力在iOS上重新开设后门,那么受损最大的就是苹果的海外市场和企业市场。苹果产品此外苦心打造的安全形象也将彻底崩塌, 棱镜门曝光之后,诸多国家和地区政府都对美国的科技公司持有怀疑态度,担忧他们配合美国政府从事监视活动。这种担忧情绪在欧洲和中国这两大地区体现的尤为明显。这也是谷歌等科技公司领导人此次纷纷公开支持库克的重要原因。 在中国市场,思科等美国科技公司失去了诸多政府和国有企业的采购大单,带来业务的明显滑坡。在欧洲市场,去年欧盟最高法院作出裁决,废除了欧美双方在2001年签署的关于数据交换的《安全港协议》。这意味着美国互联网公司将所收集的欧洲市场数据传输回美国将受到欧洲法律的限制,此前他们一直将数据传输回美国进行存储和分析。受此影响,美国互联网公司将不得不在欧洲设立数据中心。 更加值得一提的是,苹果最为看重的中国市场。库克多次强调,中国将成为苹果的最大市场。在苹果的财报中,中国市场重要性也在不断接近美国市场,最新财报为苹果贡献了接近四分之一的营收。上一财年,苹果从中国市场带走了590亿美元的营收。2015年根据IDC的数据,苹果iPhone在中国市场的出货量高达5860万部,这还不包括传统的水货市场。 功能设计、品牌价值、安全可靠都是iPhone在中国热销的重要原因。如果苹果此次给美国政府留出iOS后门,那么作为世界第二经济体,中国政府和消费者对iPhone的态度会毫无疑问地发生微妙变化。上一财季iPhone销量增长已经停滞,今年第一季度很可能会出现首次销量下滑,在这样的关键时刻,苹果无论如何都不可能放弃在中国打造多年的安全形象。 此外,由于业绩增长的压力,苹果近年来一直在努力耕耘企业市场。去年苹果与IBM达成合作,推出一系列面向企业用户的应用程序,希望推动自己的手机、电脑和平板等硬件产品进入这个此前并不擅长的领域。而在企业市场的采购考量中,设计与品牌都是排在安全性之后的。如果安全性受损,苹果要在企业市场开辟新的增长道路恐怕只会更加艰难。 最后,如果美国政府可以基于反恐提出这样的要求,那么全球其它国家政府也可以提出类似的“合理”要求,而苹果一旦开了先例就很难再有理由拒绝,尤其是在苹果的第二大市场。向美国政府提供后门,意味着这个信息后门就不得不一次次的敞开;大量政府人员乃至苹果内部员工了解这个后门的具体信息之后,也预示着黑客可以有诸多手段获得这个后门。给美国政府开后门就意味着iOS安全大坝溃堤。 此前苹果一直在非常谨慎地处理中国政府的关系。在苹果的中文官网上,苹果声明自己“从未与任何国家政府机构就任何产品或服务建立所谓的“后门,我们从未向任何政府开放自己的服务器,而且永远不会。”2014年开始,为了提高中国地区的用户体验,苹果开始将部分iCloud数据存放在中国电信的服务器上,但是苹果并没有交出接入这些数据的密钥。如果此次向美国政府点头,那么苹果没有任何理由再拒绝中国政府的要求。而且根据美国政府的规定,他们依然有权要求美国公司交出离岸数据。去年美国法院就曾经要求微软交出存放在爱尔兰服务器的一位用户信息。 苹果股价保持着稳定走势 苹果股价保持着稳定走势 对抗政府有什么后果? 综上所述,苹果是被迫卷入这场对抗,他们并没有选择逃避的权利。要么遵从美国法官命令,给自己的公众印象、海外市场、安全系统带来严重损失;要么就选择公开对抗,把这场后门争夺拖延到最后时刻,争取尽可能的支持力量,通过公开手段来迫使美国政府改变决定。 库克选择了公开抗争,他在公开信中表示了自己的担忧,“美国政府暗示这种(后门)工具只会在这次调查中使用。但事实并非如此。一旦开设(后门),这种技术就会被一次次地使用,涉及不可估计的设备。美国政府要求我们提供我们所没有的东西,以及我们任何过于危险而无法照做的东西。” 在本周一的内部备忘录中,库克再次重申,“苹果不会应政府要求为iPhone预留后门“,他对苹果员工、客户以及其它公司的支持表示了感谢。库克再次希望美国政府可以撤回此前要求,并鼓励执法部门、科技公司以及专家人士就这一问题的隐私忧虑展开公开讨论。“我们认为,民众会希望苹果帮助他们保护生活隐私。”他此前表示。 或是出于唇亡齿寒的考虑,或是出于棱镜门后的阴影,谷歌、微软、Facebook、Twitter等美国主要互联网公司,和电子前沿基金会(Electronic Frontier Foundation)等行业机构都公开表示了对苹果的支持。值得一提的是,微软共同创始人比尔·盖茨(Bill Gates)在发现自己的言论被媒体误读之后,也迅速公开澄清自己反对政府获取一切信息。 从消费者的领域考虑,美国民众一直有着重视隐私的文化,对政府监控个人信息持反对态度。从小布什总统在911之后的秘密监听电话和邮件,到棱镜门事件政府监控互联网数据,这些被曝光的监视事件一直是美国媒体和民众所关注的焦点事件。虽然在此次事件中,美国联邦调查局持有正当理由,但未来的后续泄密影响足以让他们感到担忧。 目前的民众反应也呈现出不同的状况。一方面,在网络调查公司SurbeyMonkey涉及1000名美国成年人的调查中,51%的受访者支持美国联邦调查局的要求,而41%的受访者则支持苹果维护用户隐私。但是一个关键的影响因素是,大部分支持美国政府的人并没有阅读过库克的公开信(只有16%)。而了解库克立场的受访者,则有超过半数支持苹果公司。 那么苹果能否顶住美国政府压力?从司法角度来说,他们依然有机会改变局面,因为此前美国法官下达的配合命令最后期限是2月26日(本周五)。即便是过了最后期限,苹果也可以提起上诉,直到美国最高法庭的终审判决。去年美国司法部曾经在一起贩毒调查后中,要求苹果解锁一部iOS 7系统的iPhone手机。虽然破解iOS 7手机是技术可行的,但苹果依然出于安全形象的考虑,将这起案件拖延至今。 在美国最高法院作出判决之前的漫长时间,苹果有足够的时间进行游说和争取支持。和美国主要公司一样,苹果也投入了大量资金用于政府游说。目前的数据显示,苹果在2014年投入了400多万美元游说美国政府。如果苹果进一步推动此事引发美国社会的讨论,或许可以争取到更大的民众支持,通过舆论和选民来施压议员来改变局面。在硅谷所在的旧金山地区,已经有苹果的支持者公开在街头表示支持。在Twitter等社交媒体平台,既有不少用户呼吁抵制苹果,也有大量用户通过#freeapple和#beatthecase这样的标签来表示对苹果的支持。 至少,从苹果股价来看,华尔街对苹果对抗政府的举动并没有表现出明显的担忧情绪。过去5个交易日,苹果股价从98美元下滑到96美元,没有出现剧烈的震荡,基本处在正常的波动期。 本文转自d1net(转载)

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

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部分的功能。

用户登录
用户注册