• 关于 保护控制系统是什么 的搜索结果

问题

被智慧云的风云令坑过的朋友请进

罗纳尔多 2019-12-01 20:56:37 6451 浏览量 回答数 11

问题

自力更生不求人,电脑系统奔溃不用愁

yq传送门 2019-12-01 19:40:15 964 浏览量 回答数 1

回答

触摸屏的工作原理  为了操作上的方便,人们用触摸屏来代替鼠标或键盘。工作时,我们必须首先用手指或其它物体触摸安装在显示器前端的触摸屏,然后系统根据手指触摸的图标或菜单位置来定位选择信息输入。触摸屏(触摸屏的工作原理)由触摸检测部件和触摸屏控制器组成;触摸检测部件安装在显示器屏幕前面,用于检测用户触摸位置,接受后送触摸屏控制器;而触摸屏控制器的主要作用是从触摸点检测装置上接收触摸信息,并将它转换成触点坐标,再送给CPU,它同时能接收CPU发来的命令并加以执行。   按照触摸屏的工作原理和传输信息的介质,我们把触摸屏分为四种,它们分别为电阻式、电容感应式、红外线式以及表面声波式。每一类触摸屏都有其各自的优缺点,要了解那种触摸屏适用于那种场合,关键就在于要懂得每一类触摸屏技术的工作原理和特点。 五线电阻触摸屏的工作原理   在触摸屏的四个端点RT,RB,LT,LB四个顶点,均加入一个均匀电场,使其下层(氧化铟)ITO GLASS上布满一个均匀电压,上层为收接讯号装置,当笔或手指按压外表上任一点时,在手指按压处, 控制器侦测到电阻产生变化,进而改变坐标。   由于靠压力感应,所以对于触控媒介没有限制手、铅笔,信用卡等,即使戴上手套亦可操作。   触摸屏技术都是依靠控制器来工作的,甚至有的触摸屏本身就是一套控制器,各自的定位原理和各自所用的控制器决定了触摸屏的反应速度、可靠性、稳定性和寿命。   触摸屏的种类 红外线式触摸屏   红外线触摸屏原理很简单,只是在显示器上加上光点距架框,无需在屏幕表面加上涂层或接驳控制器。光点距架框的四边排列了红外线发射管及接收管,在屏幕表面形成一个红外线网。用户以手指触摸屏幕某一点,便会挡住经过该位置的横竖两条红外线, 计算机便可即时算出触摸点位置。红外触摸屏不受电流、电压和静电干扰,适宜某些恶劣的环境条件。其主要优点是价格低廉、安装方便、不需要卡或其它任何控制器,可以用在各档次的计算机上。不过,由于只是在普通屏幕增加了框架,在使用过程中架框四周的红外线发射管及接收管很容易损坏,且分辨率较低。 电容式触摸屏   电容式触摸屏的构造主要是在玻璃屏幕上镀一层透明的薄膜体层,再在导体层外加上一块保护玻璃,双玻璃设计能彻底保护导体层及感应器。   电容式触摸屏在触摸屏四边均镀上狭长的电极,在导电体内形成一个低电压交流电场。用户触摸屏幕时,由于人体电场,手指与导体 层间会形成一个耦合电容,四边电极发出的电流会流向触点,而电流强弱与手指到电极的距离成正比,位于触摸屏幕后的控制器便会计算电流的比例及强弱,准确算出触摸点的位置。电容触摸屏的双玻璃不但能保护导体及感应器,更有效地防止外在环境因素对触摸屏造成影响,就算屏幕沾有污秽、尘埃或油渍,电容式触摸屏依然能准确算出触摸位置。 电阻技术触摸屏   触摸屏的屏体部分是一块与显示器表面非常配合的多层复合薄膜,由一层玻璃或有机玻璃作为基层,表面涂有一层透明的导电层(OTI,氧化铟),上面再盖有一层外表面硬化处理、光滑防刮的塑料层,它的内表面也涂有一层OTI,在两层导电层之间有许多细小(小于千分之一英寸)的透明隔离点把它们隔开绝缘。当手指接触屏幕,两层OTI导电层出现一个接触点,因其中一面导电层接通Y轴方向的5V均匀电压场,使得侦测层的电压由零变为非零,控制器侦测到这个接通后,进行A/D转换,并将得到的电压值与5V相比,即可得触摸点的Y轴坐标,同理得出X轴的坐标,这就是电阻技术触摸屏共同的最基本原理。电阻屏根据引出线数多少,分为四线、五线等多线电阻触摸屏。五线电阻触摸屏的A面是导电玻璃而不是导电涂覆层,导电玻璃的工艺使其的寿命得到极大的提高,并且可以提高透光率。   电阻式触摸屏的OTI涂层比较薄且容易脆断,涂得太厚又会降低透光且形成内反射降低清晰度,OTI外虽多加了一层薄塑料保护层,但依然容易被锐利物件所破坏;且由于经常被触动,表层OTI使用一定时间后会出现细小裂纹,甚至变型,如其中一点的外层OTI受破坏而断裂,便失去作为导电体的作用,触摸屏的寿命并不长久。但电阻式触摸屏不受尘埃、水、污物影响。 表面声波触摸屏   表面声波触摸屏的触摸屏部分可以是一块平面、球面或是柱面的玻璃平板,安装在CRT、LED、LCD或是等离子显示器屏幕的前面。这块玻璃平板只是一块纯粹的强化玻璃,区别于其它触摸屏技术是没有任何贴膜和覆盖层。玻璃屏的左上角和右下角各固定了竖直和水平方向的超声波发射换能器,右上角则固定了两个相应的超声波接收换能器。玻璃屏的四个周边则刻有45°角由疏到密间隔非常精密的反射条纹。   发射换能器把控制器通过触摸屏电缆送来的电信号转化为声波能量向左方表面传递,然后由玻璃板下边的一组精密反射条纹把声波能量反射成向上的均匀面传递,声波能量经过屏体表面,再由上边的反射条纹聚成向右的线传播给X-轴的接收换能器,接收换能器将返回的表面声波能量变为电信号。发射信号与接收信号波形在没有触摸的时候,接收信号的波形与参照波形完全一样。当手指或其它能够吸收或阻挡声波能量的物体触摸屏幕时,X轴途经手指部位向上走的声波能量被部分吸收,反应在接收波形上即某一时刻位置上波形有一个衰减缺口。接收波形对应手指挡住部位信号衰减了一个缺口,计算缺口位置即得触摸坐标,控制器分析到接收信号的衰减并由缺口的位置判定X坐标。之后Y轴同样的过程判定出触摸点的Y坐标。除了一般触摸屏都能响应的X、Y坐标外,表面声波触摸屏还响应第三轴Z轴坐标,也就是能感知用户触摸压力大小值。三轴一旦确定,控制器就把它们传给主机。   表面声波触摸屏不受温度、湿度等环境因素影响,分辨率极高,有极好的防刮性,寿命长(5000万次无故障);透光率高(92%),能保持清晰透亮的图像质量;没有漂移,最适合公共场所使用。但表面感应系统的感应转换器在长时间运作下,会因声能所产生的压力而受到损坏。一般羊毛或皮革手套都会接收部分声波,对感应的准确度也受一定的影响。屏幕表面或接触屏幕的手指如沾有水渍、油渍、污物或尘埃,也会影响其性能,甚至令系统停止运作。 检测与定位  触摸屏是由多层的复合薄膜构成,透明性能的好坏直接影响到触摸屏的视觉效果。衡量触摸屏透明性能不仅要从它的视觉效果来衡量,还应该包括透明度、色彩失真度、反光性和清晰度这四个特性。   绝对坐标系统。我们传统的鼠标是一种相对定位系统,只和前一次鼠标的位置坐标有关。而触摸屏则是一种绝对坐标系统,要选哪就直接点哪,与相对定位系统有着本质的区别。绝对坐标系统的特点是每一次定位坐标与上一次定位坐标没有关系,每次触摸的数据通过校准转为屏幕上的坐标,不管在什么情况下,触摸屏这套坐标在同一点的输出数据是稳定的。不过由于技术原理的原因,并不能保证同一点触摸每一次采样数据相同的,不能保证绝对坐标定位,点不准,这就是触摸屏最怕的问题:漂移。对于性能质量好的触摸屏来说,漂移的情况出现的并不是很严重。 透明性能  Magic Touch五线电阻触摸屏的A面是导电玻璃而不是导电涂层,导电玻璃的工艺使其寿命得到极大的提高,并且可以提高透光率。   各种触摸屏技术都是依靠传感器来工作的,甚至有的触摸屏本身就是一套传感器。各自的定位原理和各自所用的传感器决定了触摸屏的反应速度、可靠性、稳定性和寿命。

寒凝雪 2019-12-02 01:16:44 0 浏览量 回答数 0

新用户福利专场,云服务器ECS低至96.9元/年

新用户福利专场,云服务器ECS低至96.9元/年

问题

【精品问答】应用高可用服务 AHAS

montos 2020-04-08 12:41:22 3 浏览量 回答数 1

问题

Hystrix 是什么?【Java问答学堂】60期

剑曼红尘 2020-07-20 12:49:25 2 浏览量 回答数 1

回答

多集成 • 身份认证与访问控制 KMS借助于身份认证机制(AccessKey)来鉴别请求的合法性,KMS还通过与访问控制(RAM)集成,允许您配置多样化的自定义策略,满足不同的授权场景。任何请求仅由合法用户发起且满足RAM对权限的动态检测(基于属性的访问控制,简称ABAC),才能被KMS接受。详情请参见使用RAM实现访问控制。 • 审计密钥的使用 KMS通过与操作审计(ActionTrail)集成,可以查看近期KMS的使用状况,也可以将KMS使用情况存储到OSS等其他云服务中,满足更长周期的审计需求。详情请参见使用ActionTrail记录操作事件。 • 控制云产品集成加密 KMS和阿里云ECS、RDS、OSS等多个产品无缝集成。通过一方集成,您可以很容易的使用KMS主密钥加密和控制您存储在这些服务中的数据,帮助您保持对云上计算和存储环境的控制,而您只需要付出密钥的管理成本,无需实现复杂的加密能力。同时集成加密解决了其他云产品中原生数据的加密保护问题。详情请参见服务端集成加密概述和服务端集成加密的云产品。 易使用 • 轻松实现加密 KMS提供简单的密码运算API,简化和抽象了密码学概念,让您可以轻松的使用API完成数据的加解密。对于需要密钥层次结构的应用,KMS提供了方便的信封加密能力,快速实现密钥层次结构:生成一个数据密钥,并将主密钥(CMK)用作密钥加密密钥(Key Encryption Key,简称KEK)来保护数据密钥。详情请参见什么是信封加密? • 集中的密钥托管 密钥管理服务为您提供对密钥的集中化托管与控制。 o 您可以随时创建新的用户主密钥,并通过访问控制(RAM)轻松管理谁可以访问该密钥 o 您可以通过操作审计(ActionTrail)审核密钥的使用情况。 o 您可以从线下密钥管理基础设施(KMI)或在阿里云加密服务中创建的HSM里将密钥导入到KMS。无论在KMS内创建的密钥还是外部导入的密钥,密钥中的机密信息或者敏感数据都会被阿里云上的其他云产品用于加密保护。 • 支持自带密钥(BYOK) KMS支持自带密钥(Bring Your Own Key,简称BYOK)。您可以将密钥租借给KMS用作云上数据的加密保护,从而更好的管理密钥。可租借的密钥包括以下两种: o 线下密钥管理基础设施(Key Management Infrastructure,简称KMI)里的密钥 o 在阿里云加密服务中自主管理的HSM中的密钥 说明 通过安全合规的密钥交换算法,导入到KMS的托管密码机中的密钥不会被任何机制所导出,密钥明文不会被操作者或任何第三者查看。详情请参见导入密钥材料和保持对密钥的控制。 • 自定义密钥轮转策略 KMS允许您根据所需的安全策略来自动轮转对称加密密钥。您只需要为主密钥(CMK)配置一个自定义的轮转周期,KMS会自动为您生成新的加密密钥版本。一个主密钥可以有多个密钥版本,其中每个版本可以被用来解密对应的密文数据,而最新的密钥版本(称为主版本)是活跃加密密钥,用于加密当前传入的数据。详情请参见自动轮转密钥。 高可靠、高可用、可伸缩 作为全托管的分布式服务,KMS在每个地域构建了多可用区冗余的密码计算能力,保证阿里云上各个产品和您的自定义应用向KMS发起的请求可以得到低延迟处理。您可以根据需要,在不同地域的KMS创建足够的密钥,而不必担心底层设施的扩容或缩容。 安全与合规能力 KMS经过严格的安全设计和审核,保证您的密钥在阿里云得到最严格的保护。 • KMS仅提供基于TLS的安全访问通道,并且仅使用安全的传输加密算法套件,符合PCI DSS等安全规范。 • KMS提供了监管机构许可和认证的密码设施。根据地域分布,分别提供了经国家密码管理局检测和认证的硬件密码设备,取得了FIPS 140-2第三级认证和运行在FIPS许可的第三级模式下的密码设备。详情请参见合规。 • KMS使用硬件安全模块来托管密钥,从而达到更高的安全标准,详情请参见托管密码机简介。 低成本 使用KMS,您可以按需使用和付费。 • 您无需支付采购硬件密码设备的初始成本以及对硬件系统进行运维、修补、老旧替换的持续开销。 • KMS为您节省了搭建具有可用性和可靠性密码设备集群,以及自建密钥管理设施的研发成本和维护开销。 • KMS与其他产品的集成为您节省了研发数据加密系统的开销,仅需通过管理密钥而获得可控的云上数据加密的能力。 密钥管理服务(Key Management Service,简称KMS) 阿里云提供的密钥管理服务可以提供密钥的安全托管及密码运算等服务。KMS内置密钥轮转等安全实践,支持其它云产品通过一方集成的方式对其管理的用户数据进行加密保护。借助KMS,您可以专注于数据加解密、电子签名验签等业务功能,无需花费大量成本来保障密钥的保密性、完整性和可用性。 用户主密钥(Customer Master Key,简称CMK) 用户主密钥主要用于加密保护数据密钥并产生信封,也可直接用于加密少量的数据。您可以调用KMS的API CreateKey创建一个用户主密钥。 信封加密(Envelope Encryption) 当您需要加密业务数据时,您可以调用KMS的API GenerateDataKey或GenerateDataKeyWithoutPlaintext生成一个对称密钥,同时使用指定的用户主密钥加密该对称密钥(被密封的信封保护)。在传输或存储等非安全的通信过程中,直接传递被信封保护的对称密钥。当您需要使用该对称密钥时,打开信封取出密钥即可。详情请参见什么是信封加密? 数据密钥(Data Key,简称DK) 数据密钥为加密数据使用的明文数据密钥。 说明 您可以调用KMS的API GenerateDataKey生成一个数据密钥,同时使用指定用户主密钥加密该数据密钥,返回数据密钥的明文(DK) 和密文(EDK)。 信封数据密钥(Enveloped Data Key/Encrypted Data Key,简称EDK) 信封数据密钥为通过信封加密技术保密后的密文数据密钥。 说明 如果暂时不需要数据密钥的明文,您可以调用KMS的API GenerateDataKeyWithoutPlaintext仅返回数据密钥密文。 硬件安全模块(Hardware Security Module,简称HSM) 硬件安全模块也称为密码机,是一种执行密码运算、安全生成和存储密钥的硬件设备。KMS提供的托管密码机可以满足监管机构的检测认证要求,为用户在KMS托管的密钥提供更高的安全等级保证。详情请参见托管密码机简介。 加密上下文(Encryption Context) 加密上下文是KMS对可认证加密(Authenticated Encryption with Associated Data,简称AEAD)的封装。KMS将传入的加密上下文作为对称加密算法的额外认证数据(Additional Authenticated Data,简称AAD)进行密码运算,从而为加密数据额外提供完整性(Integrity)和可认证性(Authenticity)的支持。详情请请见EncryptionContext说明。

LiuWH 2020-03-26 10:00:05 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 通过本文档,您可以了解什么是阿里云云服务器ECS,以及它所涉及的资源和服务。 云服务器Elastic Compute Service(ECS)是阿里云提供的一种基础云计算服务。使用云服务器ECS就像使用水、电、煤气等资源一样便捷、高效。您无需提前采购硬件设备,而是根据业务需要,随时创建所需数量的云服务器ECS实例。在使用过程中,随着业务的扩展,您可以随时扩容磁盘、增加带宽。如果不再需要云服务器,也能随时释放资源,节省费用。 下图列出了ECS涉及的所有资源,包括实例规格、块存储、镜像、快照、带宽和安全组。您可以通过 云服务器管理控制台 或者 阿里云 App 配置您的ECS资源。 您可以通过 ECS Learning Path 快速了解产品,由浅入深学习使用和运维 ECS。 相关概念 在使用ECS之前,您需要了解以下概念: 地域和可用区:是指ECS资源所在的物理位置。 实例:等同于一台虚拟机,包含CPU、内存、操作系统、网络、磁盘等最基础的计算组件。 实例规格:是指实例的不同配置,包括vCPU核数、内存、网络性能等。实例规格决定了ECS实例的计算和存储能力。 镜像:是指ECS实例运行环境的模板,一般包括操作系统和预装的软件。操作系统支持多种Linux发行版本和不同的Windows版本。 块存储:包括基于分布式存储架构的 弹性块存储,以及基于物理机本地硬盘的 本地存储。 快照:是指某一个时间点上一块弹性块存储的数据备份。 网络类型:包括 专有网络:基于阿里云构建的一个隔离的网络环境,专有网络之间逻辑上彻底隔离。更多信息,请参考 专有网络VPC。 经典网络:统一部署在阿里云公共基础内,规划和管理由阿里云负责。 安全组:由同一地域内具有相同保护需求并相互信任的实例组成,是一种虚拟防火墙,用于设置不同实例的网络访问控制。 SSH 密钥对:远程登录Linux ECS实例的验证方式,阿里云存储公钥,您需要自己妥善保管私钥。您也可以选择使用 用户名密码 验证登录Linux ECS实例。 IP地址:包括用于 内网通信 的内网IP或私有IP,以及用于访问Internet的公网IP。 弹性公网IP:可以与实例反复绑定或解绑的静态公网IP地址。 云服务器管理控制台:是指ECS的Web操作界面。 相关服务 您可以从 云市场 获取由第三方服务商提供的基础软件、企业软件、网站建设、代运维、云安全、数据及API、解决方案等相关的各类软件和服务。您也可以成为云市场服务供应商。更多信息,请参考 云市场文档。 您可以根据业务需求和策略的变化自动调整ECS资源。更多信息,请参考 弹性伸缩文档。 您可以在一组云服务器ECS上通过Docker容器管理应用生命周期。更多信息,请参考 容器服务(Container Service)文档。 您可以对多台云服务器ECS进行流量分发的负载均衡服务。更多信息,请参考 负载均衡(Server Load Balancer)文档。 您可以监控ECS实例、系统盘和公网带宽等。更多信息,请参考 云监控(CloudMonitor)文档。 您可以使用安骑士保障云服务器ECS的安全。更多信息,请参考 安骑士文档。 对于部署在云服务器ECS上的应用,阿里云为您提供了免费的 DDoS基础防护,您也可以使用DDoS高防IP保障源站的稳定可靠。更多信息,请参考 DDoS基础防护文档 和 DDoS高防IP文档。 您可以编写代码调用阿里云开发者工具包(SDK)访问阿里云的产品和服务,更多信息,请参考 阿里云开发工具包(SDK)。您可以使用 OpenAPI Explorer 在线调试ECS API,并生成对应SDK Demo代码。 使用ECS 阿里云提供了Web服务页面,方便您管理云服务器ECS。您可以登录 ECS管理控制台 操作ECS实例。关于管理控制台的操作,请参考 操作指南。 阿里云也提供了API接口方便您管理云服务器ECS。关于API说明,请参考 API参考。您也可以使用阿里云命令行工具CLI(Alibaba Cloud CLI)调用API管理ECS,更多信息,请参考 命令行工具CLI。 ECS定价 ECS支持预付费和按量付费。更多信息,请参考 产品定价 文档。 ECS及相关资源的价格信息,请参考 云产品定价页。

2019-12-01 22:53:32 0 浏览量 回答数 0

回答

Istio是由Google、IBM和Lyft开源的微服务管理、保护和监控框架。Istio为希腊语,意思是”起航“使用istio可以很简单的创建具有负载均衡、服务间认证、监控等功能的服务网络,而不需要对服务的代码进行任何修改。你只需要在部署环境中,例如Kubernetes的pod里注入一个特别的sidecar proxy来增加对istio的支持,用来截获微服务之间的网络流量。 特性:使用istio的进行微服务管理有如下特性:流量管理:控制服务间的流量和API调用流,使调用更可靠,增强不同环境下的网络鲁棒性。可观测性:了解服务之间的依赖关系和它们之间的性质和流量,提供快速识别定位问题的能力。 策略实施:通过配置mesh而不是以改变代码的方式来控制服务之间的访问策略。服务识别和安全:提供在mesh里的服务可识别性和安全性保护。未来将支持多种平台,不论是kubernetes、Mesos、还是云。同时可以集成已有的ACL、日志、监控、配额、审计等。 正是 Istio 的出现使 “Service Mesh”( 服务网格 ) 这一概念开始流行起来。在深入介绍 Istio 的细节之前,让我们首先简单地了解一下 Service Mesh 是什么,以及它的重要性体现在哪里。我们都已经了解单体应用所面对的挑战,一种显而易见的方案是将其分解为多个微服务。虽然这种方式简化了单个服务的开发,但对于成百上千的微服务的通信、监控以及安全性的管理并不是一件简单的事。直至目前,对于这些问题的解决方案也只是通过自定义脚本、类库等方式将服务串联在一起,并且投入专门的人力以处理分布式系统的管理任务。但这种方式降低了各个团队的效率,并且提高了维护的成本。这正是 Service Mesh 大显身手的时机 Istio以及Service Mesh的未来 “答案来源于网络,供您参考” 希望以上信息可以帮到您!

牧明 2019-12-02 02:16:26 0 浏览量 回答数 0

问题

有什么办法能避免数据损失呢?

游客nlekadieflg4i 2020-01-06 11:43:39 38 浏览量 回答数 1

问题

入侵防御系统怎样主宰网络安全市场金牌

elinks 2019-12-01 21:15:22 9640 浏览量 回答数 0

问题

数据损失对业务是致命的威胁

小熊软糖bear 2019-12-27 16:12:37 30 浏览量 回答数 0

问题

Windows服务器日常维护策略

我的中国 2019-12-01 21:57:39 2665 浏览量 回答数 1

回答

从业余程序员到职业程序员 程序员刚入行时,我觉得最重要的是把自己培养成职业的程序员。 我的程序员起步比同龄人都晚了很多,更不用说现在的年轻人了。我大学读的是生物专业,在上大学前基本算是完全没接触过计算机。军训的时候因为很无聊,我和室友每天跑去学校的机房玩,我现在还印象很深刻,我第一次走进机房的时候,别人问,你是要玩windows,还是dos,我那是完全的一抹黑。后来就只记得在机房一堆人都是在练习盲打,军训完,盲打倒是练的差不多了,对计算机就这么产生了浓厚的兴趣,大一的时候都是玩组装机,捣鼓了一些,对计算机的硬件有了那么一些了解。 到大二后,买了一些书开始学习当时最火的网页三剑客,学会了手写HTML、PS的基本玩法之类的,课余、暑假也能开始给人做做网站什么的(那个时候做网站真的好赚钱),可能那样过了个一年左右,做静态的网页就不好赚钱了,也不好找实习工作,于是就开始学asp,写些简单的CRUD,做做留言板、论坛这些动态程序,应该算是在这个阶段接触编程了。 毕业后加入了深圳的一家做政府行业软件的公司,一个非常靠谱和给我空间的Leader,使得自己在那几年有了不错的成长,终于成了一个职业的程序员。 通常来说,业余或半职业的程序员,多数是1个人,或者很小的一个团队一起开发,使得在开发流程、协作工具(例如jira、cvs/svn/git等)、测试上通常会有很大的欠缺,而职业的程序员在这方面则会专业很多。另外,通常职业的程序员做的系统都要运行较长的时间,所以在可维护性上会特别注意,这点我是在加入阿里后理解更深的。一个运行10年的系统,和一个写来玩玩的系统显然是有非常大差别的。 这块自己感觉也很难讲清楚,只能说模模糊糊有个这样的概念。通常在有兴趣的基础上,从业余程序员跨越到成为职业程序员我觉得不会太难。 编程能力的成长 作为程序员,最重要的能力始终是编程能力,就我自己的感受而言,我觉得编程能力的成长主要有这么几个部分: 1、编程能力初级:会用 编程,首先都是从学习编程语言的基本知识学起的,不论是什么编程语言,有很多共同的基本知识,例如怎么写第一个Hello World、if/while/for、变量等,因此我比较建议在刚刚开始学一门编程语言的时候,看看编程语言自己的一些文档就好,不要上来就去看一些高阶的书。我当年学Java的时候上来就看Think in Java、Effective Java之类的,真心好难懂。 除了看文档以外,编程是个超级实践的活,所以一定要多写代码,只有这样才能真正熟练起来。这也是为什么我还是觉得在面试的时候让面试者手写代码是很重要的,这个过程是非常容易判断写代码的熟悉程度的。很多人会说由于写代码都是高度依赖IDE的,导致手写很难,但我绝对相信写代码写了很多的人,手写一段不太复杂的、可运行的代码是不难的。即使像我这种三年多没写过代码的人,让我现在手写一段不太复杂的可运行的Java程序,还是没问题的,前面N年的写代码生涯使得很多东西已经深入骨髓了。 我觉得编程能力初级这个阶段对于大部分程序员来说都不会是问题,勤学苦练,是这个阶段的核心。 2、编程能力中级:会查和避免问题 除了初级要掌握的会熟练的使用编程语言去解决问题外,中级我觉得首先是提升查问题的能力。 在写代码的过程中,出问题是非常正常的,怎么去有效且高效的排查问题,是程序员群体中通常能感受到的大家在编程能力上最大的差距。 解决问题能力强的基本很容易在程序员群体里得到很高的认可。在查问题的能力上,首先要掌握的是一些基本的调试技巧,好用的调试工具,在Java里有JDK自带的jstat、jmap、jinfo,不在JDK里的有mat、gperf、btrace等。工欲善其事必先利其器,在查问题上是非常典型的,有些时候大家在查问题时的能力差距,有可能仅仅是因为别人比你多知道一个工具而已。 除了调试技巧和工具外,查问题的更高境界就是懂原理。一个懂原理的程序员在查问题的水平上和其他程序员是有明显差距的。我想很多的同学应该能感受到,有些时候查出问题的原因仅仅是因为有效的工具,知其然不知其所以然。 我给很多阿里的同学培训过Java排查问题的方法,在这个培训里,我经常也会讲到查问题的能力的培养最主要的也是熟练,多尝试给自己写一些会出问题的程序,多积极的看别人是怎么查问题的,多积极的去参与排查问题,很多最后查问题能力强的人多数仅仅是因为“无他,但手熟尔”。 我自己排查问题能力的提升主要是在2009年和2010年。那两年作为淘宝消防队(处理各种问题和故障的虚拟团队)的成员,处理了很多的故障和问题。当时消防队还有阿里最公认的技术大神——多隆,我向他学习到了很多排查问题的技巧。和他比,我排查问题的能力就是初级的那种。 印象最深刻的是一次我们一起查一个应用cpu us高的问题,我们两定位到是一段代码在某种输入参数的时候会造成cpu us高的原因后,我能想到的继续查的方法是去生产环境抓输入参数,然后再用参数来本地debug看是什么原因。但多隆在看了一会那段代码后,给了我一个输入参数,我拿这个参数一运行,果然cpu us很高!这种case不是一次两次。所以我经常和别人说,我是需要有问题场景才能排查出问题的,但多隆是完全有可能直接看代码就能看出问题的,这是本质的差距。 除了查问题外,更厉害的程序员是在写代码的过程就会很好的去避免问题。大家最容易理解的就是在写代码时处理各种异常情况,这里通常也是造成程序员们之间很大的差距的地方。 写一段正向逻辑的代码,大部分情况下即使有差距,也不会太大,但在怎么很好的处理这个过程中有可能出现的异常上,这个时候的功力差距会非常明显。很多时候一段代码里处理异常逻辑的部分都会超过正常逻辑的代码量。 我经常说,一个优秀程序员和普通程序员的差距,很多时候压根就不需要看什么满天飞的架构图,而只用show一小段的代码就可以。 举一个小case大家感受下。当年有一个严重故障,最后查出的原因是输入的参数里有一个是数组,把这个数组里的值作为参数去查数据库,结果前面输入了一个很大的数组,导致从数据库查了大量的数据,内存溢出了,很多程序员现在看都会明白对入参、出参的保护check,但类似这样的case我真的碰到了很多。 在中级这个阶段,我会推荐大家尽可能的多刻意的去培养下自己这两个方面的能力,成为一个能写出高质量代码、有效排查问题的优秀程序员。 3、编程能力高级:懂高级API和原理 就我自己的经历而言,我是在写了多年的Java代码后,才开始真正更细致的学习和掌握Java的一些更高级的API,我相信多数Java程序员也是如此。 我算是从2003年开始用Java写商业系统的代码,但直到在2007年加入淘宝后,才开始非常认真地学习Java的IO通信、并发这些部分的API。尽管以前也学过也写过一些这样的代码,但完全就是皮毛。当然,这些通常来说有很大部分的原因会是工作的相关性,多数的写业务系统的程序员可能基本就不需要用到这些,所以导致会很难懂这些相对高级一些的API,但这些API对真正的理解一门编程语言,我觉得至关重要。 在之前的程序员成长路线的文章里我也讲到了这个部分,在没有场景的情况下,只能靠自己去创造场景来学习好。我觉得只要有足够的兴趣,这个问题还是不大的,毕竟现在有各种开源,这些是可以非常好的帮助自己创造机会学习的,例如学Java NIO,可以自己基于NIO包一个框架,然后对比Netty,看看哪些写的是不如Netty的,这样会非常有助于真正的理解。 在学习高级API的过程中,以及排查问题的过程中,我自己越来越明白懂编程语言的运行原理是非常重要的,因此我到了后面的阶段开始学习Java的编译机制、内存管理、线程机制等。对于我这种非科班出身的而言,学这些会因为缺乏基础更难很多,但这些更原理性的东西学会了后,对自己的编程能力会有质的提升,包括以后学习其他编程语言的能力,学这些原理最好的方法我觉得是先看看一些讲相关知识的书,然后去翻看源码,这样才能真正的更好的掌握,最后是在以后写代码的过程中、查问题的过程中多结合掌握的原理,才能做到即使在N年后也不会忘。 在编程能力的成长上,我觉得没什么捷径。我非常赞同1万小时理论,在中级、高级阶段,如果有人指点或和优秀的程序员们共事,会好非常多。不过我觉得这个和读书也有点像,到了一定阶段后(例如高中),天分会成为最重要的分水岭,不过就和大部分行业一样,大部分的情况下都还没到拼天分的时候,只需要拼勤奋就好。 系统设计能力的成长 除了少数程序员会进入专深的领域,例如Linux Kernel、JVM,其他多数的程序员除了编程能力的成长外,也会越来越需要在系统设计能力上成长。 通常一个编程能力不错的程序员,在一定阶段后就会开始承担一个模块的工作,进而承担一个子系统、系统、跨多领域的更大系统等。 我自己在工作的第三年开始承担一个流程引擎的设计和实现工作,一个不算小的系统,并且也是当时那个项目里的核心部分。那个阶段我学会了一些系统设计的基本知识,例如需要想清楚整个系统的目标、模块的划分和职责、关键的对象设计等,而不是上来就开始写代码。但那个时候由于我是一个人写整个系统,所以其实对设计的感觉并还没有那么强力的感觉。 在那之后的几年也负责过一些系统,但总体感觉好像在系统设计上的成长没那么多,直到在阿里的经历,在系统设计上才有了越来越多的体会。(点击文末阅读原文,查看:我在系统设计上犯过的14个错,可以看到我走的一堆的弯路)。 在阿里有一次做分享,讲到我在系统设计能力方面的成长,主要是因为三段经历,负责专业领域系统的设计 -> 负责跨专业领域的专业系统的设计 -> 负责阿里电商系统架构级改造的设计。 第一段经历,是我负责HSF。HSF是一个从0开始打造的系统,它主要是作为支撑服务化的框架,是个非常专业领域的系统,放在整个淘宝电商的大系统来看,其实它就是一个很小的子系统,这段经历里让我最深刻的有三点: 1).要设计好这种非常专业领域的系统,专业的知识深度是非常重要的。我在最早设计HSF的几个框的时候,是没有设计好服务消费者/提供者要怎么和现有框架结合的,在设计负载均衡这个部分也反复了几次,这个主要是因为自己当时对这个领域掌握不深的原因造成的; 2). 太技术化。在HSF的阶段,出于情怀,在有一个版本里投入了非常大的精力去引进OSGi以及去做动态化,这个后来事实证明是个非常非常错误的决定,从这个点我才真正明白在设计系统时一定要想清楚目标,而目标很重要的是和公司发展阶段结合; 3). 可持续性。作为一个要在生产环境持续运行很多年的系统而言,怎么样让其在未来更可持续的发展,这个对设计阶段来说至关重要。这里最low的例子是最早设计HSF协议的时候,协议头里竟然没有版本号,导致后来升级都特别复杂;最典型的例子是HSF在早期缺乏了缺乏了服务Tracing这方面的设计,导致后面发现了这个地方非常重要后,全部落地花了长达几年的时间;又例如HSF早期缺乏Filter Chain的设计,导致很多扩展、定制化做起来非常不方便。 第二段经历,是做T4。T4是基于LXC的阿里的容器,它和HSF的不同是,它其实是一个跨多领域的系统,包括了单机上的容器引擎,容器管理系统,容器管理系统对外提供API,其他系统或用户通过这个来管理容器。这个系统发展过程也是各种犯错,犯错的主要原因也是因为领域掌握不深。在做T4的日子里,学会到的最重要的是怎么去设计这种跨多个专业领域的系统,怎么更好的划分模块的职责,设计交互逻辑,这段经历对我自己更为重要的意义是我有了做更大一些系统的架构的信心。 第三段经历,是做阿里电商的异地多活。这对我来说是真正的去做一个巨大系统的架构师,尽管我以前做HSF的时候参与了淘宝电商2.0-3.0的重大技术改造,但参与和自己主导是有很大区别的,这个架构改造涉及到了阿里电商众多不同专业领域的技术团队。在这个阶段,我学会的最主要的: 1). 子系统职责划分。在这种超大的技术方案中,很容易出现某些部分的职责重叠和冲突,这个时候怎么去划分子系统,就非常重要了。作为大架构师,这个时候要从团队的职责、团队的可持续性上去选择团队; 2). 大架构师最主要的职责是控制系统风险。对于这种超大系统,一定是多个专业领域的架构师和大架构师共同设计,怎么确保在执行的过程中对于系统而言最重要的风险能够被控制住,这是我真正的理解什么叫系统设计文档里设计原则的部分。 设计原则我自己觉得就是用来确保各个子系统在设计时都会遵循和考虑的,一定不能是虚的东西,例如在异地多活架构里,最重要的是如何控制数据风险,这个需要在原则里写上,最基本的原则是可接受系统不可用,但也要保障数据一致,而我看过更多的系统设计里设计原则只是写写的,或者千篇一律的,设计原则切实的体现了架构师对目标的理解(例如当时异地多活这个其实开始只是个概念,但做到什么程度才叫做到异地多活,这是需要解读的,也要确保在技术层面的设计上是达到了目标的),技术方案层面上的选择原则,并确保在细节的设计方案里有对于设计原则的承接以及执行; 3). 考虑问题的全面性。像异地多活这种大架构改造,涉及业务层面、各种基础技术层面、基础设施层面,对于执行节奏的决定要综合考虑人力投入、机器成本、基础设施布局诉求、稳定性控制等,这会比只是做一个小的系统的设计复杂非常多。 系统设计能力的成长,我自己觉得最重要的一是先在一两个技术领域做到专业,然后尽量扩大自己的知识广度。例如除了自己的代码部分外,还应该知道具体是怎么部署的,部署到哪去了,部署的环境具体是怎么样的,和整个系统的关系是什么样的。 像我自己,是在加入基础设施团队后才更加明白有些时候软件上做的一个决策,会导致基础设施上巨大的硬件、网络或机房的投入,但其实有可能只需要在软件上做些调整就可以避免,做做研发、做做运维可能是比较好的把知识广度扩大的方法。 第二点是练习自己做tradeoff的能力,这个比较难,做tradeoff这事需要综合各种因素做选择,但这也是所有的架构师最关键的,可以回头反思下自己在做各种系统设计时做出的tradeoff是什么。这个最好是亲身经历,听一些有经验的架构师分享他们选择背后的逻辑也会很有帮助,尤其是如果恰好你也在同样的挑战阶段,光听最终的架构结果其实大多数时候帮助有限。 技术Leader我觉得最好是能在架构师的基础上,后续注重成长的方面还是有挺大差别,就不在这篇里写了,后面再专门来写一篇。 程序员金字塔 我认为程序员的价值关键体现在作品上,被打上作品标签是一种很大的荣幸,作品影响程度的大小我觉得决定了金字塔的层次,所以我会这么去理解程序员的金字塔。 当然,要打造一款作品,仅有上面的两点能力是不够的,作品里很重要的一点是对业务、技术趋势的判断。 希望作为程序员的大伙,都能有机会打造一款世界级的作品,去为技术圈的发展做出贡献。 由于目前IT技术更新速度还是很快的,程序员这个行当是特别需要学习能力的。我一直认为,只有对程序员这个职业真正的充满兴趣,保持自驱,才有可能在这个职业上做好,否则的话是很容易淘汰的。 作者简介: 毕玄,2007年加入阿里,十多年来主要从事在软件基础设施领域,先后负责阿里的服务框架、Hbase、Sigma、异地多活等重大的基础技术产品和整体架构改造。

茶什i 2020-01-10 15:19:35 0 浏览量 回答数 0

问题

云服务器磁盘IO问题的思考

at6569s2r 2019-12-01 21:06:14 14751 浏览量 回答数 18

问题

7种方法避免虚拟化环境中的数据丢失

elinks 2019-12-01 21:14:33 4972 浏览量 回答数 0

问题

让云计算真正省钱,解决云存储架构九个问题让云计算真正省钱

hamtyb 2019-12-01 20:27:33 11001 浏览量 回答数 4

问题

大数据被用来犯罪怎么办

游客ftkex2f22paya 2019-12-01 19:34:14 2 浏览量 回答数 0

问题

新老版本API如何使用FAQ?

青衫无名 2019-12-01 21:57:07 844 浏览量 回答数 0

问题

访问ECS Windows IIS网站显示"503 Service Unavailable"错误的处理方法是什么

boxti 2019-12-01 21:30:25 2208 浏览量 回答数 1

回答

微服务 (MicroServices) 架构是当前互联网业界的一个技术热点,圈里有不少同行朋友当前有计划在各自公司开展微服务化体系建设,他们都有相同的疑问:一个微服务架构有哪些技术关注点 (technical concerns)?需要哪些基础框架或组件来支持微服务架构?这些框架或组件该如何选型?笔者之前在两家大型互联网公司参与和主导过大型服务化体系和框架建设,同时在这块也投入了很多时间去学习和研究,有一些经验和学习心得,可以和大家一起分享。 服务注册、发现、负载均衡和健康检查和单块 (Monolithic) 架构不同,微服务架构是由一系列职责单一的细粒度服务构成的分布式网状结构,服务之间通过轻量机制进行通信,这时候必然引入一个服务注册发现问题,也就是说服务提供方要注册通告服务地址,服务的调用方要能发现目标服务,同时服务提供方一般以集群方式提供服务,也就引入了负载均衡和健康检查问题。根据负载均衡 LB 所在位置的不同,目前主要的服务注册、发现和负载均衡方案有三种: 第一种是集中式 LB 方案,如下图 Fig 1,在服务消费者和服务提供者之间有一个独立的 LB,LB 通常是专门的硬件设备如 F5,或者基于软件如 LVS,HAproxy 等实现。LB 上有所有服务的地址映射表,通常由运维配置注册,当服务消费方调用某个目标服务时,它向 LB 发起请求,由 LB 以某种策略(比如 Round-Robin)做负载均衡后将请求转发到目标服务。LB 一般具备健康检查能力,能自动摘除不健康的服务实例。服务消费方如何发现 LB 呢?通常的做法是通过 DNS,运维人员为服务配置一个 DNS 域名,这个域名指向 LB。 Fig 1, 集中式 LB 方案 集中式 LB 方案实现简单,在 LB 上也容易做集中式的访问控制,这一方案目前还是业界主流。集中式 LB 的主要问题是单点问题,所有服务调用流量都经过 LB,当服务数量和调用量大的时候,LB 容易成为瓶颈,且一旦 LB 发生故障对整个系统的影响是灾难性的。另外,LB 在服务消费方和服务提供方之间增加了一跳 (hop),有一定性能开销。 第二种是进程内 LB 方案,针对集中式 LB 的不足,进程内 LB 方案将 LB 的功能以库的形式集成到服务消费方进程里头,该方案也被称为软负载 (Soft Load Balancing) 或者客户端负载方案,下图 Fig 2 展示了这种方案的工作原理。这一方案需要一个服务注册表 (Service Registry) 配合支持服务自注册和自发现,服务提供方启动时,首先将服务地址注册到服务注册表(同时定期报心跳到服务注册表以表明服务的存活状态,相当于健康检查),服务消费方要访问某个服务时,它通过内置的 LB 组件向服务注册表查询(同时缓存并定期刷新)目标服务地址列表,然后以某种负载均衡策略选择一个目标服务地址,最后向目标服务发起请求。这一方案对服务注册表的可用性 (Availability) 要求很高,一般采用能满足高可用分布式一致的组件(例如 Zookeeper, Consul, Etcd 等)来实现。 Fig 2, 进程内 LB 方案 进程内 LB 方案是一种分布式方案,LB 和服务发现能力被分散到每一个服务消费者的进程内部,同时服务消费方和服务提供方之间是直接调用,没有额外开销,性能比较好。但是,该方案以客户库 (Client Library) 的方式集成到服务调用方进程里头,如果企业内有多种不同的语言栈,就要配合开发多种不同的客户端,有一定的研发和维护成本。另外,一旦客户端跟随服务调用方发布到生产环境中,后续如果要对客户库进行升级,势必要求服务调用方修改代码并重新发布,所以该方案的升级推广有不小的阻力。 进程内 LB 的案例是 Netflix 的开源服务框架,对应的组件分别是:Eureka 服务注册表,Karyon 服务端框架支持服务自注册和健康检查,Ribbon 客户端框架支持服务自发现和软路由。另外,阿里开源的服务框架 Dubbo 也是采用类似机制。 第三种是主机独立 LB 进程方案,该方案是针对第二种方案的不足而提出的一种折中方案,原理和第二种方案基本类似,不同之处是,他将 LB 和服务发现功能从进程内移出来,变成主机上的一个独立进程,主机上的一个或者多个服务要访问目标服务时,他们都通过同一主机上的独立 LB 进程做服务发现和负载均衡,见下图 Fig 3。 Fig 3 主机独立 LB 进程方案 该方案也是一种分布式方案,没有单点问题,一个 LB 进程挂了只影响该主机上的服务调用方,服务调用方和 LB 之间是进程内调用,性能好,同时,该方案还简化了服务调用方,不需要为不同语言开发客户库,LB 的升级不需要服务调用方改代码。该方案的不足是部署较复杂,环节多,出错调试排查问题不方便。 该方案的典型案例是 Airbnb 的 SmartStack 服务发现框架,对应组件分别是:Zookeeper 作为服务注册表,Nerve 独立进程负责服务注册和健康检查,Synapse/HAproxy 独立进程负责服务发现和负载均衡。Google 最新推出的基于容器的 PaaS 平台 Kubernetes,其内部服务发现采用类似的机制。 服务前端路由微服务除了内部相互之间调用和通信之外,最终要以某种方式暴露出去,才能让外界系统(例如客户的浏览器、移动设备等等)访问到,这就涉及服务的前端路由,对应的组件是服务网关 (Service Gateway),见图 Fig 4,网关是连接企业内部和外部系统的一道门,有如下关键作用: 服务反向路由,网关要负责将外部请求反向路由到内部具体的微服务,这样虽然企业内部是复杂的分布式微服务结构,但是外部系统从网关上看到的就像是一个统一的完整服务,网关屏蔽了后台服务的复杂性,同时也屏蔽了后台服务的升级和变化。安全认证和防爬虫,所有外部请求必须经过网关,网关可以集中对访问进行安全控制,比如用户认证和授权,同时还可以分析访问模式实现防爬虫功能,网关是连接企业内外系统的安全之门。限流和容错,在流量高峰期,网关可以限制流量,保护后台系统不被大流量冲垮,在内部系统出现故障时,网关可以集中做容错,保持外部良好的用户体验。监控,网关可以集中监控访问量,调用延迟,错误计数和访问模式,为后端的性能优化或者扩容提供数据支持。日志,网关可以收集所有的访问日志,进入后台系统做进一步分析。 Fig 4, 服务网关 除以上基本能力外,网关还可以实现线上引流,线上压测,线上调试 (Surgical debugging),金丝雀测试 (Canary Testing),数据中心双活 (Active-Active HA) 等高级功能。 网关通常工作在 7 层,有一定的计算逻辑,一般以集群方式部署,前置 LB 进行负载均衡。 开源的网关组件有 Netflix 的 Zuul,特点是动态可热部署的过滤器 (filter) 机制,其它如 HAproxy,Nginx 等都可以扩展作为网关使用。 在介绍过服务注册表和网关等组件之后,我们可以通过一个简化的微服务架构图 (Fig 5) 来更加直观地展示整个微服务体系内的服务注册发现和路由机制,该图假定采用进程内 LB 服务发现和负载均衡机制。在下图 Fig 5 的微服务架构中,服务简化为两层,后端通用服务(也称中间层服务 Middle Tier Service)和前端服务(也称边缘服务 Edge Service,前端服务的作用是对后端服务做必要的聚合和裁剪后暴露给外部不同的设备,如 PC,Pad 或者 Phone)。后端服务启动时会将地址信息注册到服务注册表,前端服务通过查询服务注册表就可以发现然后调用后端服务;前端服务启动时也会将地址信息注册到服务注册表,这样网关通过查询服务注册表就可以将请求路由到目标前端服务,这样整个微服务体系的服务自注册自发现和软路由就通过服务注册表和网关串联起来了。如果以面向对象设计模式的视角来看,网关类似 Proxy 代理或者 Façade 门面模式,而服务注册表和服务自注册自发现类似 IoC 依赖注入模式,微服务可以理解为基于网关代理和注册表 IoC 构建的分布式系统。 Fig 5, 简化的微服务架构图 服务容错当企业微服务化以后,服务之间会有错综复杂的依赖关系,例如,一个前端请求一般会依赖于多个后端服务,技术上称为 1 -> N 扇出 (见图 Fig 6)。在实际生产环境中,服务往往不是百分百可靠,服务可能会出错或者产生延迟,如果一个应用不能对其依赖的故障进行容错和隔离,那么该应用本身就处在被拖垮的风险中。在一个高流量的网站中,某个单一后端一旦发生延迟,可能在数秒内导致所有应用资源 (线程,队列等) 被耗尽,造成所谓的雪崩效应 (Cascading Failure,见图 Fig 7),严重时可致整个网站瘫痪。 Fig 6, 服务依赖 Fig 7, 高峰期单个服务延迟致雪崩效应 经过多年的探索和实践,业界在分布式服务容错一块探索出了一套有效的容错模式和最佳实践,主要包括: Fig 8, 弹性电路保护状态图 电路熔断器模式 (Circuit Breaker Patten), 该模式的原理类似于家里的电路熔断器,如果家里的电路发生短路,熔断器能够主动熔断电路,以避免灾难性损失。在分布式系统中应用电路熔断器模式后,当目标服务慢或者大量超时,调用方能够主动熔断,以防止服务被进一步拖垮;如果情况又好转了,电路又能自动恢复,这就是所谓的弹性容错,系统有自恢复能力。下图 Fig 8 是一个典型的具备弹性恢复能力的电路保护器状态图,正常状态下,电路处于关闭状态 (Closed),如果调用持续出错或者超时,电路被打开进入熔断状态 (Open),后续一段时间内的所有调用都会被拒绝 (Fail Fast),一段时间以后,保护器会尝试进入半熔断状态 (Half-Open),允许少量请求进来尝试,如果调用仍然失败,则回到熔断状态,如果调用成功,则回到电路闭合状态。舱壁隔离模式 (Bulkhead Isolation Pattern),顾名思义,该模式像舱壁一样对资源或失败单元进行隔离,如果一个船舱破了进水,只损失一个船舱,其它船舱可以不受影响 。线程隔离 (Thread Isolation) 就是舱壁隔离模式的一个例子,假定一个应用程序 A 调用了 Svc1/Svc2/Svc3 三个服务,且部署 A 的容器一共有 120 个工作线程,采用线程隔离机制,可以给对 Svc1/Svc2/Svc3 的调用各分配 40 个线程,当 Svc2 慢了,给 Svc2 分配的 40 个线程因慢而阻塞并最终耗尽,线程隔离可以保证给 Svc1/Svc3 分配的 80 个线程可以不受影响,如果没有这种隔离机制,当 Svc2 慢的时候,120 个工作线程会很快全部被对 Svc2 的调用吃光,整个应用程序会全部慢下来。限流 (Rate Limiting/Load Shedder),服务总有容量限制,没有限流机制的服务很容易在突发流量 (秒杀,双十一) 时被冲垮。限流通常指对服务限定并发访问量,比如单位时间只允许 100 个并发调用,对超过这个限制的请求要拒绝并回退。回退 (fallback),在熔断或者限流发生的时候,应用程序的后续处理逻辑是什么?回退是系统的弹性恢复能力,常见的处理策略有,直接抛出异常,也称快速失败 (Fail Fast),也可以返回空值或缺省值,还可以返回备份数据,如果主服务熔断了,可以从备份服务获取数据。Netflix 将上述容错模式和最佳实践集成到一个称为 Hystrix 的开源组件中,凡是需要容错的依赖点 (服务,缓存,数据库访问等),开发人员只需要将调用封装在 Hystrix Command 里头,则相关调用就自动置于 Hystrix 的弹性容错保护之下。Hystrix 组件已经在 Netflix 经过多年运维验证,是 Netflix 微服务平台稳定性和弹性的基石,正逐渐被社区接受为标准容错组件。 服务框架微服务化以后,为了让业务开发人员专注于业务逻辑实现,避免冗余和重复劳动,规范研发提升效率,必然要将一些公共关注点推到框架层面。服务框架 (Fig 9) 主要封装公共关注点逻辑,包括: Fig 9, 服务框架 服务注册、发现、负载均衡和健康检查,假定采用进程内 LB 方案,那么服务自注册一般统一做在服务器端框架中,健康检查逻辑由具体业务服务定制,框架层提供调用健康检查逻辑的机制,服务发现和负载均衡则集成在服务客户端框架中。监控日志,框架一方面要记录重要的框架层日志、metrics 和调用链数据,还要将日志、metrics 等接口暴露出来,让业务层能根据需要记录业务日志数据。在运行环境中,所有日志数据一般集中落地到企业后台日志系统,做进一步分析和处理。REST/RPC 和序列化,框架层要支持将业务逻辑以 HTTP/REST 或者 RPC 方式暴露出来,HTTP/REST 是当前主流 API 暴露方式,在性能要求高的场合则可采用 Binary/RPC 方式。针对当前多样化的设备类型 (浏览器、普通 PC、无线设备等),框架层要支持可定制的序列化机制,例如,对浏览器,框架支持输出 Ajax 友好的 JSON 消息格式,而对无线设备上的 Native App,框架支持输出性能高的 Binary 消息格式。配置,除了支持普通配置文件方式的配置,框架层还可集成动态运行时配置,能够在运行时针对不同环境动态调整服务的参数和配置。限流和容错,框架集成限流容错组件,能够在运行时自动限流和容错,保护服务,如果进一步和动态配置相结合,还可以实现动态限流和熔断。管理接口,框架集成管理接口,一方面可以在线查看框架和服务内部状态,同时还可以动态调整内部状态,对调试、监控和管理能提供快速反馈。Spring Boot 微框架的 Actuator 模块就是一个强大的管理接口。统一错误处理,对于框架层和服务的内部异常,如果框架层能够统一处理并记录日志,对服务监控和快速问题定位有很大帮助。安全,安全和访问控制逻辑可以在框架层统一进行封装,可做成插件形式,具体业务服务根据需要加载相关安全插件。文档自动生成,文档的书写和同步一直是一个痛点,框架层如果能支持文档的自动生成和同步,会给使用 API 的开发和测试人员带来极大便利。Swagger 是一种流行 Restful API 的文档方案。当前业界比较成熟的微服务框架有 Netflix 的 Karyon/Ribbon,Spring 的 Spring Boot/Cloud,阿里的 Dubbo 等。 运行期配置管理服务一般有很多依赖配置,例如访问数据库有连接字符串配置,连接池大小和连接超时配置,这些配置在不同环境 (开发 / 测试 / 生产) 一般不同,比如生产环境需要配连接池,而开发测试环境可能不配,另外有些参数配置在运行期可能还要动态调整,例如,运行时根据流量状况动态调整限流和熔断阀值。目前比较常见的做法是搭建一个运行时配置中心支持微服务的动态配置,简化架构如下图 (Fig 10): Fig 10, 服务配置中心 动态配置存放在集中的配置服务器上,用户通过管理界面配置和调整服务配置,具体服务通过定期拉 (Scheduled Pull) 的方式或者服务器推 (Server-side Push) 的方式更新动态配置,拉方式比较可靠,但会有延迟同时有无效网络开销 (假设配置不常更新),服务器推方式能及时更新配置,但是实现较复杂,一般在服务和配置服务器之间要建立长连接。配置中心还要解决配置的版本控制和审计问题,对于大规模服务化环境,配置中心还要考虑分布式和高可用问题。 配置中心比较成熟的开源方案有百度的 Disconf,360 的 QConf,Spring 的 Cloud Config 和阿里的 Diamond 等。 Netflix 的微服务框架Netflix 是一家成功实践微服务架构的互联网公司,几年前,Netflix 就把它的几乎整个微服务框架栈开源贡献给了社区,这些框架和组件包括: Eureka: 服务注册发现框架Zuul: 服务网关Karyon: 服务端框架Ribbon: 客户端框架Hystrix: 服务容错组件Archaius: 服务配置组件Servo: Metrics 组件Blitz4j: 日志组件下图 Fig 11 展示了基于这些组件构建的一个微服务框架体系,来自 recipes-rss。 Fig 11, 基于 Netflix 开源组件的微服务框架 Netflix 的开源框架组件已经在 Netflix 的大规模分布式微服务环境中经过多年的生产实战验证,正逐步被社区接受为构造微服务框架的标准组件。Pivotal 去年推出的 Spring Cloud 开源产品,主要是基于对 Netflix 开源组件的进一步封装,方便 Spring 开发人员构建微服务基础框架。对于一些打算构建微服务框架体系的公司来说,充分利用或参考借鉴 Netflix 的开源微服务组件 (或 Spring Cloud),在此基础上进行必要的企业定制,无疑是通向微服务架构的捷径。 原文地址:https://www.infoq.cn/article/basis-frameworkto-implement-micro-service#anch130564%20%EF%BC%8C

auto_answer 2019-12-02 01:55:22 0 浏览量 回答数 0

问题

怎样实现数据存储的管理维护

elinks 2019-12-01 21:14:17 9098 浏览量 回答数 0

回答

如何查看、关闭和开放WIN 系统端口Windows有很多端口是开放的,在你上网的时候,网络病毒和黑客可以通过这些端口连上你的电脑。为了让你的系统变为铜墙铁壁,应该封闭这些端口,主要有:TCP 135、139、445、593、1025 端口和 UDP 135、137、138、445 端口,一些流行病毒的后门端口(如 TCP 2745、3127、6129 端口),以及远程服务访问端口3389。查看端口在Windows 2000/XP/Server 2003中要查看端口,可以使用Netstat命令:依次点击“开始→运行”,键入“cmd”并回车,打开命令提示符窗口。在命令提示符状态下键入“netstat -a -n”,按下回车键后就可以看到以数字形式显示的TCP和UDP连接的端口号及状态。小知识:Netstat命令用法命令格式:Netstat -a -e -n -o -s-an-a 表示显示所有活动的TCP连接以及计算机监听的TCP和UDP端口。-e 表示显示以太网发送和接收的字节数、数据包数等。-n 表示只以数字形式显示所有活动的TCP连接的地址和端口号。-o 表示显示活动的TCP连接并包括每个连接的进程ID(PID)。-s 表示按协议显示各种连接的统计信息,包括端口号。-an 查看所有开放的端口关闭/开启端口先介绍一下在Windows中如何关闭/打开端口的简单方法,因为默认的情况下,有很多不安全的或没有什么用的端口是开启的,比如Telnet服务的23端口、FTP服务的21端口、SMTP服务的25端口、RPC服务的135端口等等。为了保证系统的安全性,我们可以通过下面的方法来关闭/开启端口。关闭端口比如在Windows 2000/XP中关闭SMTP服务的25端口,可以这样做:首先打开“控制面板”,双击“管理工具”,再双击“服务”。接着在打开的服务窗口中找到并双击“Simple Mail Transfer Protocol (SMTP)”服务,单击“停止”按钮来停止该服务,然后在“启动类型”中选择“已禁用”,最后单击“确定”按钮即可。这样,关闭了SMTP服务就相当于关闭了对应的端口。开启端口如果要开启该端口只要先在“启动类型”选择“自动”,单击“确定”按钮,再打开该服务,在“服务状态”中单击“启动”按钮即可启用该端口,最后,单击“确定”按钮即可。提示:在Windows 98中没有“服务”选项,你可以使用防火墙的规则设置功能来关闭/开启端口。如何在WinXP/2000/2003下关闭和开放网络端口的详细方法第一步,点击开始菜单/设置/控制面板/管理工具,双击打开本地安全策略,选中IP 安全策略,在本地计算机,在右边窗格的空白位置右击鼠标,弹出快捷菜单,选择创建 IP 安全策略(如右图),于是弹出一个向导。在向导中点击下一步按钮,为新的安全策略命名;再按下一步,则显示安全通信请求画面,在画面上把激活默认相应规则左边的钩去掉,点击完成按钮就创建了一个新的IP 安全策略。第二步,右击该IP安全策略,在属性对话框中,把使用添加向导左边的钩去掉,然后单击添加按钮添加新的规则,随后弹出新规则属性对话框,在画面上点击添加按钮,弹出IP筛选器列表窗口;在列表中,首先把使用添加向导左边的钩去掉,然后再点击右边的添加按钮添加新的筛选器。第三步,进入筛选器属性对话框,首先看到的是寻址,源地址选任何 IP 地址,目标地址选我的 IP 地址;点击协议选项卡,在选择协议类型的下拉列表中选择TCP,然后在到此端口下的文本框中输入135,点击确定按钮(如左图),这样就添加了一个屏蔽 TCP 135(RPC)端口的筛选器,它可以防止外界通过135端口连上你的电脑。点击确定后回到筛选器列表的对话框,可以看到已经添加了一条策略,重复以上步骤继续添加 TCP 137、139、445、593 端口和 UDP 135、139、445 端口,为它们建立相应的筛选器。重复以上步骤添加TCP 1025、2745、3127、6129、3389 端口的屏蔽策略,建立好上述端口的筛选器,最后点击确定按钮。第四步,在新规则属性对话框中,选择新 IP 筛选器列表,然后点击其左边的圆圈上加一个点,表示已经激活,最后点击筛选器操作选项卡。在筛选器操作选项卡中,把使用添加向导左边的钩去掉,点击添加按钮,添加阻止操作(右图):在新筛选器操作属性的安全措施选项卡中,选择阻止,然后点击确定按钮。第五步、进入新规则属性对话框,点击新筛选器操作,其左边的圆圈会加了一个点,表示已经激活,点击关闭按钮,关闭对话框;最后回到新IP安全策略属性对话框,在新的IP筛选器列表左边打钩,按确定按钮关闭对话框。在本地安全策略窗口,用鼠标右击新添加的 IP 安全策略,然后选择指派。重新启动后,电脑中上述网络端口就被关闭了,病毒和黑客再也不能连上这些端口,从而保护了你的电脑。目前还没听说有补丁下载。端口分类逻辑意义上的端口有多种分类标准,下面将介绍两种常见的分类:按端口号分布划分(1)知名端口(Well-Known Ports)知名端口即众所周知的端口号,范围从0到1023,这些端口号一般固定分配给一些服务。比如21端口分配给FTP服务,25端口分配给SMTP(简单邮件传输协议)服务,80端口分配给HTTP服务,135端口分配给RPC(远程过程调用)服务等等。(2)动态端口(Dynamic Ports)动态端口的范围从1024到65535,这些端口号一般不固定分配给某个服务,也就是说许多服务都可以使用这些端口。只要运行的程序向系统提出访问网络的申请,那么系统就可以从这些端口号中分配一个供该程序使用。比如1024端口就是分配给第一个向系统发出申请的程序。在关闭程序进程后,就会释放所占用的端口号。不过,动态端口也常常被病毒木马程序所利用,如冰河默认连接端口是7626、WAY 2.4是8011、Netspy 3.0是7306、YAI病毒是1024等等。按协议类型划分按协议类型划分,可以分为TCP、UDP、IP和ICMP(Internet控制消息协议)等端口。下面主要介绍TCP和UDP端口:(1)TCP端口TCP端口,即传输控制协议端口,需要在客户端和服务器之间建立连接,这样可以提供可靠的数据传输。常见的包括FTP服务的21端口,Telnet服务的23端口,SMTP服务的25端口,以及HTTP服务的80端口等等。(2)UDP端口UDP端口,即用户数据包协议端口,无需在客户端和服务器之间建立连接,安全性得不到保障。常见的有DNS服务的53端口,SNMP(简单网络管理协议)服务的161端口,QQ使用的8000和4000端口等等。常见网络端口端口:0服务:Reserved说明:通常用于分析操作系统。这一方法能够工作是因为在一些系统中“0”是无效端口,当你试图使用通常的闭合端口连接它时将产生不同的结果。一种典型的扫描,使用IP地址为0.0.0.0,设置ACK位并在以太网层广播。端口:1服务:tcpmux说明:这显示有人在寻找SGI Irix机器。Irix是实现tcpmux的主要提供者,默认情况下tcpmux在这种系统中被打开。Irix机器在发布是含有几个默认的无密码的帐户,如:IP、GUEST UUCP、NUUCP、DEMOS 、TUTOR、DIAG、OUTOFBOX等。许多管理员在安装后忘记删除这些帐户。因此HACKER在INTERNET上搜索tcpmux并利用这些帐户。端口:7服务:Echo说明:能看到许多人搜索Fraggle放大器时,发送到X.X.X.0和X.X.X.255的信息。端口:19服务:Character Generator说明:这是一种仅仅发送字符的服务。UDP版本将会在收到UDP包后回应含有垃圾字符的包。TCP连接时会发送含有垃圾字符的数据流直到连接关闭。HACKER利用IP欺骗可以发动DoS攻击。伪造两个chargen服务器之间的UDP包。同样Fraggle DoS攻击向目标地址的这个端口广播一个带有伪造受害者IP的数据包,受害者为了回应这些数据而过载。端口:21服务:FTP说明:FTP服务器所开放的端口,用于上传、下载。最常见的攻击者用于寻找打开anonymous的FTP服务器的方法。这些服务器带有可读写的目录。木马Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所开放的端口。端口:22服务:Ssh说明:PcAnywhere建立的TCP和这一端口的连接可能是为了寻找ssh。这一服务有许多弱点,如果配置成特定的模式,许多使用RSAREF库的版本就会有不少的漏洞存在。端口:23服务:Telnet说明:远程登录,入侵者在搜索远程登录UNIX的服务。大多数情况下扫描这一端口是为了找到机器运行的操作系统。还有使用其他技术,入侵者也会找到密码。木马Tiny Telnet Server就开放这个端口。端口:25服务:SMTP说明:SMTP服务器所开放的端口,用于发送邮件。入侵者寻找SMTP服务器是为了传递他们的SPAM。入侵者的帐户被关闭,他们需要连接到高带宽的E-MAIL服务器上,将简单的信息传递到不同的地址。木马Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都开放这个端口。端口:31服务:MSG Authentication说明:木马Master Paradise、Hackers Paradise开放此端口。端口:42服务:WINS Replication说明:WINS复制端口:53服务:Domain Name Server(DNS)说明:DNS服务器所开放的端口,入侵者可能是试图进行区域传递(TCP),欺骗DNS(UDP)或隐藏其他的通信。因此防火墙常常过滤或记录此端口。端口:67服务:Bootstrap Protocol Server说明:通过DSL和Cable modem的防火墙常会看见大量发送到广播地址255.255.255.255的数据。这些机器在向DHCP服务器请求一个地址。HACKER常进入它们,分配一个地址把自己作为局部路由器而发起大量中间人(man-in-middle)攻击。客户端向68端口广播请求配置,服务器向67端口广播回应请求。这种回应使用广播是因为客户端还不知道可以发送的IP地址。端口:69服务:Trival File Transfer说明:许多服务器与bootp一起提供这项服务,便于从系统下载启动代码。但是它们常常由于错误配置而使入侵者能从系统中窃取任何文件。它们也可用于系统写入文件。端口:79服务:Finger Server说明:入侵者用于获得用户信息,查询操作系统,探测已知的缓冲区溢出错误,回应从自己机器到其他机器Finger扫描。端口:80服务:HTTP说明:用于网页浏览。木马Executor开放此端口。端口:99服务:Metagram Relay说明:后门程序ncx99开放此端口。端口:102服务:Message transfer agent(MTA)-X.400 over TCP/IP说明:消息传输代理。

51干警网 2019-12-02 03:20:36 0 浏览量 回答数 0

问题

【精品问答】Java技术1000问(1)

问问小秘 2019-12-01 21:57:43 34170 浏览量 回答数 10

回答

1、 描述下应用架构的发展历程 目前,架构的发展历程是从单体架构、分布式架构、SOA架构,再到如今流行的微服务架构 2、单体架构的优点、缺点 优点: I 易于开发,开发人员可在短时间内开发完成单体应用 II 易于测试 III 易于部署 缺点: I 灵活程度不够,一旦修改,自上而下需要整体部署,才可以展现出效果,同时开发效率低,降低团队灵活性 II 降低系统的性能 III 系统启动、重启缓慢 IV 扩展性差 3、 什么是传统的分布式架构 简单来说,就是按照业务垂直切分,每个应用都是一个单体架构,通过API接口互相调用 好处是,依赖解耦,理解清晰,开发便捷速度,缺点是调用存在风险,技术复杂,可靠性降低 4、 SOA架构的优点、缺点 面向服务的SOA架构,根据不同的业务建立不同的服务,优点,模块拆分,开发聚合,降低了耦合度,增加功能,增加子项目即可,方便部署,灵活的分布式部署 缺点,调用、交互采用远程通信,接口开发增加工作量 5、 什么是微服务技术 微服务架构在某种程度上是SOA架构的发展。微服务是一种架构风格,对于一个大型的复杂的业务应用系统,业务功能可以拆分为多个独立的微服务,各个服务间是松耦合的,通过各种远程通信协议,实现交互,各个服务可以独立部署、扩容、升降级 6、 目前流行的微服务解决方案 目前最常见的,包括两种,一种基于SpringCloud中间件的微服务解决方案,选型比较中立,内部组件,可以自由更换搭配使用,大致上三种,服务发现,一种Eureka,一种Consul,一种etcd或者阿里nacos,共用组件,服务调用组件Feign。负载均衡ribbon,熔断器hystrix,网关,zuul,gateway,等,配置中心,携程阿波罗,nacos,Config;全链路监控,zipkin,pinpoint,skywalking,其他组件 另一种基于Dubbo实现微服务解决方案,可以Dubbo,nacos,其他 7、 什么是中间件 中间件,是在操作系统之上,应用软件之下的中间层软件。本质上归结为技术架构。常见的中间件,包括服务治理中间件、配置中心、链路监控、分布式事务、分布式定时任务、分布式缓存、消息中间件、API网关、数据库中间件等 8、 什么是Spring Cloud 也是一个中间件,由Spring官方开发维护,基于SpringBoot技术框架,提供了一整套的微服务解决方案。包括服务注册与发现、配置中心、全链路监控、API网关、熔断器等组件,可以随需扩展或替换使用 9、 SpringCloud项目模块 注册中心 Eureka 第一代网关 Zuul 多语言 Sidecar 负载均衡 Ribbon 熔断器 Hystrix 第二代网关 gateway 集群监控 Turbine 声明式HTTP客户端 Feign 注册中心 consul 链路追踪 sleuth 配置中心 config 服务总线 Bus 等 10、 SpringCloud与服务治理中间件 服务治理中间件包含服务注册与发现、服务路由、复杂均衡、自我保护、丰富的治理管理机制等功能。服务路由包含服务上下线、在线测试、就近选择、A/B测试、灰度发布等,负载均衡支持根据状态权重进行负载。自我保护,服务降级、优雅降级、流量控制,Spring Cloud中使用了相关 11、 Springcloud与配置中心中间件 单体应用中,属性配置和代码采用硬编码形式放在一起,简单方便,但是在分布式系统中,多个服务实例,需要分别管理每个服务下对应的配置项,往往配置项项目一致,内容存在偏差,则上线需要检查所有的配置项,如果修改配置项,就要重启等,开发管理相当麻烦,另外还会涉及安全性的问题,比如数据库密码等的存放。分布式系统中,需要我们统一管理,负责管理的中间件,就是配置中心。配置中心,应该具备的功能,分别是支持各种复杂的配置场景,与公司的运维体系和权限体系集成一体,各种配置兼容支持。 SpringCloud Config是配置中心中间件,将应用原本放在本地的配置,统一放置到中心服务器,拥有了更好地管理发布能力,基于应用、环境、版本三个维度管理,配置存储支持git等。无缝支持Spring技术的Environment和PropertySource接口 12、 Springcloud与网关中间件 API是在系统边界上,面向API的串行集中式强管控服务,至少具备如下功能 I 统一接入功能,提供一个高性能、高并发、高可靠的网关服务,也要支持负载均衡、异地多活、容灾切换 Ii 协议适配功能,因为网关是集中式强管控,必须要提供满足各个请求协议,能够协议适配 Iii 流量管控 Iv 安全防护、权限校验 SpringCloud第一代网关采用zuul,根据默认或者配置的路由规则,进行负载或者路由,只能支持基本功能,如果想要实现高度定制更多功能,就需要,进行开发filter过滤器 SpringCloud第二代网关采用Gateway,zuul采用每个请求分配一个线程的方式,不能支持高并发,gateway采用netty框架,具有强大的高并发处理能力,且实现了网管基本功能,例如安全,监控,限流等 13、 Springcloud与全链路监控中间件 分布式系统下,对于日志追踪等,有迫切的需求,需要一个可视化展示监控平台,进行汇集。全链路监控中间件基本功能如下,定位慢调用:各种web服务调用,慢sql执行,定位各种错误,定位各种异常,展现服务依赖,展现调用链路,应用告警SpringCloud采用sleuth 14、 Springcloud与分布式事务 微服务架构之后,困难,在于,1)系统拆分后,服务间调用通信、故障处理变得复杂2)微服务化后,服务调用的分布式事务问题突出3)数量众多,测试部署运维复杂,那么随着Docker容器技术、Devops技术的发展,各种PAAS平台工具的退出,变得愈加容易。分布式事务没有统一方案 15、 Springcloud与领域驱动 微服务作为一种架构风格,提供了快速开发微服务应用的能力,但是对于业务如何开发,业务架构如何治理,架构如何防腐,还需要方法论进行指导,领域驱动作为业务治理和架构防腐的方法论,结合起来,才能更好地提供企业使用 16、 SpringCloud与gRPC协议 通过SpringCloud进行搭建微服务应用,服务间得通信往往采用的是Feign中间件形式,实现简单快捷的调用,底层采用的http形式,相对于gRPC协议或者RPC协议的调用来说,性能相对低下,因此,可以切换开源技术框架gRPC实现 17、 SpringCloud与Dubbo生态融合 SpringCloud与Dubbo在本质上不在一个领域没有可比性。Dubbo是一个基于RPC协议的通信框架,而SpringCloud是实现微服务中间件,随着发展,两者生态也在不断融合,目前已经开源了Spring-cloud-dubbo的项目

huc_逆天 2020-02-24 21:01:42 0 浏览量 回答数 0

回答

1、 描述下应用架构的发展历程 目前,架构的发展历程是从单体架构、分布式架构、SOA架构,再到如今流行的微服务架构 2、单体架构的优点、缺点 优点: I 易于开发,开发人员可在短时间内开发完成单体应用 II 易于测试 III 易于部署 缺点: I 灵活程度不够,一旦修改,自上而下需要整体部署,才可以展现出效果,同时开发效率低,降低团队灵活性 II 降低系统的性能 III 系统启动、重启缓慢 IV 扩展性差 3、 什么是传统的分布式架构 简单来说,就是按照业务垂直切分,每个应用都是一个单体架构,通过API接口互相调用 好处是,依赖解耦,理解清晰,开发便捷速度,缺点是调用存在风险,技术复杂,可靠性降低 4、 SOA架构的优点、缺点 面向服务的SOA架构,根据不同的业务建立不同的服务,优点,模块拆分,开发聚合,降低了耦合度,增加功能,增加子项目即可,方便部署,灵活的分布式部署 缺点,调用、交互采用远程通信,接口开发增加工作量 5、 什么是微服务技术 微服务架构在某种程度上是SOA架构的发展。微服务是一种架构风格,对于一个大型的复杂的业务应用系统,业务功能可以拆分为多个独立的微服务,各个服务间是松耦合的,通过各种远程通信协议,实现交互,各个服务可以独立部署、扩容、升降级 6、 目前流行的微服务解决方案 目前最常见的,包括两种,一种基于SpringCloud中间件的微服务解决方案,选型比较中立,内部组件,可以自由更换搭配使用,大致上三种,服务发现,一种Eureka,一种Consul,一种etcd或者阿里nacos,共用组件,服务调用组件Feign。负载均衡ribbon,熔断器hystrix,网关,zuul,gateway,等,配置中心,携程阿波罗,nacos,Config;全链路监控,zipkin,pinpoint,skywalking,其他组件 另一种基于Dubbo实现微服务解决方案,可以Dubbo,nacos,其他 7、 什么是中间件 中间件,是在操作系统之上,应用软件之下的中间层软件。本质上归结为技术架构。常见的中间件,包括服务治理中间件、配置中心、链路监控、分布式事务、分布式定时任务、分布式缓存、消息中间件、API网关、数据库中间件等 8、 什么是Spring Cloud 也是一个中间件,由Spring官方开发维护,基于SpringBoot技术框架,提供了一整套的微服务解决方案。包括服务注册与发现、配置中心、全链路监控、API网关、熔断器等组件,可以随需扩展或替换使用 9、 SpringCloud项目模块 注册中心 Eureka 第一代网关 Zuul 多语言 Sidecar 负载均衡 Ribbon 熔断器 Hystrix 第二代网关 gateway 集群监控 Turbine 声明式HTTP客户端 Feign 注册中心 consul 链路追踪 sleuth 配置中心 config 服务总线 Bus 等 10、 SpringCloud与服务治理中间件 服务治理中间件包含服务注册与发现、服务路由、复杂均衡、自我保护、丰富的治理管理机制等功能。服务路由包含服务上下线、在线测试、就近选择、A/B测试、灰度发布等,负载均衡支持根据状态权重进行负载。自我保护,服务降级、优雅降级、流量控制,Spring Cloud中使用了相关 11、 Springcloud与配置中心中间件 单体应用中,属性配置和代码采用硬编码形式放在一起,简单方便,但是在分布式系统中,多个服务实例,需要分别管理每个服务下对应的配置项,往往配置项项目一致,内容存在偏差,则上线需要检查所有的配置项,如果修改配置项,就要重启等,开发管理相当麻烦,另外还会涉及安全性的问题,比如数据库密码等的存放。分布式系统中,需要我们统一管理,负责管理的中间件,就是配置中心。配置中心,应该具备的功能,分别是支持各种复杂的配置场景,与公司的运维体系和权限体系集成一体,各种配置兼容支持。 SpringCloud Config是配置中心中间件,将应用原本放在本地的配置,统一放置到中心服务器,拥有了更好地管理发布能力,基于应用、环境、版本三个维度管理,配置存储支持git等。无缝支持Spring技术的Environment和PropertySource接口 12、 Springcloud与网关中间件 API是在系统边界上,面向API的串行集中式强管控服务,至少具备如下功能 I 统一接入功能,提供一个高性能、高并发、高可靠的网关服务,也要支持负载均衡、异地多活、容灾切换 Ii 协议适配功能,因为网关是集中式强管控,必须要提供满足各个请求协议,能够协议适配 Iii 流量管控 Iv 安全防护、权限校验 SpringCloud第一代网关采用zuul,根据默认或者配置的路由规则,进行负载或者路由,只能支持基本功能,如果想要实现高度定制更多功能,就需要,进行开发filter过滤器 SpringCloud第二代网关采用Gateway,zuul采用每个请求分配一个线程的方式,不能支持高并发,gateway采用netty框架,具有强大的高并发处理能力,且实现了网管基本功能,例如安全,监控,限流等 13、 Springcloud与全链路监控中间件 分布式系统下,对于日志追踪等,有迫切的需求,需要一个可视化展示监控平台,进行汇集。全链路监控中间件基本功能如下,定位慢调用:各种web服务调用,慢sql执行,定位各种错误,定位各种异常,展现服务依赖,展现调用链路,应用告警SpringCloud采用sleuth 14、 Springcloud与分布式事务 微服务架构之后,困难,在于,1)系统拆分后,服务间调用通信、故障处理变得复杂2)微服务化后,服务调用的分布式事务问题突出3)数量众多,测试部署运维复杂,那么随着Docker容器技术、Devops技术的发展,各种PAAS平台工具的退出,变得愈加容易。分布式事务没有统一方案 15、 Springcloud与领域驱动 微服务作为一种架构风格,提供了快速开发微服务应用的能力,但是对于业务如何开发,业务架构如何治理,架构如何防腐,还需要方法论进行指导,领域驱动作为业务治理和架构防腐的方法论,结合起来,才能更好地提供企业使用 16、 SpringCloud与gRPC协议 通过SpringCloud进行搭建微服务应用,服务间得通信往往采用的是Feign中间件形式,实现简单快捷的调用,底层采用的http形式,相对于gRPC协议或者RPC协议的调用来说,性能相对低下,因此,可以切换开源技术框架gRPC实现 17、 SpringCloud与Dubbo生态融合 SpringCloud与Dubbo在本质上不在一个领域没有可比性。Dubbo是一个基于RPC协议的通信框架,而SpringCloud是实现微服务中间件,随着发展,两者生态也在不断融合,目前已经开源了Spring-cloud-dubbo的项目

huc_逆天 2020-02-25 11:08:12 0 浏览量 回答数 0

回答

最近,我问了我一个朋友他对"智能合约"的看法。他是一名开发者,我想他可能会有一些有趣的见解。令我惊讶的是,他并不知道智能合约是什么。我感到特别惊讶,因为我们讨论了一年多的加密货币、美国证券交易委员会(SEC)以及许多与区块链相关的其他事情。在计算机领域深耕的人怎么可能会不知道智能合约是什么? 事实上,相比区块链行业的其它概念,智能合约可能会更令加密货币爱好者们感到困惑。因此,要解释这个概念并不容易,尤其是向那些刚刚理解区块链是什么的人解释更不容易。因此,这一概念依旧十分神秘。希望这篇文章可以清楚地解释好这一概念。 什么是智能合约? 想象一下,如果你需要卖掉一栋房子,那么这将是一个复杂而艰巨的过程,不但需要处理大量的文书工作、与不同公司和人员进行沟通,而且还得冒着各类高风险。这就是为什么绝大多数房屋卖家决定寻找房地产经纪,来帮助处理所有文书工作、推销房产,并在协商开始时充当中介、监督交易直至交易结束。 此外,该经纪机构还提供委托付款服务,这在此类交易中尤其有用,因为此类交易所涉及的金额通常很大,你将无法完全信任将要与你进行交易的人。然而,在交易成功完成之后,卖方和买方的经纪机构将获得房产卖出价格的7%作为佣金。这对卖方来说是相当大的经济损失。 在这种情况下,智能合约就可以真正派上用场,可以有效地变革整个行业,同时也减少了所需流程。或许最重要的是,智能合约能解决信任问题。智能合约基于"If-Then"("如果-那么")原则,这意味着只有商定的金额被发送到系统时,房屋的所有权才会被转移给买方。 智能合约也可以作为委托付款服务,这意味着资金和所有权都将被存储在系统中,并在同一时间被分发给各参与方。此外,该交易被数百人见证和验证,因此保证了交付是无差错的。由于双方之间不再存在信任问题,因此也不再需要中介。所有房地产经纪能做的都可以预先编程为智能合约,这同时也为卖方和买方节省了大量资金。 这只是智能合约潜在用途的一个例子。智能合约能够帮助货币、财产和其他任何有价值的东西的交易,确保交易过程完全透明,其不但无需中介服务及其附带费用,还消除了双方之间的信任问题。特定智能合约的代码包括了各方商定的所有条款和条件,有关交易本身的信息则被记录在区块链中,即去中心化的分布式公共账本。 智能合约是如何运作的? 简而言之,智能合约很像自动售货机。你只需将所需数量的加密货币放入智能合约中,而你所交易的,房屋所有权等就会自动存入你的账户。所有的规则和处罚不仅在智能合约预先定义了,而且也由智能合约强制执行。 相互依存 智能合约可以独立运行,但也可以与任何其他智能合约一起运行。当它们彼此依赖时,它们可以以某种方式被设置。例如,成功完成一个特定的智能合约可以触发另一个智能合约的启动,依此类推。从理论上讲,整个系统和组织完全可以依靠智能合约运行。某种程度上,这已经在各种加密货币系统中实现了,在这些系统中,所有的规则都是预先定义好的,因此,网络本身可以独立自主地运行。 智能合约的对象 从本质上讲,每个智能合约都有三个不可或缺的部分(也称为对象)。第一个对象是签署方(两方或多方使用智能合约,同意或不同意使用数字签名的协议条款)。 第二个对象是合约的主题。它只能是智能合约环境中存在的对象。或者,智能合约必须可以不受阻碍地直接访问该对象。尽管智能合约早在1996年就被讨论过,但正是这一特定对象阻碍了智能合约的发展。这个问题直到2009年出现第一个加密货币后才得到部分解决。 最后,任何智能合约都必须包含特定条款。这些条款都需要使用数学方法及适用于特定智能合约环境的编程语言进行完整描述。这些条款包括了所有参与方的预期要求以及与所述条款相关的所有规则、奖励与惩罚。 环境 为了使智能合约能够正常运行,智能合约必须在特定的合适环境中运行。首先,智能合约环境需要支持公钥加密,这使得用户能够使用其独特的、专门生成的加密代码来签署交易。这正是绝大多数现有加密货币所用的系统。 其次,它们需要一个开源和去中心化的数据库,合同各方都可以彼此完全信任,并且履约流程完全自动化。此外,为了实现智能合约,整个环境必须自身是去中心化的。区块链,尤其是以太坊区块链,是运行智能合约的理想环境。 最后,智能合约所使用的数据,来源必须完全可靠。这就需要使用根SSL安全证书、HTTPS和其他已经广泛被使用并在大多数现代软件上自动实现的安全连接协议。 智能合约带来了什么? 自治 智能合约消除了对第三方中介的需求,基本上使你能够完全控制合约。 信任 任何人都无法窃取或弄丢你的文件,因为它们已被加密并安全地存储在一个安全的公开账本中。此外,你不必信任你正与之交易的人,也不必指望他们会信任你,因为公正的智能合约系统基本上解决了信任问题。 节约 由于使用了智能合约,你就不需要公证人、房地产经纪人、顾问及其他众多中介机构的援助。这样也就与他们的服务相关的高额费用无关了。 安全 如果智能合约正确执行,它将是极难破解的。此外,智能合约的完美环境受到复杂的加密保护,它可确保你文档的安全。 高效 通过使用智能合约,你将节省通常浪费在手动处理大量纸质文档并将其发送或运送到特定地点等的大量时间。 谁发明了智能合约?谁在使用智能合约? 1996年,计算机科学家和密码学家Nick Szabo首次提出了智能合约。几年后,Szabo重新定义了这一概念并发布了几篇相关文章,他阐述了通过在互联网上陌生人之间设计的电子商务协议来建立合同法相关商业实践的概念。 然而,智能合约的概念直到2009年才被实现,当时第一个加密货币比特币连同它的区块链一齐出现,后者则最终为智能合约提供了合适的环境。有趣的是,Nick Szabo在1998年设计了一种称为比特黄金(Bit Gold)的去中心化数字货币。虽然它没有被实现,但它已经具备了10年后比特币可吹嘘的许多功能。 如今,智能合约主要与加密货币有关。而且,可以公平地说,它们彼此互相依赖,因为去中心化的加密货币协议本质上是具有去中心化安全性的加密智能合约。智能合约现在被广泛应用于大多数加密货币网络中,并且其也是以太坊最杰出和最被大肆宣传的特点之一。 你知道什么是智能合约吗?币圈聚贤庄来跟你分析一下! 智能合约用例 虽然世界各国政府、金融监管机构和银行对加密货币的立场从极其谨慎变成谨慎接受,但加密货币背后的技术,区块链和智能合约,已被广泛认为是具有革命性的,并且正在各个层面实现这些技术。 例如,美国信托与清算公司(DTCC)和四大银行(美银美林、花旗、瑞士信贷和摩根大通)成功地使用Axoni开发的智能合约交易区块链信用违约掉期。智能合约使用了诸如个人交易详情及相应风险指标之类的信息,据一篇新闻稿称,这提高了合作伙伴和监管机构信息处理上的透明度。 类似的事情到处都在发生。由61家日本银行和韩国银行组成的财团一直在测试Ripple的区块链和智能合约,以实现两国之间的跨境资金转移。这一新系统将于今年推出。就连俄罗斯政府控制的俄罗斯联邦储蓄银行(Sberbank),都在俄罗斯这样一个众所周知的反加密货币国家测试以太坊区块链及其智能合约。 测试结果是俄罗斯联邦储蓄银行加入了以太坊企业联盟(EEA),这是一个由100多家企业组成的联盟,其中包括了思科、英国石油、荷兰国际集团(ING)、微软等顶级企业。该联盟旨在开发一种面向商业用途的区块链,用它可以开发和实现这些公司所需的智能合约。 由于智能合约是与加密货币相关联的,因此它们仍主要被应用到金融领域和银行业。尽管如此,世界各国政府都可以使用这项技术,使得投票系统更加便利而透明。供应链可以使用它来监控货物并自动执行所涉及的所有任务和支付。房地产、医疗保健、税收、保险及其他众多行业都可以受益于智能合约的使用。 智能合约的缺点 智能合约仍是一项未成熟的技术,仍然容易出现问题。例如,构成合约的代码必须是完美无漏洞的。它也会出现错误,有时候,这些错误会被欺诈者所利用。就像DAO被黑事件一样,把资金存放在代码有漏洞的智能合约中资金就可能被盗走。 此外,这项新奇的技术也带来了很多问题。政府将如何决定监管此类合约?他们将如何进行征税?如果合约无法访问其主题,或者发生了任何意外情况,将会是什么情况?这是在传统合约签订时可能发生的,传统合同可以在法庭上被撤销,但区块链要求智能合约无论如何都要按照"代码即法律"的规则去执行。 然而,大多数这些问题的存在纯粹是因为智能合约仍未是一项成熟的技术。但这项技术肯定会随着时间的推移而逐渐完善。毫无疑问,智能合约将会成为我们社会不可或缺的一部分。

问问小秘 2019-12-02 03:07:11 0 浏览量 回答数 0

问题

什么是 CDN?

青衫无名 2019-12-01 22:01:00 1243 浏览量 回答数 0

回答

一、软件篇 1、设定虚拟内存 硬盘中有一个很宠大的数据交换文件,它是系统预留给虚拟内存作暂存的地方,很多应用程序都经常会使用到,所以系统需要经常对主存储器作大量的数据存取,因此存取这个档案的速度便构成影响计算机快慢的非常重要因素!一般Windows预设的是由系统自行管理虚拟内存,它会因应不同程序所需而自动调校交换档的大小,但这样的变大缩小会给系统带来额外的负担,令系统运作变慢!有见及此,用户最好自定虚拟内存的最小值和最大值,避免经常变换大小。要设定虚拟内存,在“我的电脑”上按右键选择“属性”,在“高级”选项里的“效能”的对话框中,对“虚拟内存”进行设置。 3、检查应用软件或者驱动程序 有些程序在电脑系统启动会时使系统变慢。如果要是否是这方面的原因,我们可以从“安全模式”启动。因为这是原始启动,“安全模式”运行的要比正常运行时要慢。但是,如果你用“安全模式”启动发现电脑启动速度比正常启动时速度要快,那可能某个程序是导致系统启动速度变慢的原因。 4、桌面图标太多会惹祸 桌面上有太多图标也会降低系统启动速度。Windows每次启动并显示桌面时,都需要逐个查找桌面快捷方式的图标并加载它们,图标越多,所花费的时间当然就越多。同时有些杀毒软件提供了系统启动扫描功能,这将会耗费非常多的时间,其实如果你已经打开了杀毒软件的实时监视功能,那么启动时扫描系统就显得有些多余,还是将这项功能禁止吧! 建议大家将不常用的桌面图标放到一个专门的文件夹中或者干脆删除! 5、ADSL导致的系统启动变慢 默认情况下Windows XP在启动时会对网卡等网络设备进行自检,如果发现网卡的IP地址等未配置好就会对其进行设置,这可能是导致系统启动变慢的真正原因。这时我们可以打开“本地连接”属性菜单,双击“常规”项中的“Internet协议”打开“TCP/IP属性”菜单。将网卡的IP地址配置为一个在公网(默认的网关是192.168.1.1)中尚未使用的数值如192.168.1.X,X取介于2~255之间的值,子网掩码设置为255.255.255.0,默认网关和DNS可取默认设置。 6、字体对速度的影响 虽然 微软 声称Windows操作系统可以安装1000~1500种字体,但实际上当你安装的字体超过500 种时,就会出现问题,比如:字体从应用程序的字体列表中消失以及Windows的启动速度大幅下降。在此建议最好将用不到或者不常用的字体删除,为避免删除后发生意外,可先进行必要的备份。 7、删除随机启动程序 何谓随机启动程序呢?随机启动程序就是在开机时加载的程序。随机启动程序不但拖慢开机时的速度,而且更快地消耗计算机资源以及内存,一般来说,如果想删除随机启动程序,可去“启动”清单中删除,但如果想详细些,例如是QQ、popkiller 之类的软件,是不能在“启动”清单中删除的,要去“附属应用程序”,然后去“系统工具”,再去“系统信息”,进去后,按上方工具列的“工具”,再按“系统组态编辑程序”,进去后,在“启动”的对话框中,就会详细列出在启动电脑时加载的随机启动程序了!XP系统你也可以在“运行”是输入Msconfig调用“系统配置实用程序”才终止系统随机启动程序,2000系统需要从XP中复制msconfig程序。 8、取消背景和关闭activedesktop 不知大家有否留意到,我们平时一直摆放在桌面上漂亮的背景,其实是很浪费计算机资源的!不但如此,而且还拖慢计算机在执行应用程序时的速度!本想美化桌面,但又拖慢计算机的速度,这样我们就需要不在使用背景了,方法是:在桌面上按鼠标右键,再按内容,然后在“背景”的对话框中,选“无”,在“外观”的对话框中,在桌面预设的青绿色,改为黑色......至于关闭activedesktop,即是叫你关闭从桌面上的web画面,例如在桌面上按鼠标右键,再按内容,然后在“背景”的对话框中,有一幅背景,名为Windows XX,那副就是web画面了!所以如何系统配置不高就不要开启。 10、把Windows变得更苗条 与DOS系统相比,Windows过于庞大,而且随着你每天的操作,安装新软件、加载运行库、添加新游戏等等使得它变得更加庞大,而更为重要的是变大的不仅仅是它的目录,还有它的 注册表 和运行库。因为即使删除了某个程序,可是它使用的DLL文件仍然会存在,因而随着使用日久,Windows的启动和退出时需要加载的DLL动态链接库文件越来越大,自然系统运行速度也就越来越慢了。这时我们就需要使用一些彻底删除DLL的程序,它们可以使Windows恢复苗条的身材。建议极品玩家们最好每隔两个月就重新安装一遍Windows,这很有效。 11、更改系统开机时间 虽然你已知道了如何新增和删除一些随机启动程序,但你又知不知道,在开机至到进入Windows的那段时间,计算机在做着什么呢?又或者是,执行着什么程序呢?那些程序,必定要全部载完才开始进入Windows,你有否想过,如果可删除一些不必要的开机时的程序,开机时的速度会否加快呢?答案是会的!想要修改,可按"开始",选"执行",然后键入win.ini,开启后,可以把以下各段落的内容删除,是删内容,千万不要连标题也删除!它们包括:[compatibility]、[compatibility32]、[imecompatibility]、[compatibility95]、[modulecompatibility]和[embedding]。 二、硬件篇 1、Windows系统自行关闭硬盘DMA模式 硬盘的DMA模式大家应该都知道吧,硬盘的PATA模式有DMA33、DMA66、DMA100和DMA133,最新的SATA-150都出来了!一般来说现在大多数人用的还是PATA模式的硬盘,硬盘使用DMA模式相比以前的PIO模式传输的速度要快2~8倍。DMA模式的起用对系统的性能起到了实质的作用。但是你知道吗?Windows 2000、XP、2003系统有时会自行关闭硬盘的DMA模式,自动改用PIO模式运行!这就造成在使用以上系统中硬盘性能突然下降,其中最明显的现象有:系统起动速度明显变慢,一般来说正常Windows XP系统启动时那个由左向右运动的滑条最多走2~4次系统就能启动,但这一问题发生时可能会走5~8次或更多!而且在运行系统时进行硬盘操作时明显感觉变慢,在运行一些大的软件时CPU占用率时常达到100%而产生停顿,玩一些大型3D游戏时画面时有明显停顿,出现以上问题时大家最好看看自己硬盘的DMA模式是不是被Windows 系统自行关闭了。查看自己的系统是否打开DMA模式: a. 双击“管理工具”,然后双击“计算机管理”; b. 单击“系统工具”,然后单击“设备管理器”; c. 展开“IDE ATA/ATAPI 控制器”节点; d. 双击您的“主要IDE控制器”; 2、CPU 和风扇是否正常运转并足够制冷 当CPU风扇转速变慢时,CPU本身的温度就会升高,为了保护CPU的安全,CPU就会自动降低运行频率,从而导致计算机运行速度变慢。有两个方法检测CPU的温度。你可以用“手指测法”用手指试一下处理器的温度是否烫手,但是要注意的是采用这种方法必须先拔掉电源插头,然后接一根接地线来防止身上带的静电击穿CPU以至损坏。另一个比较科学的方法是用带感温器的万用表来检测处理器的温度。 因为处理器的种类和型号不同,合理温度也各不相同。但是总的来说,温度应该低于 110 度。如果你发现处理器的测试高于这处温度,检查一下机箱内的风扇是否正常运转。 3、USB和扫描仪造成的影响 由于Windows 启动时会对各个驱动器(包括光驱)进行检测,因此如果光驱中放置了光盘,也会延长电脑的启动时间。所以如果电脑安装了扫描仪等设备,或在启动时已经连接了USB硬盘,那么不妨试试先将它们断开,看看启动速度是不是有变化。一般来说,由于USB接口速度较慢,因此相应设备会对电脑启动速度有较明显的影响,应该尽量在启动后再连接USB设备。如果没有USB设备,那么建议直接在BIOS设置中将USB功能关闭。 4、是否使用了磁盘压缩 因为“磁盘压缩”可能会使电脑性能急剧下降,造成系统速度的变慢。所以这时你应该检测一下是否使用了“磁盘压缩”,具体操作是在“我的电脑”上点击鼠标右键,从弹出的菜单选择“属性”选项,来检查驱动器的属性。 5、网卡造成的影响 只要设置不当,网卡也会明显影响系统启动速度,你的电脑如果连接在局域网内,安装好网卡驱动程序后,默认情况下系统会自动通过DHCP来获得IP地址,但大多数公司的局域网并没有DHCP服务器,因此如果用户设置成“自动获得IP地址”,系统在启动时就会不断在网络中搜索DHCP 服务器,直到获得IP 地址或超时,自然就影响了启动时间,因此局域网用户最好为自己的电脑指定固定IP地址。 6、文件夹和打印机共享 安装了Windows XP专业版的电脑也会出现启动非常慢的时候,有些时候系统似乎给人死机的感觉,登录系统后,桌面也不出现,电脑就像停止反应,1分钟后才能正常使用。这是由于使用了Bootvis.exe 程序后,其中的Mrxsmb.dll文件为电脑启动添加了67秒的时间! 要解决这个问题,只要停止共享文件夹和打印机即可:选择“开始→设置→网络和拨号连接”,右击“本地连接”,选择“属性”,在打开的窗口中取消“此连接使用下列选定的组件”下的“ Microsoft 网络的文件和打印机共享”前的复选框,重启电脑即可。 7、系统配件配置不当 一些用户在组装机器时往往忽略一些小东西,从而造成计算机整体配件搭配不当,存在着速度上的瓶颈。比如有些朋友选的CPU档次很高,可声卡等却买了普通的便宜货,其实这样做往往是得不偿失。因为这样一来计算机在运行游戏、播放影碟时由于声卡占用CPU资源较高且其数据传输速度较慢,或者其根本无硬件解码而需要采用软件解码方式,常常会引起声音的停顿,甚至导致程序的运行断断续续。又如有些朋友的机器是升了级的,过去老机器上的一些部件如内存条舍不得抛弃,装在新机器上照用,可是由于老内存的速度限制,往往使新机器必须降低速度来迁就它,从而降低了整机的性能,极大地影响了整体的运行速度。 9、断开不用的网络驱动器 为了消除或减少 Windows 必须重新建立的网络连接数目,建议将一些不需要使用的网络驱动器断开,也就是进入“我的电脑”,右击已经建立映射的网络驱动器,选择“断开”即可。 10、缺少足够的内存 Windows操作系统所带来的优点之一就是多线性、多任务,系统可以利用CPU来进行分时操作,以便你同时做许多事情。但事情有利自然有弊,多任务操作也会对你的机器提出更高的要求。朋友们都知道即使是一个最常用的WORD软件也要求最好有16MB左右的内存,而运行如3D MAX等大型软件时,64MB的内存也不够用。所以此时系统就会自动采用硬盘空间来虚拟主内存,用于运行程序和储存交换文件以及各种临时文件。由于硬盘是机械结构,而内存是电子结构,它们两者之间的速度相差好几个数量级,因而使用硬盘来虚拟主内存将导致程序运行的速度大幅度降低。 11、硬盘空间不足 使用Windows系统平台的缺点之一就是对文件的管理不清楚,你有时根本就不知道这个文件对系统是否有用,因而Windows目录下的文件数目越来越多,容量也越来越庞大,加之现在的软件都喜欢越做越大,再加上一些系统产生的临时文件、交换文件,所有这些都会使得硬盘可用空间变小。当硬盘的可用空间小到一定程度时,就会造成系统的交换文件、临时文件缺乏可用空间,降低了系统的运行效率。更为重要的是由于我们平时频繁在硬盘上储存、删除各种软件,使得硬盘的可用空间变得支离破碎,因此系统在存储文件时常常没有按连续的顺序存放,这将导致系统存储和读取文件时频繁移动磁头,极大地降低了系统的运行速度。 12、硬盘分区太多也有错 如果你的Windows 2000没有升级到SP3或SP4,并且定义了太多的分区,那么也会使启动变得很漫长,甚至挂起。所以建议升级最新的SP4,同时最好不要为硬盘分太多的区。因为Windows 在启动时必须装载每个分区,随着分区数量的增多,完成此操作的时间总量也会不断增长。 三、病毒篇 如果你的计算机感染了病毒,那么系统的运行速度会大幅度变慢。病毒入侵后,首先占领内存这个据点,然后便以此为根据地在内存中开始漫无休止地复制自己,随着它越来越庞大,很快就占用了系统大量的内存,导致正常程序运行时因缺少主内存而变慢,甚至不能启动;同时病毒程序会迫使CPU转而执行无用的垃圾程序,使得系统始终处于忙碌状态,从而影响了正常程序的运行,导致计算机速度变慢。下面我们就介绍几种能使系统变慢的病毒。 1、使系统变慢的bride病毒 病毒类型:黑客程序 发作时间:随机 传播方式:网络 感染对象:网络 警惕程度:★★★★ 病毒介绍: 此病毒可以在Windows 2000、Windows XP等操作系统环境下正常运行。运行时会自动连接 www.hotmail.com网站,如果无法连接到此网站,则病毒会休眠几分钟,然后修改注册表将自己加入注册表自启动项,病毒会释放出四个病毒体和一个有漏洞的病毒邮件并通过邮件系统向外乱发邮件,病毒还会释放出FUNLOVE病毒感染局域网计算机,最后病毒还会杀掉已知的几十家反病毒软件,使这些反病毒软件失效。 病毒特征 如果用户发现计算机中有这些特征,则很有可能中了此病毒。 ·病毒运行后会自动连接 www.hotmail.com网站。 ·病毒会释放出Bride.exe,Msconfig.exe,Regedit.exe三个文件到系统目录;释放出:Help.eml, Explorer.exe文件到桌面。 ·病毒会在注册表的HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun项中加入病毒Regedit.exe的路径。 ·病毒运行时会释放出一个FUNLOVE病毒并将之执行,而FUNLOVE病毒会在计算机中大量繁殖,造成系统变慢,网络阻塞。 ·病毒会寻找计算机中的邮件地址,然后按照地址向外大量发送标题为:<被感染的计算机机名>(例:如果用户的计算机名为:张冬, 则病毒邮件的标题为:张冬)的病毒邮件。 ·病毒还会杀掉几十家国外著名的反病毒软件。 用户如果在自己的计算机中发现以上全部或部分现象,则很有可能中了Bride(Worm.bride)病毒,请用户立刻用手中的杀毒软件进行清除。 2、使系统变慢的阿芙伦病毒 病毒类型:蠕虫病毒 发作时间:随机 传播方式:网络/文件 感染对象:网络 警惕程度:★★★★ 病毒介绍: 此病毒可以在Windows 9X、Windows NT、Windows 2000、Windows XP等操作系统环境下正常运行。病毒运行时将自己复到到TEMP、SYSTEM、RECYCLED目录下,并随机生成文件名。该病毒运行后,会使消耗大量的系统资源,使系统明显变慢,并且杀掉一些正在运行的反病毒软件,建立四个线程在局域网中疯狂传播。 病毒特征 如果用户发现计算机中有这些特征,则很有可能中了此病毒: ·病毒运行时会将自己复到到TEMP、SYSTEM、RECYCLED目录下,文件名随机 ·病毒运行时会使系统明显变慢 ·病毒会杀掉一些正在运行的反病毒软件 ·病毒会修改注册表的自启动项进行自启动 ·病毒会建立四个线程在局域网中传播 用户如果在自己的计算机中发现以上全部或部分现象,则很有可能中了“阿芙伦(Worm.Avron)”病毒,由于此病毒没有固定的病毒文件名,所以,最好还是选用杀毒软件进行清除。 3、恶性蠕虫 震荡波 病毒名称: Worm.Sasser 中文名称: 震荡波 病毒别名: W32/Sasser.worm [Mcafee] 病毒类型: 蠕虫 受影响系统:WinNT/Win2000/WinXP/Win2003 病毒感染症状: ·莫名其妙地死机或重新启动计算机; ·系统速度极慢,cpu占用100%; ·网络变慢; ·最重要的是,任务管理器里有一个叫"avserve.exe"的进程在运行! 破坏方式: ·利用WINDOWS平台的 Lsass 漏洞进行广泛传播,开启上百个线程不停攻击其它网上其它系统,堵塞网络。病毒的攻击行为可让系统不停的倒计时重启。 ·和最近出现的大部分蠕虫病毒不同,该病毒并不通过邮件传播,而是通过命令易受感染的机器 下载特定文件并运行,来达到感染的目的。 ·文件名为:avserve.exe 解决方案: ·请升级您的操作系统,免受攻击 ·请打开个人防火墙屏蔽端口:445、5554和9996,防止名为avserve.exe的程序访问网络 ·手工解决方案: 首先,若系统为WinMe/WinXP,则请先关闭系统还原功能; 步骤一,使用进程程序管理器结束病毒进程 右键单击任务栏,弹出菜单,选择“任务管理器”,调出“Windows任务管理器”窗口。在任务管理器中,单击“进程”标签,在例表栏内找到病毒进程“avserve.exe”,单击“结束进程按钮”,点击“是”,结束病毒进程,然后关闭“Windows任务管理器”; 步骤二,查找并删除病毒程序 通过“我的电脑”或“资源管理器”进入 系统安装目录(Winnt或windows),找到文件“avser ve.exe”,将它删除;然后进入系统目录(Winntsystem32或windowssystem32),找 到文件"*_up.exe", 将它们删除; 步骤三,清除病毒在注册表里添加的项 打开注册表编辑器: 点击开始——>运行, 输入REGEDIT, 按Enter; 在左边的面板中, 双击(按箭头顺序查找,找到后双击): HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRun 在右边的面板中, 找到并删除如下项目:"avserve.exe" = %SystemRoot%avserve.exe 关闭注册表编辑器。 第二部份 系统加速 一、Windows 98 1、不要加载太多随机启动程序 不要在开机时载入太多不必要的随机启动程序。选择“开始→程序→附件→系统工具→系统信息→系统信息对话框”,然后,选择“工具→系统配置实用程序→启动”,只需要internat.exe前打上钩,其他项都可以不需要,选中后确定重起即可。 2、转换系统文件格式 将硬盘由FAT16转为FAT32。 3、不要轻易使用背景 不要使用ActiveDesktop,否则系统运行速度会因此减慢(右击屏幕→寻显示器属性→Web标签→将其中关于“活动桌面”和“频道”的选项全部取消)。 4、设置虚拟内存 自己设定虚拟内存为机器内存的3倍,例如:有32M的内存就设虚拟内存为96M,且最大值和最小值都一样(此设定可通过“控制面板→系统→性能→虚拟内存”来设置)。 5、一些优化设置 a、到控制面板中,选择“系统→性能→ 文件系统”。将硬盘标签的“计算机主要用途”改为网络服务器,“预读式优化"调到全速。 b、将“软盘”标签中“每次启动就搜寻新的软驱”取消。 c、CD-ROM中的“追加高速缓存”调至最大,访问方式选四倍速或更快的CD-ROM。 6、定期对系统进行整理 定期使用下列工具:磁盘扫描、磁盘清理、碎片整理、系统文件检查器(ASD)、Dr?Watson等。 二、Windows 2000 1、升级文件系统 a、如果你所用的操作系统是win 9x与win 2000双重启动的话,建议文件系统格式都用FAT32格式,这样一来可以节省硬盘空间,二来也可以9x与2000之间能实行资源共享。 提醒:要实现这样的双重启动,最好是先在纯DOS环境下安装完9x在C区,再在9x中或者用win 2000启动盘启动在DOS环境下安装2000在另一个区内,并且此区起码要有800M的空间以上 b、如果阁下只使用win 2000的话,建议将文件系统格式转化为NTFS格式,这样一来可节省硬盘空间,二来稳定性和运转速度更高,并且此文件系统格式有很好的纠错性;但这样一来,DOS和win 9x系统就不能在这文件系统格式中运行,这也是上面所说做双启动最好要用FAT32格式才能保证资源共享的原因。而且,某些应用程序也不能在此文件系统格式中运行,大多是DOS下的游戏类。 提醒:在win 2000下将文件系统升级为NTFS格式的方法是,点击“开始-程序-附件”选中“命令提示符”,然后在打开的提示符窗口输入"convert drive_letter:/fs:ntfs",其中的"drive"是你所要升级的硬盘分区符号,如C区;还需要说明的是,升级文件系统,不会破坏所升级硬盘分区里的文件,无需要备份。 · 再运行“添加-删除程序”,就会看见多出了个“添加/删除 Windows 组件”的选项; b、打开“文件夹选项”,在“查看”标签里选中“显示所有文件和文件夹”,此时在你安装win 2000下的区盘根目录下会出现Autoexec.bat和Config.sys两个文件,事实上这两个文件里面根本没有任何内容,可以将它们安全删除。 c、右击“我的电脑”,选中“管理”,在点“服务和应用程序”下的“服务”选项,会看见win 2000上加载的各个程序组见,其中有许多是关于局域网设置或其它一些功能的,你完全可以将你不使用的程序禁用; 如:Alertr,如果你不是处于局域网中,完全可以它设置为禁用;还有Fax Service,不发传真的设置成禁用;Print Spooler,没有打印机的设置成制用;Uninterruptible power Supply,没有UPS的也设置成禁用,这些加载程序你自己可以根据自己实际情况进行设置。 各个加载程序后面都有说明,以及运行状态;选中了要禁用的程序,右击它,选“属性”,然后单击停止,并将“启动类型”设置为“手动”或者“已禁用”就行了 d、关掉调试器Dr. Watson; 运行drwtsn32,把除了“转储全部线程上下文”之外的全都去掉。否则一旦有程序出错,硬盘会响很久,而且会占用很多空间。如果你以前遇到过这种情况,请查找user.dmp文件并删掉,可能会省掉几十兆的空间。这是出错程序的现场,对我们没用。另外蓝屏时出现的memory.dmp也可删掉。可在我的电脑/属性中关掉 “答案来源于网络,供您参考” 希望以上信息可以帮到您!

牧明 2019-12-02 02:15:52 0 浏览量 回答数 0

问题

BGP防御DDoS攻击的方法浅析

锐讯网络1 2019-12-01 22:09:10 3641 浏览量 回答数 1

问题

云主机与服务器托管优缺点

czllz 2019-12-01 21:34:28 3008 浏览量 回答数 1
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 云栖号物联网 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 云栖号弹性计算 阿里云云栖号 云栖号案例 云栖号直播