服务治理之服务隔离

背景:

到货提醒、商品列表缓存服务等,需要定时任务离线计算。实现定时任务的方法跟正常线上业务调用的为相同的方法,且为同一模块。为避免离线任务对线上业务造成影响,采用机器注册到不同zk的方式来进行服务隔离。

由此产生了以下问题:

  1. 离线任务较多,且调用量较大,导致下游压力较大
  2. 大部分的机器用来处理离线任务,造成资源浪费
  3. 机器调用量较大,出现线程池打满,任务排队的现象
  4. 服务注册和消费,因为使用的为同一项目,采用修改host的方式来进行了隔离。

解决问题:

针对问题1、2、3,随着APP版本的升级和服务架构的升级,一些支撑老服务的定时任务已经没有使用场景了,进行了下线操作,但是这还是没有从根本上解决问题。

采用了任务打散,调用到脚本集群上,解决单一脚本机器负载较高的问题

使用mq进行削峰

服务隔离的想法:

  1. 打包机新增job profile,将业务和脚本进行分开
  2. 将只提供给脚本服务使用的服务,增加job关键字,比如xxxJobService
  3. 使用服务路由的特性进行业务隔离,解决对机器host的依赖
lemon wechat
欢迎大家关注我的订阅号 SeeMoonUp
写的不错?鼓励一下?不差钱?