夫天地者,万物之逆旅;光阴者,百代之过客。而浮生若梦,为欢几何?
记一次 windows server 启动方式的优化

前言

在工作中我们往往会遇到一些业务复杂、数据量大、等待时间长的业务场景,这时候我们会写一些windows服务加以配合处理,以提高整个系统的业务服务能力。

服务在安装后我们可以设置服务的启动方式为自动启动,自动启动优势在于如果遇到服务器宕机重启我们也不用远程登录服务器手动启动这个服务,是很方便的一种做法。

服务的自动启动虽然很方便但是也有局限性,每个服务的启动是无顺序的并且启动花费时间也是未知的。如果遇到服务之间存在依赖关系,比如你的一个短信推送服务依赖于消息中间件rabbitmq,那么试想一下,你的服务在rabbitmq服务之前启动是不是会出现一些连接失败的异常?对于上述这种场景下面我们从3个方面入手解决。

服务延迟启动

将自己写的服务设置为延迟启动,依赖的服务设置为自动启动,这样2个服务启动之间会有一定时间间隔,可以避免上述出现的问题。这种方式的好处在于简单,不用写过多的代码和配置。不足之处在于你不能确定延迟多长时间后依赖的服务才能完成启动。

设置服务间的依赖关系

1.在安装服务的时候配置服务间的依赖关系

使用 sc <server> create [service name] [binPath= ] [start=auto] [depend=redis/rabbitmq] 命令安装服务的时候我们可以设置depend选项来配置服务依赖的其他服务名。

2.在服务开发中,代码编写时设置服务依赖

重复尝试轮循方式

以上2中方式适合在同一台服务器集中部署的情况下使用,在分布式系统部署环境下我们还得用轮循方式。

轮循尝试是最简单、最容易的做法,相信有软件开发基础的童鞋都能想到。但是这种方法显的太low,是个笨方法,然而在一些特殊场景下确实又能解决我们的需求,所以我们还是应该好好的利用它。

作者:暗夜余晖

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

1

支持

0

反对

posted @2017-5-23  拜读(1430)

评论列表

评论内容:



喜欢请打赏

支付宝 微信

请放心支付