浙江沪杭甬高速公路股份有限公司(以下简称:浙江沪杭甬高速公路)是浙江省交通集团旗下核心成员企业和重要上市平台。公司于1997年3月由原省高等级公路投资有限公司独家发起成立,同年5月在香港联交所挂牌上市,是省委省政府为开辟浙江交通与国际资本市场接轨的融资渠道、加快全省高速公路路网建设而设立的公司,是浙江省第一家境外上市的国有企业以及唯一的省属高速公路投资运营境外上市公司。“十三五”期间,公司各级累计获评“最美中国路姐”等行业荣誉35项、获得全国青年文明号、全国巾帼文明岗、浙江省模范集体等省部级以上荣誉40余项。
主要挑战
自 2020 年,全国高速公路撤销省界收费站后,实行了新的收费模式,建立ETC门架系统,ETC车辆和MTC车辆开始分段计费、出口统一收费等,全国高速公路实现一张网运营,与此同时,服务器的稳定更是重中之重,直接关系到收费系统的安全。
l 系统可用性挑战:用户的信息化系统架构是基于物理服务器部署的烟囱式架构,系统的可用性严重依赖服务器状态。在实际运行过程中,如果发生服务器硬件故障,依赖于硬件故障维修时间,会引起收费系统服务长时间中断,给系统可用性带来严重挑战。
l 系统性能难关:由于用户系统直接基于物理服务器部署,采用本地磁盘(RAID5)提供存储空间,在数据集中大量写入时,会造成传输服务故障和查询缓慢等问题。
l 运维管理强度大:全省上百个收费站,每个收费站内涉及服务器10台左右,涉及的服务器数量多,分布广,运维管理较复杂。
解决方案
交通运输部路网监测与应急处置中心印发了《收费公路联网收费系统运维工作指南》,其中明确指出收费系统故障应在4个小时内修复。为了浙江沪杭甬高速公路可以更好的服务于用户,中国领先的云软件提供商安超云软件有限公司(以下简称:安超云)对浙江沪杭甬高速公路现有收费站服务器资源进行改造,助力其提升运维管理水平的同时,将因硬件故障导致的服务中断时间缩短至15分钟以内。
安超云采用自主研发的安超云操作系统(ArcherOS)和安超云管理平台(ArcherCM)构建服务器高可用平台,助力浙江沪杭甬高速公路提升IT能力,实现业务变革:
l 在每个收费站、区域管理中心及省中心内部署ArcherOS超融合平台和ArcherCM云管理平台,为业务应用提供计算、网络和存储等资源,同时为区域管理中心和省中心提供纳管数据;
l 按照省中心、区域管理中心和收费站三层组织架构实现统一纳管和运维。

客户收益
l 高可靠性:采用端到端的多种容错机制,保障了系统和数据间的可靠性;
l 高可用性:当发生故障时,平台能够自动根据策略在集群内健康节点上重新启动业务应用,这种自动重启的机制保证了业务应用中断的时间在1-2分钟之内,且15分钟内可恢复正常运作;
l 高性能:多种读写优化措施,可保障在特殊情况下的大量、集中数据读写传输服务及速度;
l 运维管理简便:实现全局统一管理,按照省中心、区域管理中心和收费站三层管理模式分级分权管理。可根据需要对全省各区域管理中心、收费站的机房动力环境、服务器硬件运行状态进行分级分权统一管理和实时监控。
客户评价
安超云着眼于国产化技术的应用,为我们提高运维管理水平的同时,提供了一体化的云计算平台能力,为收费系统长期安全稳定运行奠定了良好基础。
这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下
下面的代码通过ftp上传文件并且它有效。require'net/ftp'ftp=Net::FTP.newftp.passive=trueftp.connect("***")ftp.login("***","***")ftp.chdir"claimsecure-xml-files"ftp.putbinaryfile("file.xls",File.basename("file.xls"))ftp.quit但是如何确定上传是否成功呢? 最佳答案 之后ftp.putbinaryfile("file.xls",File.basename("
我是一个尝试使用delayed_job的NOOB。我想在使用延迟作业成功发送邮件后更新用户模型。发送邮件:UserMailer.delay.welcome_email(user)如果邮件发送成功,请执行以下操作:User.update_attributes(:emailed=>true)邮件发送成功后如何回调或触发? 最佳答案 您需要创建一个Job对象而不是调用#delay帮助程序。您可以使用successHook来执行回调。classWelcomeEmailJob 关于ruby-on-
上下文:我正在使用Stripecheckout接受rails中的一次性付款。我有一个收费Controller,如下所示。我最初使用stripewebhook来监听charge.succeeded,但由于webhook的异步特性而遇到了一些问题。我已将业务逻辑移至Controller。如果客户收费成功,我会将客户和其他一些详细信息保存到数据库中。我的问题:此检查是否足以确保收费成功?ifcharge["paid"]==trueStripe::Charge.create的Stripe文档指出,“充值成功返回一个充值对象。如果出现问题,则引发错误。一个常见的错误来源是无效或过期的卡,或者可用
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。上周我成功完成了我们公司所有应用程序从Ruby1.8.6到Ruby1.8.7的转换,包括本地和远程配置。从现在开始,开发不需要确保与Ruby1.8.6的向后兼容性。出于好奇,我尝试针对Ruby1.9.1运行几个项目的测试套件。正如预期的那样,我发现了一些与编码相关的问题,但当我发现诸如Rack::Link已知错误之类的低级不兼容性时,我真的很震惊。在这一
我有以下类(class):classUsercode1=Proc.new{}code2=lambda{}define_method:testdoself.class.instance_eval&code1self.class.instance_eval&code2endendUser.new.test为什么第二个instance_eval失败并出现错误数量的参数(1代表0)错误? 最佳答案 instance_eval正在将self(User)生成给lambda。Lambda对其参数有特殊要求-方法也是如此-如果参数太少/太多,将引发
我没有看到FileUtils命令的任何返回值。我想做这样的事情:really=(gets.chomp=="y")ifreallysuccess=FileUtils.rm_rf"./PROJECT_#{@name}"#doesnotworkendputs"./PROJECT_#{@name}deleted"ifsuccess我读了documentation对于FileUtils,还读取了“GettingexecutedcommandfromrubyFileUtils”,但我不知道如何使用答案。 最佳答案 根据文档(http://rub
我有一个具有基本Devise身份验证的应用程序。登录后,我想查找用户帐户(用户belongs_to帐户,帐户has_many用户),并将其存储在session中,以便它像@current_user一样可用。rails将session存储成这样的方式是什么?是否有一个钩子(Hook)可以与Devise一起使用,以便在成功登录后执行代码? 最佳答案 实际上,在Devise中组合使用Omniauth和数据库登录模块的情况下,接受的答案无法正常工作。在Devise中每次成功登录操作后执行的nativeHook(忽略用户身份验证channel
关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭11年前。Improvethisquestion您成功使用过Sinatra吗?这是一个什么样的项目?在什么情况下您会推荐使用Sinatra而不是Rails或Merb?
我已经使用Sinatra一段时间了,我想通过websockets推送数据来为我的网络应用程序添加一些实时功能。我已经成功地单独使用了gem“em-websocket”,但无法编写一个具有sinatra网络服务器和网络套接字服务器的ruby文件。我试过旋转运行!或开始!方法在单独的线程中关闭但没有成功。有人用过这个吗?我想将它们放在同一个文件中,这样我就可以在两个服务器之间共享变量。 最佳答案 没试过,但应该不会太难:require'em-websocket'require'sinatra/base'require'thin'EM