• 关于

    计算机相关系统会出现哪些问题

    的搜索结果

回答

在浏览器里输入 [url=file://\\10.2.6.120]\\10.2.6.120[/url] 弹出以下“\\10.2.6.120无法访问。你可能没有权限访问网络资源。请与这台服务器的管理员联系以查明你是否有访问权限。拒绝访问。” 现在公司最喜欢用WIN2000/ xp,但是这个系统本身就带有些系统排斥,因为内网的资源是共享的,所以经常碰到等入不了的问题,系统提示:此工作组的服务器列表无法使用。下面就着手解决.但是首先,我们先来看下网络邻居互相访问的最基本的条件: 1.双方计算机打开,且设置了网络共享资源; 2.双方的计算机添加了 "Microsoft 网络文件和打印共享" 服务; 3.双方都正确设置了网内IP地址,且必须在一个网段中; 4.双方的计算机中都关闭了防火墙,或者防火墙策略中没有阻止网上邻居访问的策略。 5. XP首次使用时在网上邻居的属性里面已经新建一个网络连接进行网络安装向导 6.计算机之间的物理连接正常。在桌面计算机中,每个网卡后面的指示灯是亮的,集线器或交换机是打开的,而且每个客户端连接的指示灯都是亮的,网线的水晶头接触良好。 7.确保所有计算机上都安装了TCP/IP,并且工作正常。 在Windows XP中默认安装了TCP/IP。但是,如果出了网络问题想卸载后重新安装TCP/IP就不容易了:在“本地连接”属性中显示的此连接使用下列项目列表中单击Internet协议(TCP/IP)项,您将发现卸载按钮不可用(被禁用)。 这是因为传输控制协议/Internet协议(TCP/IP)堆栈是Microsoft XP/ 2003的核心组件,不能删除。在这种情况下,如果需要重新安装TCP/IP以使TCP/IP堆栈恢复为原始状态。可以使用NetShell实用程序重置 TCP/IP堆栈,使其恢复到初次安装操作系统时的状态。方法是:在命令提示符后键入以下命令,然后按ENTER键:netsh int ip reset c:\resetlog.txt,其中,Resetlog.txt记录命令结果的日志文件,一定要指定,这里指定了Resetlog.txt日志文件及完整路径。运行此命令的结果与删除并重新安装TCP/IP协议的效果相同。 既然我们现在了解明白了这些条件,就可以着手解决: 第一种可能性就是本身系统系统浏览的正常现象。如微软公司文档中提到的预期的升级行为.详细的可以到这里看: http://support.microsoft.com/kb/304040/ZH-CN/ 还有一点, 在实际的网络运用中,安装Windows XP系统的电脑有时会出现不能与Windows 98、Windows 2000的电脑互相访问的问题,即使是开启Guest账号、安装NetBEUI协议、设置共享文件夹,也不能正常访问,这就属于系统本身浏览的政策现象. 第二种是开了防火墙,在XP中自带的防火墙会导致无法访问网络邻居.可以通过命令net view \\computername 来查看.不论是2000还是XP只要关掉防火墙就可以.同时确保防火墙没有禁止以下端口的通讯:UDP-137、UDP-138、TCP-139、 TCP-445(仅WIN2K及以后的操作系统)。 Windows XP最新的SP2补丁对ICS做了很大的改进,功能更强大了,ICS有了自己的设置项,安装SP2后,默认情况下,启用ICS防火墙,不允许任何外部主动连接,即使是本地的应用程序要访问网络也需要在许可列表中做设置。 但是防火墙阻断正常的网络浏览服务通讯,结果是别人在网上邻居中看不到你的计算机.这时候如果开启了ICS,打开属性,在服务这栏,选择添加,添加服务的对话框共有四个编辑框,最上边是描述服务名称,以便于记忆,从上到下第二个是应用服务的IP地址或名称,输入127.0.0.1表示本机。 下面连个是内外端口号,旁边的tcp/udp标示这个端口是udp连接还是tcp连接。 按照下面的表格输入3个服务 名称 协议 端口 NetBIOS Name Service UDP 137 NetBIOS Datagram Service UDP 138 NetBIOS Session Service TCP 139 PS: 137/UDP -- NetBIOS名称服务器,网络基本输入/输出系统(NetBIOS)名称服务器(NBNS)协议是TCP/IP上的NetBIOS (NetBT)协议族的一部分,它在基于NetBIOS名称访问的网络上提供主机名和地址映射方法。138/UDP -- NetBIOS数据报,NetBIOS数据报是TCP/IP上的NetBIOS (NetBT)协议族的一部分,它用于网络登录和浏览。 139/TCP -- NetBIOS会话服务,NetBIOS会话服务是TCP/IP上的NetBIOS (NetBT)协议族的一部分,它用于服务器消息块(SMB)、文件共享和打印。 第三种是查看Guest用户激活了没有,可以从“控制面板|管理工具|计算机管理|本地用户和组|用户”中找到“Guest”账户,并用鼠标右击打开 “Guest属性”对话框,去除这里的“账户已停用”复选框上的对钩标记 .Windows XP的Guest帐户允许其他人使用你的电脑,但不允许他们访问特定的文件,也不允许他们安装软件。对Windows XP Home Edition计算机或工作组中的Windows XP Professional计算机的所有网络访问都使用来宾帐户。使用net user guest确保为网络访问设置了来宾帐户,如果该帐户是活动的,命令输出中会出现一行类似下面这样的内容:Account active Yes;如果该帐户不是活动的,请使用下面的命令授予来宾帐户网络访问: net user guest /active:yes 或者打开控制面板->用户帐户或者在管理工具->计算机管理->本地用户和组中打开Guest帐户.同时设置为允许Guest(来宾)帐号从网络上访问。 在运行里输入gpedit.msc,弹出组策略管理器,在‘计算机配置-Windows设置-本地策略-用户权利指派’中,有“拒绝从网络访问这台计算机”策略阻止从网络访问这台计算机,如果其中有GUEST帐号,解决办法是删除拒绝访问中的GUEST帐号。 第四种查看协议,IPX,netbeui,TIP/IP协议,选择开启,共享用的是139,445端口. Win2k安装NetBEUI协议. 网上邻居->属性->本地连接->属性---->安装------>协议------->NetBEUI Protocol XP右击网上邻居-属性,选择要共享的网卡。把IP设置在局域网的同一个网段上。在XP中打开 TCP/IP 上的 NetBIOS 开始---->控制面板---->网络和 Internet 连接---->网络连接---->本地连接---->属性---->Internet 协议 (TCP/IP) ---->常规---->高级---->WINS选项---->NetBIOS---->启用 TCP/IP 上的 NetBIOS---->确定[点击2次] 第五种在共享文件夹前加个符号,比如¥,%等 第六种检查Win2000是否存在安全策略限制 开始 -> 运行 -> gpedit.msc -> 计算机配置 -> windows设置 -> 本地策略 -> 用户权利分配 -> 删除"拒绝从网络访问这台计算机"中的guest用户。 XP的主策略安全设置 开 始 -> 运行 -> gpedit.msc -> 计算机配置 -> windows设置 -> 安全设置 ->本地策略 ->用户权利分配 -> 从网络上访问此计算机"属性那里性质Everone或者在"拒绝从网络访问这计算机"属性中删除GUEST 第七种“文件及打印机共享”的限制,允许其他用户访问我的文件点击激活就可以,其他的一些比较少碰到的问题如内部IP地址发生了冲突,甚至包括Hub故障、线路故障等就不说了 第八种启动"计算机浏览器"服务.根据微软的文档工作组中的一台或多台计算机没有启动或已关闭(禁用)"计算机浏览器"服务也会导致访问网络邻居失败.打开就可以了 开始---->我的电脑---->管理---->服务和应用程序---->服务---->在右边的详细信息窗格中,检查"计算机浏览器"服务是否已启动,右击计算机浏览器,然后单击启动 第九种运行网络标识向导. 我的电脑---->属性---->计算机名选项卡----> 网络 ID按钮,开始“网络标识向导”: ---->下一步---->本机是商业网络的一部分,用它连接到其他工作着的计算机---->下一步---->公司使用没有域的网络---->下一步---->输入你的局域网的工作组名---->下一步---->完成 第十种检查RPC、Plug and Play服务已启动,检查相应的系统文件夹的权限,重新注册以下的动态链接库: regsvr32 netshell.dll regsvr32 netcfgx.dll regsvr32 netman.dll 第十一种设置帐号和密码. 由于WinNT内核的操作系统,在访问远程计算机的时候,好像总是首先尝试用本地的当前用户名和密码来尝试,可能造成无法访问,在这里把用户密码添加进去就可以了。 第十二种ping ip ,然后在地址输入栏中输入“192.168.1.8”,单击“确定”。 用搜索计算机的方法访问,计算机更新列表需要时间,搜索计算机可以加快更新列表。点击“网上邻居”右键中的“搜索计算机”,输入计算机名,点击“立即搜索”,就可以看到你要访问的计算机。直接双击右边计算机名就可以打开它了。 用映射驱动器的方法访问,进入DOS方式,输入“NET VIEW \killer”,回车这是查看计算机上有哪些共享文件夹,如D。再输入NET USE Z:\Killer\D将计算机IBM-ZB共享的文件夹D映射为H:盘,在命令提示符下键入“Z:”。你会发现你已经连到目标计算机上了。 如果一个文件共享的时候在文件名前上了符号如¥%隐藏文件,可以在DOS下net share可以看的到。 由于WIN是中断式操作系统,如果对OS不是很熟悉的话会产生误解,相关的网络浏览过程方面的资料. 十三.打开控制面板,在用户一项里打开GUEST用户,再在控制面板,管理工具里,打开计算机管理,在里面选择本地用户和组,再选择用户,在GUEST上点右键,选择属性,这里有两种选择方法一种是需要密码,一种是不需要密码,如果需要密码就把《用户不能更改密码》和《密码永不过期》打上勾,如果不需要密码就直接把上面所有的勾去掉!还有如果需要密码的话,记得在GUEST上点右键,选择所有任务,设置密码!这里就是设置访问权限了,这一切都完毕以后关闭计算机管理,然后再在管理工具里打开本地安全策略,在本地策略里选择《用户权利指派》在用户权利指派里找到《拒绝本地登陆》一项,并把它打开,把里面的 GUEST删除掉,然后再找到《拒绝从网络访问这台计算机》打开,也是同样把GUEST删除掉,再找到《从网络访问此计算机》打开,在里面添加GUEST 项,一切就OK了!如果是在WIN98下访问XP,需要在WIN98的网上邻居属性里添加一个NETBOIS协议! 这样大家就可以在同一个子网里互访了! 十四、解除windows xp的文件共享限制 在安装了windows xp的计算机上,即使网络连接和共享设置正确,使用其他系统的用户仍然无法访问该计算机。默认情况下,windows xp的本地安全设置要求进行网络访问的用户全部采用来宾方式。同时,在windows xp安全策略的用户权利指派中又禁止guest用户通过网络访问系统。这样两条相互矛盾的安全策略导致了网内其他用户无法通过网络访问使用windows xp的计算机。你可采用以下方法解决。 方法一、解除对guest账号的限制 点击“开始→运行”,在“运行”对话框中输入“gpedit.msc”,打开组策略编辑器,依次选择“计算机配置→windows设置→安全设置→本地策略→用户权利指派”,双击“拒绝从网络访问这台计算机”策略,删除里面的“guest”账号。这样其他用户就能够通过guest账号通过网络访问使用 windows xp系统的计算机了。 方法二、更改网络访问模式 打开组策略编辑器,依次选择“计算机配置→windows设置→安全设置→本地策略→安全选项”,双击“网络访问:本地账号的共享和安全模式”策略,将默认设置“仅来宾—本地用户以来宾身份验证”,更改为“经典:本地用户以自己的身份验证”。 现在,当其他用户通过网络访问使用windows xp的计算机时,就可以用自己的“身份”进行登录了。当该策略改变后,文件的共享方式也有所变化,在启用“经典:本地用户以自己的身份验证”方式后,我们可以对同时访问共享文件的用户数量进行限制,并能针对不同用户设置不同的访问权限。 不过我们可能还会遇到另外一个问题,当用户的口令为空时,访问还是会被拒绝。原来在“安全选项”中有一个“账户:使用空白密码的本地账户只允许进行控制台登录”策略默认是启用的,根据windows?xp安全策略中拒绝优先的原则,密码为空的用户通过网络访问windows xp的计算机时便会被禁止。我们只要将这个策略停用即可解决问题。 答案来源网络,供参考,希望对您有帮助
问问小秘 2019-12-02 02:19:31 0 浏览量 回答数 0

回答

经常出现CPU占用100%的情况,主要问题可能发生在下面的某些方面: CPU占用率高 的九种可能 1、防杀毒软件造成 故障 由于新版的 KV 、金山、 瑞星 都加入了对网页、 插件 、邮件的随机监控,无疑增大了系统负担。处理方式:基本上没有合理的处理方式,尽量使用最少的监控服务吧,或者,升级你的硬件配备。 2、驱动没有经过认证,造成CPU资源占用100% 大量的测试版的驱动在网上泛滥,造成了难以发现的故障原因。 处理方式:尤其是 显卡驱动 特别要注意,建议使用 微软认证 的或由官方发布的驱动,并且严格核对型号、版本。 3、 病毒、木马 造成 大量的蠕虫病毒在系统内部迅速复制,造成CPU占用资源率据高不下。解决办法:用可靠的杀毒软件彻底清理系统内存和本地硬盘,并且打开系统设置软件,察看有无异常启动的程序。经常性更新升级杀毒软件和防火墙,加强防毒意识,掌握正确的防杀毒知识。 4、控制面板— 管理工具 —服务—RISING REALTIME MONITOR SERVICE 点鼠标右键,改为手动。 5、开始->运行->msconfig->启动,关闭不必要的启动项,重启。 6、查看“ svchost ”进程。 svchost . exe 是Windows XP系统 的一个核心进程。 svchost.exe 不单单只出现 在Window s XP中,在使用 NT 内核的 Windows系统 中都会有svchost.exe的存在。一般在 Windows 2000 中 svchost.exe进程 的数目为2个,而 在Windows XP中svchost.exe进程的数目就上升到了4个及4个以上。 7、查看 网络连接 。主要是网卡。 8、查看网络连接 当安装了Windows XP的计算机做服务器的时候,收到端口 445 上的连接请求时,它将分配内存和少量地调配 CPU资源来为这些连接提供服务。当负荷过重的时候,CPU占用率可能过高,这是因为在工作项的数目和响应能力之间存在固有的权衡关系。你要确定合适的 MaxWorkItems 设置以提高系统响应能力。如果设置的值不正确,服务器的响应能力可能会受到影响,或者某个用户独占太 多系统 资源。 要解决此问题,我们可以通过修改注册表来解决:在 注册表编辑器 中依次展开[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver ]分支,在右侧窗口中 新建 一个名为“maxworkitems”的 DWORD值 。然后双击该值,在打开的窗口中键入下列数值并保存退出: 如果计算机有512MB以上的内存,键入“1024”;如果计算机内存小于 512 MB,键入“256”。 9、看看是不是Windows XP使用鼠标右键引起CPU占用100% 前不久的报到说在资源管理器里面使用鼠标右键会导致CPU资源100%占用,我们来看看是怎么回事? 征兆: 在资源管理器里面,当你右键点击一个目录或一个文件,你将有可能出现下面所列问题: 任何文件的拷贝操作在那个时间将有可能停止相应 网络连接速度将显著性的降低 所有的流输入/输出操作例如使用Windows Media Player 听音乐将有可能是音乐失真成因: 当你在资源管理器里面右键点击一个文件或目录的时候,当快捷 菜单显示 的时候,CPU占用率将增加到100%,当你关闭快捷菜单的时候才返回正常水平。 解决方法: 方法一:关闭“为菜单和工具提示使用过渡效果” 1、点击“开始”--“控制面板” 2、在“控制面板”里面双击“显示” 3、在“显示”属性里面点击“外观”标签页 4、在“外观”标签页里面点击“效果” 5、在“效果”对话框里面,清除“为菜单和工具提示使用过渡效果”前面的复选框接着点击两次“确定”按钮。 方法二:在使用鼠标右键点击文件或目录的时候先使用鼠标左键选择你的目标文件或目录。然后再使用鼠标右键弹出快捷菜单。 CPU占用100%解决办法 一般情况下CPU占了100%的话我们的电脑总会慢下来,而很多时候我们是可以通过做 一点点 的改动就可以解决,而不必问那些大虾了。 当机器慢下来的时候,首先我们想到的当然是任务管理器了,看看到底是哪个程序占了较搞的比例,如果是某个大程序那还可以原谅,在关闭该程序后只要CPU正常了那就没问题;如果不是,那你就要看看是什幺程序了,当你查不出这个进程是什幺的时候就去google或者 baidu 搜。有时只结束是没用的,在 xp下 我们可以结合msconfig里的启动项,把一些不用的项给关掉。在2000下可以去下个winpatrol来用。 一些常用的软件,比如浏览器占用了很搞的CPU,那幺就要升级该软件或者干脆用别的同类软件代替,有时软件和系统会有点不兼容,当然我们可以试下xp系统下给我们的那个兼容项,右键点该. exe文件 选兼容性。 svchost.exe有时是比较头痛的,当你看到你的某个svchost.exe占用很大CPU时你可以去下个aports或者fport来检查其对应的程序路径,也就是什幺东西在掉用这个svchost.exe,如果不是c:\Windows\ system32 (xp)或c:\winnt\system32(2000)下的,那就可疑。升级杀毒软件杀毒吧。 右击 文件导致100%的CPU占用我们也会遇到,有时点右键停顿可能就是这个问题了。官方的解释:先点左键选中,再右键(不是很理解)。非官方:通过在桌面点右键-属性-外观-效果,取消”为菜单和工具提示使用下列过度效果(U)“来解决。还有某些杀毒软件对文件的监控也会有所影响,可以 关闭杀毒软件 的文件监控;还有就是对网页,插件,邮件的监控也是同样的道理。 一些驱动程序有时也可能出现这样的现象,最好是选择微软认证的或者是官方发布的驱动来装,有时可以适当的升级驱动,不过记得最新的不是最好的。 CPU降温软件 ,由于软件在运行时会利用所以的CPU空闲时间来进行降温,但Windows不能分辨普通的CPU占用和 降温软件 的降温指令 之间的区别 ,因此CPU始终显示100%,这个就不必担心了,不影响正常的系统运行。 在处理较大的 word文件 时由于word的拼写和语法检查会使得CPU累,只要打开word的工具-选项-拼写和语法把”检查拼写和检查语法“勾去掉。 单击 avi视频 文件后CPU占用率高是因为系统要先扫描该文件,并检查文件所有部分,并建立索引;解决办法:右击保存视频文件的文件夹-属性-常规-高级,去掉为了快速搜索,允许索引服务编制该文件夹的索引的勾。 CPU占用100%案例分析 1、 dllhost进程造成CPU使用率占用100% 特征:服务器正常CPU消耗应该在75%以下,而且CPU消耗应该是上下起伏的,出现这种问题的服务器,CPU会突然一直处100%的水平,而且不会下降。查看任务管理器,可以发现是DLLHOST.EXE消耗了所有的CPU空闲时间,管理员在这种情况下,只好重新启动IIS服务,奇怪的是,重新启动IIS服务后一切正常,但可能过了一段时间后,问题又再次出现了。 直接原因: 有一个或多个ACCESS数据库在多次读写过程中损坏,微软的 MDAC 系统在写入这个损坏的ACCESS文件时,ASP线程处于BLOCK状态,结果其它线程只能等待,IIS被死锁了,全部的CPU时间都消耗在DLLHOST中。 解决办法: 安装“一流信息监控拦截系统”,使用其中的“首席文件检查官IIS健康检查官”软件, 启用”查找死锁模块”,设置: --wblock=yes 监控的目录,请指定您的主机的文件所在目录: --wblockdir=d:\test 监控生成的日志的文件保存位置在安装目录的log目录中,文件名为:logblock.htm 停止IIS,再启动“首席文件检查官IIS健康检查官”,再启动IIS,“首席文件检查官IIS健康检查官”会在logblock.htm中记录下最后写入的ACCESS文件的。 过了一段时间后,当问题出来时,例如CPU会再次一直处100%的水平,可以停止IIS,检查logblock.htm所记录的最后的十个文件,注意,最有问题的往往是计数器类的ACCESS文件,例如:”COUNT. MDB ”,”COUNT.ASP”,可以先把最后十个文件或有所怀疑的文件删除到回收站中,再启动IIS,看看问题是否再次出现。我们相信,经过仔细的查找后,您肯定可以找到这个让您操心了一段时间的文件的。 找到这个文件后,可以删除它,或下载下来,用ACCESS2000修复它,问题就解决了。 2、 svchost.exe造成CPU使用率占用100% 在win.ini文件中,在[Windows]下面,“run=”和“load=”是可能加载“木马”程序的途径,必须仔细留心它们。一般情况下,它们的等号后面什幺都没有,如果发现后面跟有路径与文件名不是你熟悉的启动文件,你的计算机就可能中上“木马”了。当然你也得看清楚,因为好多“木马”,如“AOL Trojan木马”,它把自身伪装成command.exe文件,如果不注意可能不会发现它不是真正的系统启动文件。 在system.ini文件中,在[BOOT]下面有个“shell=文件名”。正确的文件名应该是“explorer.exe”,如果不是“explorer.exe”,而是“shell= explorer.exe 程序名”,那幺后面跟着的那个程序就是“木马”程序,就是说你已经中“木马”了。 在注册表中的情况最复杂,通过regedit命令打开注册表编辑器,在点击至:“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”目录下,查看键值中有没有自己不熟悉的自动启动文件,扩展名为EXE,这里切记:有的“木马”程序生成的文件很像系统自身文件,想通过伪装蒙混过关,如“Acid Battery v1.0木马”,它将注册表“HKEY-LOCAL-MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”下的Explorer 键值改为Explorer=“C:\Windows\expiorer.exe”,“木马”程序与真正的Explorer之间只有“i”与“l”的差别。当然在注册表中还有很多地方都可以隐藏“木马”程序,如:“HKEY-CURRENT-USER\Software\Microsoft\Windows\CurrentVersion\Run”、“HKEY-USERS*\Software\Microsoft\Windows\CurrentVersion\Run”的目录下都有可能,最好的办法就是在“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”下找到“木马该病毒也称为“Code Red II(红色代码2)”病毒,与早先在西方英文系统下流行“红色代码”病毒有点相反,在国际上被称为VirtualRoot(虚拟目录)病毒。该蠕虫病毒利用Microsoft已知的溢出漏洞,通过80端口来传播到其它的Web页服务器上。受感染的机器可由黑客们通过Http Get的请求运行scripts/root.exe来获得对受感染机器的完全控制权。 当感染一台服务器成功了以后,如果受感染的机器是中文的系统后,该程序会休眠2天,别的机器休眠1天。当休眠的时间到了以后,该蠕虫程序会使得机器重新启动。该蠕虫也会检查机器的月份是否是10月或者年份是否是2002年,如果是,受感染的服务器也会重新启动。当Windows NT系统启动时,NT系统会自动搜索C盘根目录下的文件explorer.exe,受该网络蠕虫程序感染的服务器上的文件explorer.exe也就是该网络蠕虫程序本身。该文件的大小是8192字节,VirtualRoot网络蠕虫程序就是通过该程序来执行的。同时,VirtualRoot网络蠕虫程序还将cmd.exe的文件从Windows NT的system目录拷贝到别的目录,给黑客的入侵敞开了大门。它还会修改系统的注册表项目,通过该注册表项目的修改,该蠕虫程序可以建立虚拟的目录C或者D,病毒名由此而来。值得一提的是,该网络蠕虫程序除了文件explorer.exe外,其余的操作不是基于文件的,而是直接在内存中来进行感染、传播的,这就给捕捉带来了较大难度。 ”程序的文件名,再在整个注册表中搜索即可。 我们先看看微软是怎样描述svchost.exe的。在微软知识库314056中对svchost.exe有如下描述:svchost.exe 是从动态链接库 (DLL) 中运行的服务的通用主机进程名称。 其实svchost.exe是Windows XP系统的一个核心进程。svchost.exe不单单只出现在Windows XP中,在使用NT内核的Windows系统中都会有svchost.exe的存在。一般在Windows 2000中svchost.exe进程的数目为2个,而在Windows XP中svchost.exe进程的数目就上升到了4个及4个以上。所以看到系统的进程列表中有几个svchost.exe不用那幺担心。 svchost.exe到底是做什幺用的呢? 首先我们要了解一点那就是Windows系统的中的进程分为:独立进程和共享进程这两种。由于Windows系统中的服务越来越多,为了节约有限的系统资源微软把很多的系统服务做成了共享模式。那svchost.exe在这中间是担任怎样一个角色呢? svchost.exe的工作就是作为这些服务的宿主,即由svchost.exe来启动这些服务。svchost.exe只是负责为这些服务提供启动的条件,其自身并不能实现任何服务的功能,也不能为用户提供任何服务。svchost.exe通过为这些系统服务调用动态链接库(DLL)的方式来启动系统服务。 svchost.exe是病毒这种说法是任何产生的呢? 因为svchost.exe可以作为服务的宿主来启动服务,所以病毒、木马的编写者也挖空心思的要利用svchost.exe的这个特性来迷惑用户达到入侵、破坏计算机的目的。 如何才能 辨别 哪些是正常的svchost.exe进程,而哪些是 病毒进程 呢? svchost.exe的键值是在“HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost”,如图1所示。图1中每个键值表示一个独立的svchost.exe组。 微软还为我们提供了一种察看系统正在运行在svchost.exe列表中的服务的方法。以Windows XP为例:在“运行”中输入:cmd,然后在命令行模式中输入:tasklist /svc。系统列出如图2所示的服务列表。图2中红框包围起来的区域就是svchost.exe启动的服务列表。如果使用的是Windows 2000系统则把前面的“tasklist /svc”命令替换为:“tlist -s”即可。如果你怀疑计算机有可能被病毒感染,svchost.exe的服务出现异常的话通过搜索 svchost.exe文件 就可以发现异常情况。一般只会找到一个在:“C:\Windows\System32”目录下的svchost.exe程序。如果你在其它目录下发现svchost.exe程序的话,那很可能就是中毒了。 还有一种确认svchost.exe是否中毒的方法是在任务管理器中察看进程的执行路径。但是由于在Windows系统自带的任务管理器不能察看进程路径,所以要使用第三方的进程察看工具。 上面简单的介绍了svchost.exe进程的相关情况。总而言之,svchost.exe是一个系统的核心进程,并不是病毒进程。但由于svchost.exe进程的特殊性,所以病毒也会千方百计的入侵svchost.exe。通过察看svchost.exe进程的执行路径可以确认是否中毒。 3、 Services.exe造成CPU使用率占用100% 症状 在基于 Windows 2000 的计算机上,Services.exe 中的 CPU 使用率可能间歇性地达到100 %,并且计算机可能停止响应(挂起)。出现此问题时,连接到该计算机(如果它是文件服务器或域控制器)的用户会被断开连接。您可能还需要重新启动计算机。如果 Esent.dll 错误地处理将文件刷新到磁盘的方式,则会出现此症状。 解决方案 Service Pack 信息 要解决此问题,请获取最新的 Microsoft Windows 2000 Service Pack。有关其它信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 260910 如何获取最新的 Windows 2000 Service Pack 修复程序信息 Microsoft 提供了受支持的修补程序,但该程序只是为了解决本文所介绍的问题。只有计算机遇到本文提到的特定问题时才可应用此修补程序。此修补程序可能还会接受其它一些测试。因此,如果这个问题没有对您造成严重的影响,Microsoft 建议您等待包含此修补程序的下一个 Windows 2000 Service Pack。 要立即解决此问题,请与“Microsoft 产品支持服务”联系,以获取此修补程序。有关“Microsoft 产品支持服务”电话号码和支持费用信息的完整列表,请访问 Microsoft Web 站点: 注意 :特殊情况下,如果 Microsoft 支持专业人员确定某个特定的更新程序能够解决您的问题,可免收通常情况下收取的电话支持服务费用。对于特定更新程序无法解决的其它支持问题和事项,将正常收取支持费用。 下表列出了此修补程序的全球版本的文件属性(或更新的属性)。这些文件的日期和时间按协调通用时间 (UTC) 列出。查看文件信息时,它将转换为本地时间。要了解 UTC 与本地时间之间的时差,请使用“控制面板”中的“日期和时间”工具中的 时区 选项卡。 状态 Microsoft 已经确认这是在本文开头列出的 Microsoft 产品中存在的问题。此问题最初是在 Microsoft Windows 2000 Service Pack 4 中更正的。 4、正常软件造成CPU使用率占用100% 首先,如果是从开机后就发生上述情况直到关机。那幺就有可能是由某个随系统同时登陆的软件造成的。可以通过运行输入“msconfig”打开“系统实用配置工具”,进入“启动”选项卡。接着,依次取消可疑选项前面的对钩,然后重新启动电脑。反复测试直到找到造成故障的软件。或者可以通过一些优化软件如“优化大师”达到上述目的。另:如果键盘内按键卡住也可能造成开机就出现上述问题。 如果是使用电脑途中出项这类问题,可以调出任务管理器(WINXP CTRL+ALT+DEL WIN2000 CTRL+SHIFT“ESC),进入”进程“选项卡,看”CPU“栏,从里面找到占用资源较高的程序(其中SYSTEM IDLE PROCESS是属于正常,它的值一般都很高,它的作用是告诉当前你可用的CPU资源是多少,所以它的值越高越好)通过搜索功能找到这个进程属于哪个软件。然后,可以通过升级、关闭、卸载这个软件或者干脆找个同类软件替换,问题即可得到解决。 5、病毒、木马、间谍软件造成CPU使用率占用100% 出现CPU占用率100% 的故障经常是因为病毒木马造成的,比如震荡波病毒。应该首先更新病毒库,对电脑进行全机扫描 。接着,在使用反间谍软件Ad—Aware,检查是否存在间谍软件。论坛上有不少朋友都遇到过svchost.exe占用CPU100%,这个往往是中毒的表现。 svchost.exe Windows中的系统服务是以动态链接库(DLL)的形式实现的,其中一些会把可执行程序指向svchost.exe,由它调用相应服务的动态链接库并加上相应参数来启动服务。正是因为它的特殊性和重要性,使它更容易成为了一些病毒木马的宿主。 6、 explorer.exe进程造成CPU使用率占用100% 在system.ini文件中,在[BOOT]下面有个“shell=文件名”。正确的文件名应该是“explorer.exe”,如果不是“explorer.exe”,而是“shell= explorer.exe 程序名”,那幺后面跟着的那个程序就是“木马”程序,就是说你已经中“木马”了。 在注册表中的情况最复杂,通过regedit命令打开注册表编辑器,在点击至:“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”目录下,查看键值中有没有自己不熟悉的自动启动文件,扩展名为EXE,这里切记:有的“木马”程序生成的文件很像系统自身文件,想通过伪装蒙混过关,如“Acid Battery v1.0木马”,它将注册表“HKEY-LOCAL-MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”下的 Explorer 键值改为Explorer=“C:\Windows\expiorer.exe”,“木马”程序与真正的Explorer之间只有“i”与“l”的差别。当然在注册表中还有很多地方都可以隐藏“木马”程序,如:“HKEY-CURRENT-USER\Software\Microsoft\Windows\CurrentVersion\Run”、“HKEY-USERS*\Software\Microsoft\Windows\CurrentVersion\Run”的目录下都有可能,最好的办法就是在“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”下找到“木马”程序的文件名,再在整个注册表中搜索即可。 7、超线程导致CPU使用率占用100% 这类故障的共同原因就是都使用了具有超线程功能的P4 CPU。我查找了一些资料都没有明确的原因解释。据一些网友总结超线程似乎和天网防火墙有冲突,可以通过卸载天网并安装其它防火墙解决,也可以通过在BIOS中关闭超线程功能解决。 8、AVI视频文件造成CPU使用率占用100% 在Windows XP中,单击一个较大的AVI视频文件后,可能会出现系统假死现象,并且造成exploere.exe进程的使用率100%,这是因为系统要先扫描该文件,并检查文件所有部分,建立索引。如果文件较大就会需要较长时间并造成CPU占用率100%。解决方法:右键单击保存视频文件的文件夹,选择”属性—>常规—>高级“,去掉”为了快速搜索,允许索引服务编制该文件夹的索引“前面复选框的对钩即可。 9、杀毒软件CPU使用率占用100% 现在的杀毒软件一般都加入了,对网页、邮件、个人隐私的即时监空功能,这样无疑会加大系统的负担。比如:在玩游戏的时候,会非常缓慢。关闭该杀毒软件是解决得最直接办法。 10、处理较大的Word文件时CPU使用率过高 上述问题一般还会造成电脑假死,这些都是因为WORD的拼写和语法检查造成的,只要打开WORD的“工具—选项”,进入“拼写和语法”选项卡,将其中的“键入时检查拼写”和“键入时检查语法”两项前面的复选框中的钩去掉即可。 11、网络连接导致CPU使用率占用100% 当你的Windows2000/xp作为服务器时,收到来自端口445上的连接请求后,系统将分配内存和少量CPU资源来为这些连接提供服务,当负荷过重,就会出现上述情况。要解决这个问题可以通过修改注册表来解决,打开注册表,找到HKEY—LOCAL—MACHNE\SYSTEM\CurrentControlSet\Services\lanmanserver,在右面新建一个名为";maxworkitems";的DWORD值.然后双击该值,如果你的电脑有512以上内存,就设置为";1024";,如果小于512,就设置为256. 一些不完善的驱动程序也可以造成CPU使用率过高 经常使用待机功能,也会造成系统自动关闭硬盘DMA模式。这不仅会使系统性能大幅度下降,系统启动速度变慢,也会使是系统在运行一些大型软件和游戏时CPU使用率100%,产生停顿。 进程占用CPU 100%时可能中的病毒 system Idle Process 进程文件: [system process] or [system process] 进程名称: Windows内存处理系统进程 描 述: Windows页面内存管理进程,拥有0级优先。 介 绍:该进程作为单线程运行在每个处理器上,并在系统不处理其它线程的时候分派处理器的时间。它的CPU占用率越大表示可供分配的CPU资源越多,数字越小则表示CPU资源紧张。 Spoolsv.exe 进程文件: spoolsv or Spoolsv.exe 进程名称: Printer Spooler Service 描 述: Windows打印任务控制程序,用以打印机就绪。 介 绍:缓冲(spooler)服务是管理缓冲池中的打印和传真作业。 Spoolsv.exe→打印任务控制程序,一般会先加载以供列表机打印前的准备工作 Spoolsv.exe,如果常增高,有可能是病毒感染所致 目前常见的是: Backdoor/Byshell(又叫隐形大盗、隐形杀手、西门庆病毒) 危害程度:中 受影响的系统: Windows 2000, Windows XP, Windows Server 2003 未受影响的系统: Windows 95, Windows 98, Windows Me, Windows NT, Windows 3.x, Macintosh, Unix, Linux, 病毒危害: 1. 生成病毒文件 2. 插入正常系统文件中 3. 修改系统注册表 4. 可被黑客远程控制 5. 躲避反病毒软件的查杀 简单的后门木马,发作会删除自身程序,但将自身程序套入可执行程序内(如:exe),并与计算机的通口(TCP端口138)挂钩,监控计算机的信息、密码,甚至是键盘操作,作为回传的信息,并不时驱动端口,以等候传进的命令,由于该木马不能判别何者是正确的端口,所以负责输出的列表机也是其驱动对象,以致Spoolsv.exe的使用异常频繁...... Backdoor.Win32.Plutor 破坏方法:感染PE文件的后门程序 病毒采用VC编写。 病毒运行后有以下行为: 1、将病毒文件复制到%WINDIR%目录下,文件名为";Spoolsv.exe";,并该病毒文件运行。";Spoolsv.exe";文件运行后释放文件名为";mscheck.exe";的文件到%SYSDIR%目录下,该文件的主要功能是每次激活时运行";Spoolsv.exe";文件。如果所运行的文件是感染了正常文件的病毒文件,病毒将会把该文件恢复并将其运行。 2、修改注册表以下键值: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Currentversion\Run 增加数据项:";Microsoft Script Checker"; 数据为:";MSCHECK.EXE /START"; 修改该项注册表使";MSCHECK.EXE";文件每次系统激活时都将被运行,而";MSCHECK.EXE";用于运行";Spoolsv.exe";文件,从而达到病毒自激活的目的。 3、创建一个线程用于感染C盘下的PE文件,但是文件路径中包含";winnt";、";Windows";字符串的文件不感染。另外,该病毒还会枚举局域网中的共享目录并试图对这些目录下的文件进行感染。该病毒感染文件方法比较简单,将正常文件的前0x16000个字节替换为病毒文件中的数据,并将原来0x16000个字节的数删除
游客2q7uranxketok 2021-02-22 13:26:20 0 浏览量 回答数 0

回答

从业余程序员到职业程序员 程序员刚入行时,我觉得最重要的是把自己培养成职业的程序员。 我的程序员起步比同龄人都晚了很多,更不用说现在的年轻人了。我大学读的是生物专业,在上大学前基本算是完全没接触过计算机。军训的时候因为很无聊,我和室友每天跑去学校的机房玩,我现在还印象很深刻,我第一次走进机房的时候,别人问,你是要玩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

问题

Web测试方法

在Web工程过程中,基于Web系统的测试、确认和验收是一项重要而富有挑战性的工作。基于Web的系统测试与传统的软件测试不同,它不但需要检查和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏...
技术小菜鸟 2019-12-01 21:41:32 7022 浏览量 回答数 1

问题

【企业IT管理员必读】WanaCrypt0r 2.0和ONION等勒索软件病毒应急处置方案

近期爆出WanaCrypt0r 2.0、onion以及wallet等后缀的勒索加密事件,影响较大,对于企业的IT管理员和信息安全管理员,阿里云安全专家推荐您按照以下举措进行应急响应和处理࿱...
正禾 2019-12-01 21:59:41 8997 浏览量 回答数 4

问题

ERP实施时的数据备份

ERP系统如果没有基础数据的支持就成了无源之水无本之木,是无法运行的。如果支持系统运行的基础数据是错误的或不完整的,那么系统运行后也只能得到错误结果和不完整的信息。因此,基础数据的准备可以说直接影响...
lovequeen0 2019-12-01 20:17:53 9946 浏览量 回答数 0

回答

关于神经网络也有很多的种类,考虑到它们的使用效果,有些使用起来恰到好处,但事实表明,到目前几乎所有由神经网络创造的经济价值,本质上都离不开一种叫做监督学习的机器学习类别,让我们举例看看。 在监督学习中你有一些输入,你想学习到一个函数来映射到一些输出,比如我们之前提到的房价预测的例子,你只要输入有关房屋的一些特征,试着去输出或者估计价格。我们举一些其它的例子,来说明神经 如今应用深度学习获利最多的一个领域,就是在线广告。这也许不是最鼓舞人心的,但真的很赚钱。具体就是通过在网站上输入一个广告的相关信息,因为也输入了用户的信息,于是网站就会考虑是否向你展示广告。 神经网络已经非常擅长预测你是否会点开这个广告,通过向用户展示最有可能点开的广告,这就是神经网络在很多家公司难以置信地提高获利的一种应用。因为有了这种向你展示你最有可能点击的广告的能力,而这一点击的行为的改变会直接影响到一些大型的在线广告公司的收入。 计算机视觉在过去的几年里也取得了长足的进步,这也多亏了深度学习。你可以输入一个图像,然后想输出一个索引,范围从1到1000来试着告诉你这张照片,它可能是,比方说,1000个不同的图像中的任何一个,所以你可能会选择用它来给照片打标签。 深度学习最近在语音识别方面的进步也是非常令人兴奋的,你现在可以将音频片段输入神经网络,然后让它输出文本记录。得益于深度学习,机器翻译也有很大的发展。你可以利用神经网络输入英语句子,接着输出一个中文句子。 在自动驾驶技术中,你可以输入一幅图像,就好像一个信息雷达展示汽车前方有什么,据此,你可以训练一个神经网络,来告诉汽车在马路上面具体的位置,这就是神经网络在自动驾驶系统中的一个关键成分。 那么深度学习系统已经可以创造如此多的价值,通过智能的选择,哪些作为哪些作为,来针对于你当前的问题,然后拟合监督学习部分,往往是一个更大的系统,比如自动驾驶。这表明神经网络类型的轻微不同,也可以产生不同的应用,比如说,应用到我们在上一个视频提到的房地产领域,我们不就使用了一个普遍标准神经网络架构吗? 也许对于房地产和在线广告来说可能是相对的标准一些的神经网络,正如我们之前见到的。对于图像应用,我们经常在神经网络上使用卷积(Convolutional Neural Network),通常缩写为CNN。对于序列数据,例如音频,有一个时间组件,随着时间的推移,音频被播放出来,所以音频是最自然的表现。作为一维时间序列(两种英文说法one-dimensional time series / temporal sequence).对于序列数据,经常使用RNN,一种递归神经网络(Recurrent Neural Network),语言,英语和汉语字母表或单词都是逐个出现的,所以语言也是最自然的序列数据,因此更复杂的RNNs版本经常用于这些应用。 对于更复杂的应用比如自动驾驶,你有一张图片,可能会显示更多的CNN卷积神经网络结构,其中的雷达信息是完全不同的,你可能会有一个更定制的,或者一些更复杂的混合的神经网络结构。所以为了更具体地说明什么是标准的CNN和RNN结构,在文献中你可能见过这样的图片,这是一个标准的神经网络。 我们会在后面的课程了解这幅图的原理和实现,卷积网络(CNN)通常用于图像数据。 你可能也会看到这样的图片,而且你将在以后的课程中学习如何实现它。 递归神经网络(RNN)非常适合这种一维序列,数据可能是一个时间组成部分。 你可能也听说过机器学习对于结构化数据和非结构化数据的应用,结构化数据意味着数据的基本数据库。例如在房价预测中,你可能有一个数据库,有专门的几列数据告诉你卧室的大小和数量,这就是结构化数据。或预测用户是否会点击广告,你可能会得到关于用户的信息,比如年龄以及关于广告的一些信息,然后对你的预测分类标注,这就是结构化数据,意思是每个特征,比如说房屋大小卧室数量,或者是一个用户的年龄,都有一个很好的定义。 相反非结构化数据是指比如音频,原始音频或者你想要识别的图像或文本中的内容。这里的特征可能是图像中的像素值或文本中的单个单词。 从历史经验上看,处理非结构化数据是很难的,与结构化数据比较,让计算机理解非结构化数据很难,而人类进化得非常善于理解音频信号和图像,文本是一个更近代的发明,但是人们真的很擅长解读非结构化数据。 神经网络的兴起就是这样最令人兴奋的事情之一,多亏了深度学习和神经网络,计算机现在能更好地解释非结构化数据,这是与几年前相比的结果,这为我们创造了机会。许多新的令人兴奋的应用被使用,语音识别、图像识别、自然语言文字处理,甚至可能比两三年前的还要多。因为人们天生就有本领去理解非结构化数据,你可能听说了神经网络更多在媒体非结构化数据的成功,当神经网络识别了一只猫时那真的很酷,我们都知道那意味着什么。 但结果也表明,神经网络在许多短期经济价值的创造,也是基于结构化数据的。比如更好的广告系统、更好的利润建议,还有更好的处理大数据的能力。许多公司不得不根据神经网络做出准确的预测。 因此在这门课中,我们将要讨论的许多技术都将适用,不论是对结构化数据还是非结构化数据。为了解释算法,我们将在使用非结构化数据的示例中多画一点图片,但正如你所想的,你自己团队里通过运用神经网络,我希望你能发现,神经网络算法对于结构化和非结构化数据都有用处。 神经网络已经改变了监督学习,正创造着巨大的经济价值,事实证明,基本的神经网络背后的技术理念大部分都离我们不遥远,有的是几十年,那么为什么他们现在才刚刚起步,效果那么好,下一集视频中我们将讨论为什么最近的神经网络已经成为你可以使用的强大工具。网络已经被高效应用到其它地方。
因为相信,所以看见。 2020-05-19 20:32:55 0 浏览量 回答数 0

问题

软件测试的新趋势

2015年11月,ThoughtWorks发布了新一期的技术雷达。技术雷达是以独特的形式记录ThoughtWorks技术顾问委员会对行业产生重大影响的技术趋势讨论的结果,为从CIO到开发人员在内的各方利益相关 者...
技术小菜鸟 2019-12-01 21:47:02 6244 浏览量 回答数 1

问题

移动元年短视频、直播爆发,又将出现什么样的转码格式?

近二年随着短视频、直播迅猛爆发,越来越多的企业希望能够搭上这趟高速车,用视频、直播来为自家的产品创造新的内容、吸引更多的用户。 曾有人认为,视频是最为直观、成本最低的表达方式,但另一...
爵霸 2019-12-01 21:58:15 2521 浏览量 回答数 0

问题

厉华:写一个开源容器引擎会是什么样的体验? 热:报错

2013年,Docker.Inc 开源了一款应用容器引擎 Docker。开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到相同内核的任何 Linux 机器上部署运行。这种集装箱式的应用开发和部署方...
kun坤 2020-06-10 10:01:12 3 浏览量 回答数 1

问题

大数据时代——数据存储技术百问

如今计算机已经渗透到企业运作的各个角落,企业依靠所存放的这些业务数据进行决策,因此企业如何存放数据成为企业信息系统的重中之重,这也掀起了如今的存储热潮。根据不同的应用环境通过采取合理、安全、有效的方式将数据保存并能保证有效的访问需要更高要求...
yq传送门 2019-12-01 20:27:42 31965 浏览量 回答数 35

问题

基础语言百问-Python

基础语言百问-Python 软件界最近非常流行一句话“人生苦短,快用Python”,这就展示出了Python的特点,那就是快,当然这个快并不是指的Python运行快,毕竟是脚本语言,再怎样也快不过C语言和C++这样的底层语言,这里的快指的是...
薯条酱 2019-12-01 20:12:27 56807 浏览量 回答数 30

问题

人工智能技术百问——机器真的能取代人类吗

随着科技的飞速发展,“人工智能”无疑成为了当下最火的词。在这一领域,我们仍处于非常初级的阶段,很多事情我们还不了解。它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、...
yq传送门 2019-12-01 20:27:57 4467 浏览量 回答数 3

回答

Go 的优势在于能够将简单的和经过验证的想法结合起来,同时避免了其他语言中出现的许多问题。本文概述了 Go 背后的一些设计原则和工程智慧,作者认为,Go 语言具备的所有这些优点,将共同推动其成为接替 Java 并主导下一代大型软件开发平台的最有力的编程语言候选。很多优秀的编程语言只是在个别领域比较强大,如果将所有因素都纳入考虑,没有其他语言能够像 Go 语言一样“全面开花”,在大型软件工程方面,尤为如此。 基于现实经验 Go 是由经验丰富的软件行业老手一手创建的,长期以来,他们对现有语言的各种缺点有过切身体会的痛苦经历。几十年前,Rob Pike 和 Ken Thompson 在 Unix、C 和 Unicode 的发明中起到了重要作用。Robert Griensemer 在为 JavaScript 和 Java 开发 V8 和 HotSpot 虚拟机之后,在编译器和垃圾收集方面拥有数十年的经验。有太多次,他们不得不等待 Google 规模的 C++/Java 代码库进行编译。于是,他们开始着手创建新的编程语言,将他们半个世纪以来的编写代码所学到的一切经验包含进去。 专注于大型工程 小型工程项目几乎可以用任何编程语言来成功构建。当成千上万的开发人员在数十年的持续时间压力下,在包含数千万行代码的大型代码库上进行协作时,就会发生真正令人痛苦的问题。这样会导致一些问题,如下: 较长的编译时间导致中断开发。代码库由几个人 / 团队 / 部门 / 公司所拥有,混合了不同的编程风格。公司雇佣了数千名工程师、架构师、测试人员、运营专家、审计员、实习生等,他们需要了解代码库,但也具备广泛的编码经验。依赖于许多外部库或运行时,其中一些不再以原始形式存在。在代码库的生命周期中,每行代码平均被重写 10 次,被弄得千疮百痍,而且还会发生技术偏差。文档不完整。 Go 注重减轻这些大型工程的难题,有时会以使小型工程变得更麻烦为代价,例如,代码中到处都需要几行额外的代码行。 注重可维护性 Go 强调尽可能多地将工作转给自动化的代码维护工具中。Go 工具链提供了最常用的功能,如格式化代码和导入、查找符号的定义和用法、简单的重构以及代码异味的识别。由于标准化的代码格式和单一的惯用方式,机器生成的代码更改看起来非常接近 Go 中人为生成的更改并使用类似的模式,从而允许人机之间更加无缝地协作。 保持简单明了 初级程序员为简单的问题创建简单的解决方案。高级程序员为复杂的问题创建复杂的解决方案。伟大的程序员找到复杂问题的简单解决方案。 ——Charles Connell 让很多人惊讶的一点是,Go 居然不包含他们喜欢的其他语言的概念。Go 确实是一种非常小巧而简单的语言,只包含正交和经过验证的概念的最小选择。这鼓励开发人员用最少的认知开销来编写尽可能简单的代码,以便许多其他人可以理解并使用它。 使事情清晰明了 良好的代码总是显而易见的,避免了那些小聪明、难以理解的语言特性、诡异的控制流和兜圈子。 许多语言都致力提高编写代码的效率。然而,在其生命周期中,人们阅读代码的时间却远远超过最初编写代码所需的时间(100 倍)。例如,审查、理解、调试、更改、重构或重用代码。在查看代码时,往往只能看到并理解其中的一小部分,通常不会有完整的代码库概述。为了解释这一点,Go 将所有内容都明确出来。 错误处理就是一个例子。让异常在各个点中断代码并在调用链上冒泡会更容易。Go 需要手动处理和返回每个错误。这使得它可以准确地显示代码可以被中断的位置以及如何处理或包装错误。总的来说,这使得错误处理编写起来更加繁琐,但是也更容易理解。 简单易学 Go 是如此的小巧而简单,以至于人们可以在短短几天内就能研究通整个语言及其基本概念。根据我们的经验,培训用不了一个星期(相比于掌握其他语言需要几个月),初学者就能够理解 Go 专家编写的代码,并为之做出贡献。为了方便吸引更多的用户,Go 网站提供了所有必要的教程和深入研究的文章。这些教程在浏览器中运行,允许人们在将 Go 安装到本地计算机上之前就能够学习和使用 Go。 解决之道 Go 强调的是团队之间的合作,而不是个人的自我表达。 在 Go(和 Python)中,所有的语言特性都是相互正交和互补的,通常有一种方法可以做一些事情。如果你想让 10 个 Python 或 Go 程序员来解决同一个问题,你将会得到 10 个相对类似的解决方案。不同的程序员在彼此的代码库中感觉更自在。在查看其他人的代码时,国骂会更少,而且人们的工作可以更好地融合在一起,从而形成了一致的整体,人人都为之感到自豪,并乐于工作。这还避免了大型工程的问题,如: 开发人员认为良好的工作代码很“混乱”,并要求在开始工作之前进行重写,因为他们的思维方式与原作者不同。 不同的团队成员使用不同的语言子集来编写相同代码库的部分内容。 ![image.png](https://ucc.alicdn.com/pic/developer-ecology/e64418f1455d46aaacfdd03fa949f16d.png) 简单、内置的并发性 Go 专为现代多核硬件设计。 目前使用的大多数编程语言(Java、JavaScript、Python、Ruby、C、C++)都是 20 世纪 80 年代到 21 世纪初设计的,当时大多数 CPU 只有一个计算内核。这就是为什么它们本质上是单线程的,并将并行化视为边缘情况的马后炮。通过现成和同步点之类的附加组件来实现,而这些附加组件既麻烦又难以正确使用。第三方库虽然提供了更简单的并发形式,如 Actor 模型,但是总有多个可用选项,结果导致了语言生态系统的碎片化。今天的硬件拥有越来越多的计算内核,软件必须并行化才能高效运行。Go 是在多核处理器时代编写的,并且在语言中内置了简单、高级的 CSP 风格并发性。 面向计算的语言原语 就深层而言,计算机系统接收数据,对其进行处理(通常要经过几个步骤),然后输出结果数据。例如,Web 服务器从客户端接收 HTTP 请求,并将其转换为一系列数据库或后端调用。一旦这些调用返回,它就将接收到的数据转换成 HTML 或 JSON 并将其输出给调用者。Go 的内置语言原语直接支持这种范例: 结构表示数据 读和写代表流式 IO 函数过程数据 goroutines 提供(几乎无限的)并发性 在并行处理步骤之间传输管道数据 因为所有的计算原语都是由语言以直接形式提供的,因此 Go 源代码更直接地表达了服务器执行的操作。 OO — 好的部分 更改基类中的某些内容的副作用 面向对象非常有用。过去几十年来,面向对象的使用富有成效,并让我们了解了它的哪些部分比其他部分能够更好地扩展。Go 在面向对象方面采用了一种全新的方法,并记住了这些知识。它保留了好的部分,如封装、消息传递等。Go 还避免了继承,因为它现在被认为是有害的,并为组合提供了一流的支持。 现代标准库 目前使用的许多编程语言(Java、JavaScript、Python、Ruby)都是在互联网成为当今无处不在的计算平台之前设计的。因此,这些语言的标准库只提供了相对通用的网络支持,而这些网络并没有针对现代互联网进行优化。Go 是十年前创建的,当时互联网已全面发展。Go 的标准库允许在没有第三方库的情况下创建更复杂的网络服务。这就避免了第三方库的常见问题: 碎片化:总是有多个选项实现相同的功能。 膨胀:库常常实现的不仅仅是它们的用途。 依赖地狱:库通常依赖于特定版本的其他库。 未知质量:第三方代码的质量和安全性可能存在问题。 未知支持:第三方库的开发可能随时停止支持。 意外更改:第三方库通常不像标准库那样严格地进行版本控制。 关于这方面更多的信息请参考 Russ Cox 提供的资料 标准化格式 Gofmt 的风格没有人会去喜欢,但人人都会喜欢 gofmt。 ——Rob Pike Gofmt 是一种以标准化方式来格式化 Go 代码的程序。它不是最漂亮的格式化方式,但却是最简单、最不令人生厌的格式化方式。标准化的源代码格式具有惊人的积极影响: 集中讨论重要主题: 它消除了围绕制表符和空格、缩进深度、行长、空行、花括号的位置等一系列争论。 开发人员在彼此的代码库中感觉很自在, 因为其他代码看起来很像他们编写的代码。每个人都喜欢自由地按照自己喜欢的方式进行格式化代码,但如果其他人按照自己喜欢的方式格式化了代码,这么做很招人烦。 自动代码更改并不会打乱手写代码的格式,例如引入了意外的空白更改。 许多其他语言社区现在正在开发类似 gofmt 的东西。当作为第三方解决方案构建时,通常会有几个相互竞争的格式标准。例如,JavaScript 提供了 Prettier 和 StandardJS。这两者都可以用,也可以只使用其中的一个。但许多 JS 项目并没有采用它们,因为这是一个额外的决策。Go 的格式化程序内置于该语言的标准工具链中,因此只有一个标准,每个人都在使用它。 快速编译 ![image.png](https://ucc.alicdn.com/pic/developer-ecology/8a76f3f07f484266af42781d9e7b8692.png) 对于大型代码库来说,它们长时间的编译是促使 Go 诞生的原因。Google 主要使用的是 C++ 和 Java,与 Haskell、Scala 或 Rust 等更复杂的语言相比,它们的编译速度相对较快。尽管如此,当编译大型代码库时,即使是少量的缓慢也会加剧编译的延迟,从而激怒开发人员,并干扰流程。Go 的设计初衷是为了提高编译效率,因此它的编译器速度非常快,几乎没有编译延迟的现象。这给 Go 开发人员提供了与脚本类语言类似的即时反馈,还有静态类型检查的额外好处。 交叉编译 由于语言运行时非常简单,因此它被移植到许多平台,如 macOS、Linux、Windows、BSD、ARM 等。Go 可以开箱即用地为所有这些平台编译二进制文件。这使得从一台机器进行部署变得很容易。 快速执行 Go 的运行速度接近于 C。与 JITed 语言(Java、JavaScript、Python 等)不同,Go 二进制文件不需要启动或预热的时间,因为它们是作为编译和完全优化的本地代码的形式发布的。Go 的垃圾收集器仅引入微秒量级的可忽略的停顿。除了快速的单核性能外,Go 还可以轻松利用所有的 CPU 内核。 内存占用小 像 JVM、Python 或 Node 这样的运行时不仅仅在运行时加载程序代码,每次运行程序时,它们还会加载大型且高度复杂的基础架构,以进行编译和优化程序。如此一来,它们的启动时间就变慢了,并且还占用了大量内存(数百兆字节)。而 Go 进程的开销更小,因为它们已经完全编译和优化,只需运行即可。Go 还以非常节省内存的方式来存储数据。在内存有限且昂贵的云环境中,以及在开发过程中,这一点非常重要。我们希望在一台机器上能够快速启动整个堆栈,同时将内存留给其他软件。 部署规模小 Go 的二进制文件大小非常简洁。Go 应用程序的 Docker 镜像通常比用 Java 或 Node 编写的等效镜像要小 10 倍,这是因为它无需包含编译器、JIT,以及更少的运行时基础架构的原因。这些特点,在部署大型应用程序时很重要。想象一下,如果要将一个简单的应用程序部署到 100 个生产服务器上会怎么样?如果使用 Node/JVM 时,我们的 Docker 注册表就必须提供 100 个 docker 镜像,每个镜像 200MB,那么一共就需要 20GB。要完成这些部署就需要一些时间。想象一下,如果我们想每天部署 100 次的话,如果使用 Go 服务,那么 Docker 注册表只需提供 10 个 docker 镜像,每个镜像只有 20MB,共只需 2GB 即可。大型 Go 应用程序可以更快、更频繁地部署,从而使得重要更新能够更快地部署到生产环境中。 独立部署 Go 应用程序部署为一个包含所有依赖项的单个可执行文件,并无需安装特定版本的 JVM、Node 或 Python 运行时;也不必将库下载到生产服务器上,更无须对运行 Go 二进制文件的机器进行任何更改。甚至也不需要讲 Go 二进制文件包装到 Docker 来共享他们。你需要做的是,只是将 Go 二进制文件放到服务器上,它就会在那里运行,而不用关心服务器运行的是什么。前面所提到的那些,唯一的例外是使用net和os/user包时针对对glibc的动态链接。 供应依赖关系 Go 有意识避免使用第三方库的中央存储库。Go 应用程序直接链接到相应的 Git 存储库,并将所有相关代码下载(供应)到自己的代码库中。这样做有很多好处: 在使用第三方代码之前,我们可以对其进行审查、分析和测试。该代码就和我们自己的代码一样,是我们应用程序的一部分,应该遵循相同的质量、安全性和可靠性标准。 无需永久访问存储依赖项的各个位置。从任何地方(包括私有 Git repos)获取第三方库,你就能永久拥有它们。 经过验收后,编译代码库无需进一步下载依赖项。 若互联网某处的代码存储库突然提供不同的代码,这也并不足为奇。 即使软件包存储库速度变慢,或托管包不复存在,部署也不会因此中断。 兼容性保证 Go 团队承诺现有的程序将会继续适用于新一代语言。这使得将大型项目升级到最新版本的编译器会非常容易,并且可从它们带来的许多性能和安全性改进中获益。同时,由于 Go 二进制文件包含了它们需要的所有依赖项,因此可以在同一服务器上并行运行使用不同版本的 Go 编译器编译的二进制文件,而无需进行复杂的多个版本的运行时设置或虚拟化。 文档 在大型工程中,文档对于使软件可访问性和可维护性非常重要。与其他特性类似,Go 中的文档简单实用: 由于它是嵌入到源代码中的,因此两者可以同时维护。 它不需要特殊的语法,文档只是普通的源代码注释。 可运行单元测试通常是最好的文档形式。因此 Go 要求将它们嵌入到文档中。 所有的文档实用程序都内置在工具链中,因此每个人都使用它们。 Go linter 需要导出元素的文档,以防止“文档债务”的积累。 商业支持的开源 当商业实体在开放式环境下开发时,那么一些最流行的、经过彻底设计的软件就会出现。这种设置结合了商业软件开发的优势——一致性和精细化,使系统更为健壮、可靠、高效,并具有开放式开发的优势,如来自许多行业的广泛支持,多个大型实体和许多用户的支持,以及即使商业支持停止的长期支持。Go 就是这样发展起来的。 缺点 当然,Go 也并非完美无缺,每种技术选择都是有利有弊。在决定选择 Go 之前,有几个方面需要进行考虑考虑。 未成熟 虽然 Go 的标准库在支持许多新概念(如 HTTP 2 Server push 等)方面处于行业领先地位,但与 JVM 生态系统中的第三方库相比,用于外部 API 的第三方 Go 库可能不那么成熟。 即将到来的改进 由于清楚几乎不可能改变现有的语言元素,Go 团队非常谨慎,只在新特性完全开发出来后才添加新特性。在经历了 10 年的有意稳定阶段之后,Go 团队正在谋划对语言进行一系列更大的改进,作为 Go 2.0 之旅的一部分。 无硬实时 虽然 Go 的垃圾收集器只引入了非常短暂的停顿,但支持硬实时需要没有垃圾收集的技术,例如 Rust。 结语 本文详细介绍了 Go 语言的一些优秀的设计准则,虽然有的准则的好处平常看起来没有那么明显。但当代码库和团队规模增长几个数量级时,这些准则可能会使大型工程项目免于许多痛苦。总的来说,正是这些设计准则让 Go 语言成为了除 Java 之外的编程语言里,用于大型软件开发项目的绝佳选择。
有只黑白猫 2020-01-07 14:11:38 0 浏览量 回答数 0

问题

【精品问答】Python二级考试题库

1.关于数据的存储结构,以下选项描述正确的是( D ) A: 数据所占的存储空间量 B: 存储在外存中的数据 C: 数据在计算机中的顺序存储方式 D: 数据的逻辑结构在计算机中的表示 2.关于线性...
珍宝珠 2019-12-01 22:03:38 7177 浏览量 回答数 3

回答

回 2楼(优创科技) 的帖子 您好, 能否贴出您的 httpd-ssl.conf 的文件配置内容? ------------------------- 回 4楼(优创科技) 的帖子 您好, 好象回帖的内容是空白,没有内容的喔。 ------------------------- 回 6楼(优创科技) 的帖子 您好, 请尝试将 <VirtualHost _default_:443> 这一行到  </VirtualHost> 的内容删除后,再试试。 ------------------------- 回 9楼(优创科技) 的帖子 您好, 感谢您的反馈,同时很高兴听到您已经解决了问题。 ------------------------- 回 12楼(jingyun) 的帖子 您好, 个人估计,也是可以的。请问您使用的wampserver版本是多少? ------------------------- 回 14楼(jingyun) 的帖子 您好, 好哩,那我为您找个测试机来测试。 ------------------------- 回 17楼(jingyun) 的帖子 您好, 已经为您写好帖子了,《在 Windows 2008 R2 64位系统为 wampserver apache 不同网站配置不同SSL证书(SNI)》 - https://bbs.aliyun.com/read/305369.html 一般来说,文件的路径建议添加英文引号。如果您的配置有误,一般apache是启动失败的哩。 在上一楼层的phpstudy配置文件内容中,个人觉得应该是不完整的,如虚拟站点的路径等关键信息,没有。 ------------------------- 回 19楼(jingyun) 的帖子 您好, 如您截图中的两个站点均少了如下两个配置项:绑定的域名(ServerName)和站点的文件路径(DocumentRoot)。         ServerName      "portal.anqun.org"         DocumentRoot    "C:\www\portal.anqun.org" ------------------------- 回 21楼(jingyun) 的帖子 您好, 如果phpstudy没有使用443的端口,那么可能您需要检查一下apache的配置文件中,有没有配置使用443端口了喔, 如: Listen 443 ------------------------- 回 23楼(jackyli888888) 的帖子 您好, 欢迎来到阿里云论坛。 请问您指的是apache的80还是443端口从外网连接失败呢? ------------------------- 回 25楼(云淡风轻poe) 的帖子 您好, 抱歉给您带来不便。 能否查看一下apache的错误日志呢? ------------------------- 回 27楼(云淡风轻poe) 的帖子 您好, 无论是 http 还是https ,站点  airpal.012316.cn 的文件根目录都是 E:\www\airpal 吗? ------------------------- 回 30楼(云淡风轻poe) 的帖子 您好, 如云盾提供的免费证书,一般是单域名的, 如果您想为 airpal.012316.cn 布置https访问,那么在云盾申请证书时,应该是提交 airpal.012316.cn 的域名,而不是 012316.cn 的喔。 如果您的网站程序不是很特别的,是可以仅为 airpal.012316.cn 启用https访问,其它站点使用http。 ------------------------- 回 31楼(云淡风轻poe) 的帖子 您好, 一般与phpstudy的版本关系不大,因为即使是2014年版本,apache应该也支持https的配置。 ------------------------- 回 34楼(亘平网络) 的帖子 您好, 欢迎来到阿里云论坛。 一般来说,申请证书时填写的域名是与站点的访问地址要一模一样的,即如果您想为 website.genping.net 启用 https 访问,那么申请证书时,应该填写 website.genping.net,而不是 genping.net 喔。 ------------------------- 回 36楼(wilson何朝威) 的帖子 您好, 抱歉延时回复。 请问,apache的日志里有相关的错误信息提示吗? ------------------------- 回 39楼(云淡风轻poe) 的帖子 您好, 截图中,是提示证书不符。默认Windows服务器会为自己签发一个证书(如第二个框里显示的计算机名证书)。 ------------------------- 回 40楼(云淡风轻poe) 的帖子 您好, 是哩,很可能是您的SVN程序先占用了TCP 443的端口,所以导致apache不能再次绑定到443端口了。 ------------------------- 回 43楼(ccj803) 的帖子 您好, 抱歉给您带来不便。 如果您尝试后失败,那我有空时,为您再次按帖子里的步骤重复操作一次,看是否有遗漏了。 ------------------------- 回 45楼(ccj803) 的帖子 您好, 下载的四个文件中,不一定需要全部用上的喔。 ------------------------- 回 43楼(ccj803) 的帖子 您好, 刚才我照着例子,大概重新操作了一次,好象也能成功访问https站点喔。 您配置成功了吗? ------------------------- 回 50楼(起床失败) 的帖子 您好, 现在查看您的https站点,访问正常喔。 是已经配置成功了吗? --2017-04-08 09:21:20--   https://cs.xncsbw.cn/ Resolving cs.xncsbw.cn (cs.xncsbw.cn)... 60.205.171.126 Connecting to cs.xncsbw.cn (cs.xncsbw.cn)|60.205.171.126|:443... connected. HTTP request sent, awaiting response... 302 Moved Temporarily Location: http://cs.xncsbw.cn/member/ [following] --2017-04-08 09:21:20--   http://cs.xncsbw.cn/member/ Connecting to cs.xncsbw.cn (cs.xncsbw.cn)|60.205.171.126|:80... connected. HTTP request sent, awaiting response... 302 Moved Temporarily Location: /member/login.php [following] --2017-04-08 09:21:20--   http://cs.xncsbw.cn/member/login.php Reusing existing connection to cs.xncsbw.cn:80. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: ‘index.html.14’ ------------------------- 回 52楼(好恶心啊) 的帖子 您好, 欢迎来到阿里云论坛。 感谢您的积极反馈喔,很高兴这个帖子的内容能帮到您。 ------------------------- 回 55楼(haonan) 的帖子 您好, 欢迎来到阿里云论坛。 当启用 httpd-ssl.conf 后,apache启动失败,日志中是否有提示有用的信息呢? ------------------------- 回 57楼(baidapi) 的帖子 您好, 欢迎来到阿里云论坛。 请问apache无法启动,日志里有没有显示相应的原因呢? ------------------------- 回 59楼(ezhixingli) 的帖子 您好, 抱歉延时回复。 请问 apache 日志内容中,有相关的错误信息吗? ------------------------- 回 64楼(昵称就不留) 的帖子 您好, 可以尝试在命令提示符程序里运行httpd.exe,看一下是否有不同的信息提示喔。 ------------------------- 回 63楼(茂名微时代) 的帖子 您好, 欢迎来到阿里云论坛。 请问您的站点访问网址是什么呢? ------------------------- 回 68楼(昵称就不留) 的帖子 您好, 可能复制内容到 httpd-ssl.conf  时,有特殊字符,导致出错。 您可以尝试用其它程序来打开检查,如notepad2。 ------------------------- 回 70楼(昵称就不留) 的帖子 您好, 或许您配置SSL的内容有误呢, --2017-07-02 16:59:05--   https://www.tdshicai.com/ Resolving www.tdshicai.com (www.tdshicai.com)... 162.159.211.85, 162.159.210.85 Connecting to www.tdshicai.com (www.tdshicai.com)|162.159.211.85|:443... connected. GnuTLS: A TLS fatal alert has been received. GnuTLS: received alert [40]: Handshake failed Unable to establish SSL connection. ------------------------- 回 72楼(昵称就不留) 的帖子 您好, 加油。今天如果还没成功,在暂停后,明天再试试喔。 ------------------------- 回 73楼(茂名微时代) 的帖子 您好, 从这里的检测结果来看,提示是当前服务器的配置不支持TLS1.2: https://www.ssllabs.com/ssltest/analyze.html?d=xcx.maomingweishidai.net 或许您可以使用      SSLCipherSuite DEFAULT 来替换试试。 ------------------------- 回 76楼(茂名微时代) 的帖子 您好, 就是可以尝试将例子中的: SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP 替换成: SSLCipherSuite DEFAULT 来试试。现在我没有测试机,所以暂时不能为您测试喔。 ------------------------- 回 78楼(albertdsg) 的帖子 您好, 欢迎来到阿里云论坛。 apache不能启动成功,在日志文件中,有详细的错误信息吗? ------------------------- 回 81楼(boss_2016) 的帖子 您好, 欢迎来到阿里论坛。 从您提供的日志内容来看,可能关键是这个: Session Cache is not configured 请再尝试检查一下apache的配置文件哩。 ------------------------- 回 83楼(大树先生van) 的帖子 您好, 欢迎来到阿里云论坛。 很高兴听到这个帖子的内容对您有帮助。 ------------------------- 回 85楼(呵呵啦啦) 的帖子 您好, 抱歉给您带来不便。 或许您可以尝试看看apache的错误日志,看里边有没有关键的信息提示哩。 83楼的网友还提到一个细节,或许您也可以参考一下。 ------------------------- 回 88楼(aaaaa11123) 的帖子 您好, 看上边的配置内容, 好象您的https 443虚拟站点配置是被注释掉(有#)的喔。 ------------------------- 回 90楼(aaaaa11123) 的帖子 您好, 您可以通过以下方向来诊断, a. 先检查当前系统是否有使用 443 端口 b. 检查apache的日志,看是否有相应的错误信息提示 ------------------------- 回 93楼(aaaaa11123) 的帖子 您好, 能否运行 netstat -noa | find ":443" ,看看输出结果? ------------------------- 回 99楼(aaaaa11123) 的帖子 您好, 您有进程在使用443的端口,且apache日志里没有相关的错误信息。 能否贴出您的ssl站点配置内容呢? 如之前的,带#的就是吗? ------------------------- 回 102楼(aaaaa11123) 的帖子 您好, 请尝试将ssl的站点放在 httpd-ssl.conf 里配置, 对照着里边的例子来写,如要指明证书文件的路径等。 ------------------------- 回 104楼(aaaaa11123) 的帖子 您好, 如此修改 httpd-ssl.conf 后,重启apache后, https站点能访问了吗? ------------------------- 回 108楼(aaaaa11123) 的帖子 您好, 在浏览器里访问 https://您的域名 , 会有什么样的结果呢? ------------------------- 回 111楼(aaaaa11123) 的帖子 您好, 那离成功仅有一小步了。 请检查ECS实例的安全组规则, 看规则是否允许访问tcp 443端口喔。 ------------------------- 回 113楼(aaaaa11123) 的帖子 您好, 请截图看看您的ECS实例安全组规则。 可以在“高级模式”里点“附件”的按钮来上传截图文件哩。 ------------------------- 回 115楼(aaaaa11123) 的帖子 您好, 看图中的规则,好象全部放行了呀。 您的系统有没有启用防火墙之类的呢? ------------------------- 回 118楼(aaaaa11123) 的帖子 您好, 那您之前可以在本地访问https站点,用的是什么网址访问的呢? ------------------------- 回 120楼(aaaaa11123) 的帖子 您好, 可在本地用如 portqueryui.exe 的工具来测试远程服务器的443端口是否可以访问, 如这样的结果: TCP port 443 (https service): FILTERED portqry.exe -n www.shanxiwap.cn -e 443 -p TCP exits with return code 0x00000002 TCP port 443 (https service): LISTENING portqry.exe -n www.aliyun.com -e 443 -p TCP exits with return code 0x00000000. ------------------------- 回 120楼(aaaaa11123) 的帖子 您好, portqueryui.exe 的工具可以从微软网站上下载得到, https://www.microsoft.com/en-us/download/details.aspx?id=24009 当然,也可以用其它工具来测试,如 telnet 等。 请多测试,多尝试,多对比。 ------------------------- 回 123楼(感觉2017) 的帖子 您好, 为您写了下边这个帖子,希望对您有用: 《为 “护卫神 apache大师”站点添加ssl证书,实现https访问》 - https://bbs.aliyun.com/read/541609.html ------------------------- 回 126楼(无限空间2) 的帖子 版主回复: 如果可以,请查看apache的日志文件,看看里边是否有具体的启动失败原因。 ------------------------- 回 128楼(林吊吊) 的帖子 版主回复: 您可以逐行检查一下 httpd-ssl.conf 的内容, 如确认 SSLSessionCache 这一行的配置是否有效。 ------------------------- 回 130楼(wylove) 的帖子 版主回复: 可以如同复用80端口那样复用443端口的喔, 您为443端口设置vhost了吗? ------------------------- 回 132楼(wylove) 的帖子 版主回复: 能否查看一下apache的错误日志文件,看具体是什么导致apache启动失败? 如会否是因为第二个站点的证书路径错误之类的。 ------------------------- 回 134楼(zjzl85) 的帖子 版主回复: 您的意思是,您的一个阿里云ECS云服务器有两个网站,一个A网站,一个B网站? A网站配置https访问后,apache启动失败吗? ------------------------- 回 136楼(zjzl85) 的帖子 版主回复: 一般https是跟着域名走的,如果您的证书是发给 zll.1680898.cn 的,那只能是以 https://zll.1680898.cn 的网址来访问喔。 如果B服务器在添加ssl配置后启动失败,建议检查一下apache的错误日志,看看是什么原因导致的。 ------------------------- 回 138楼(zjzl85) 的帖子 版主回复: 那在 cmd.exe 里,转到 httpd.exe 所在的目录,运行一下 httpd.exe ,看看会有哪些信息输出。 ------------------------- 回 140楼(zjzl85) 的帖子 版主回复: httpd.exe 是提示您,在配置文件 httpd-ssl.conf 中 <VirtualHost> 与  </VirtualHost> 不匹配。 您可以数一下,<VirtualHost> 出现的次数是2次,而 </VirtualHost> 出现的次数是3次,一般它们是俩兄弟,成对出现的。 ------------------------- 回 143楼(zjzl85) 的帖子 版主回复: 好象您的配置文件中,引用了ipv6的地址,和多次listen了443端口。 或,您先后重复运行了httpd.exe。 请再细心对照着出错信息,检查一下。 ------------------------- 回 146楼(起风的森林) 的帖子 版主回复: 抱歉现在才看到您的信息, 如果apache能成功启动,本地里也能查到443端口的使用状态, 或许您需要检查一下实例的安全组规则,看是否有允许外网访问443端口: https://help.aliyun.com/document_detail/25471.html ------------------------- 回 152楼(起风的森林) 的帖子 版主回复: 有啊,如我头像上边写着的(旺旺:nectar2)。 ------------------------- 回 158楼(cvwif) 的帖子 您好, 可通过如.htaccess文件来设置http自动跳转到https。 ------------------------- 回 160楼(cvwif) 的帖子 您好, 那现在您的站点,能从http自动跳到https了吗? ------------------------- 回 162楼(cvwif) 的帖子 您好, 可以参考一下这里的讨论: https://stackoverflow.com/questions/10489895/http-to-https-through-htaccess 是不是http到https的设置或规则有冲突,所以没达到预期的效果? ------------------------- 回 164楼(cvwif) 的帖子 您好, 很高兴您能更新回复。 欢迎有空时,多来论坛逛逛喔。 ------------------------- 回 166楼(开心农场) 的帖子 您好, 如果443端口使用正常,但内容为空,或许需要检查一下https站点的设置,如文件路径等。
dongshan8 2019-12-01 23:57:48 0 浏览量 回答数 0

云产品推荐

上海奇点人才服务相关的云产品 小程序定制 上海微企信息技术相关的云产品 国内短信套餐包 ECS云服务器安全配置相关的云产品 开发者问答 阿里云建站 自然场景识别相关的云产品 万网 小程序开发制作 视频内容分析 视频集锦 代理记账服务 阿里云AIoT