没有什么好的建议,你更新文件肯定会有影响,可以在晚上1,2点的时候发布更新。用的人比较少的时候,但这种可能估计谁都不愿意。另外就是在本地测试好了,找时间再更新。改了啥就更新啥,改了后台就更新dll,改了页面就传页面。作好了再传,更新的平率别那么高。= =你们的用户量没那么大吧,兄弟。
用户量不大 因为 客户要在我们网站 制作产品 有时候发布影响到他们 所以想找个方法解决掉这个问题
@六欲: 象你们这种情况,除了大BUG之外,根本不需要现场更新。等客户下班了再更新。
大BUG,谁都能接受停几分钟的,几小时都行。(当然如果是上海证交所或是12306一定会被骂)
小BUG,或是功能修改,你单是开发测试都要几天了,还差那几个小时着急更新?
使用负载均衡
不敢 告诉你 我们才一台 阿里云 哈哈哈
@六欲: 你可能觉得我说的离谱,问题是需要24小时不停转系统的客户,
通常是消费得起N台阿里云,N还大于100。
所以简单粗暴的方法最适合低端客户了。
当然,作为技术研究,你可以研究,作为实际解决方案,则越简单越粗暴越好。
思路如下,仅理论,未经实践
部署一个项目,同时数据库添加一张表,设置标志字段为bool型,来标识项目是否在更新
项目一:主要index.aspx页面,作用Ajax请求数据库判断项目二、三是否在更新,跳转到未更新的项目
项目二、三:在更新前,修改数据库标志,标志该项目在更新
这样,只要每次依次更新项目二、三即可
问题:更新时,如何保证当前,在线用户请求可以得到响应。
改进版:
一个项目三个文件夹,文件夹一放index.aspx页面,文件夹二三放项目源码
同时数据库添加一张表,设置标志字段为bool型,来标识文件夹二三里面的项目是否在更新
请求时,判断文件夹是否在更新,若在,则跳转到另一个文件夹
更新时,只替换DLL和Aspx页面
使用那个文件夹的内容 不是都是IIS自己做的吗?我们怎么改?
@六欲: 改项目啊,比如Global.asax 里面添加处理,改路径
@大志若愚: 你说的这种方案 实践过吗? 我怎么看都觉得不行!
@六欲: 只是思路,未经实践
我就奇怪了,一台阿里云,几分钟不能访问就能影响到了正常的业务了,
然后你们还天天改,一天还发布N次,程序员不要钱是吗?
你们在哪儿,一天工资三毛吗?快到我的碗里来。
这是标准的高能低配,又要马儿跑得快,又要马儿不吃草是吧?
我还以为你们客户是上海证交所,分分钟几个亿上下的呢。
大哥 这样说 就不对了吧!我们讨论的是我的问题 ,而不是其他!解决问题才是最主要的 !抱怨没有用!如果能解决这个问题,对我们开发 还有运营 还有客户都有好处 何乐而不为呢?
@六欲: 我一向认为解决问题得看钱。或者为这个问题你愿意付出多少钱。
你基本摆明了,程序员不要钱的样子,告诉你一个方案,需要你们改造系统使用3年程序员人工,你愿意吗?
你不要给我十万,让我解决12306的问题,那不现实。
@爱编程的大叔: 哈哈哈 没别的意思 就是想解决而已 谢谢你的热心啦 感谢
我觉得这个没法实现,如果实现了麻烦告诉我一下,记着啊,谢谢了!
还是等晚上1:00更新算了,写一个计划任务,到时候让程序来更新,不用你更新的,你可以放心睡觉,哈哈.
一天发布几个版本,这个问题大发了,不要测试吗?步伐不要迈的太大,还是先发布一个测试版本(可以发布一个内网的机子),测试没问题,在发布吧
nginx