基于Kubernetes、Docker的机器学习微服务系统设计 | |||||
---|---|---|---|---|---|
实践篇 | (1)概念与构想 | (二)架构与部署 | (三)微服务框架 | (四)中文分词 | (五)预处理 |
(六)特征选择 | (七)分类器微 | (八)部署配置 | (九)应用服务 | (十)数据可视化 | |
研究篇 | RS中文分词 | MP特征选择 | NLV文本分类 | 快速kNN | 文本分类 |
本文的应用服务是指机器学习任务的应用,主要涉及任务的调度、状态机、和微服务发现,微服务访问以及微服务资源的监控。
1 分类任务
1.1 分类任务类图
分类任务类图如图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/a74812b3c3cd52f972306bfb9b183311.png)
1.2 数据结构
分类任务类图如图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/75c533b84083e3f41cf50567d1819adc.png)
顶层采用任务池管理分类任务,每个任务下面挂多个分类子任务,每个子任务下又有多个任务实例。
1.3 调度状态转移
分类任务调度状态转移图如图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/39b1a6e2061fd742282b84d18696f385.png)
任务有创建、执行、等待、完成、超时、消亡六种状态,不同的条件进入不同的状态如图所示。
2 资源监控
2.1 资源监控类图
资源监控类图如图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/8b9e70b78f3ced1b74c2bda8dd58cded.png)
2.2 部分代码实现
服务控制中心类:
package com.robin.monitor;
import com.robin.config.ConfigUtil;
import com.robin.log.RobinLogger;
import com.robin.task.ClassifyTaskPool;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* <DT><B>描述:</B></DT>
* <DD>服务控制中心</DD>
*
* @version Version1.0
* @author Robin
* @version <I> V1.0 Date:2018-08-08</I>
* @author <I> E-mail:xsd-jj@163.com</I>
*/
public class MonitorCenter {