基于Kubernetes、Docker的机器学习微服务系统设计 | |||||
---|---|---|---|---|---|
实践篇 | (1)概念与构想 | (二)架构与部署 | (三)微服务框架 | (四)中文分词 | (五)预处理 |
(六)特征选择 | (七)分类器微 | (八)部署配置 | (九)应用服务 | (十)数据可视化 | |
研究篇 | RS中文分词 | MP特征选择 | NLV文本分类 | 快速kNN | 文本分类 |
为了微服务的接口交互统一,本系统采用统一的框架模式。采用Jersey软件框架,Jersey 是开源的RESTful框架, 实现了JAX-RS (JSR 311 & JSR 339) 规范。
微服务框架
RESTful框架实现流程如图所示:
高层次的适配器模式的应用,将业务服务与RESTful通信解耦,业务仅关注自己的实现。
框架实现
配置文件config.properties内容如下:
#restful API config
listen.ip=0.0.0.0
listen.port=8084
#thread pool config
thread.core.pool.size=4
thread.max.pool.size=4
#mirco server config
mircoServer.name=business
jar.path=file:business-1.0.jar
jar.actionClass=com.robin.action.BusinessAction
#log config
log.path=log/
log.prefix=business
# Level.ALL Level.FINEST Level.FINER Level.FINE Level.CONFIG
# Level.INFO Level.WARNING Level.SEVERE Level.OFF
log.level=Level.INFO
log.file.limit=1048576
log.file.count=3
通用资源类:
/**
* <DT><B>描述:</B></DT>
* <DD>通用资源类</DD>
*
* @version Version1.0
* @author Robin
* @version <I> V1.0 Date:2018-05-21</I>
* @author <I> E-mail:xsd-jj@163.com</I>
*/
@Path("robin")
public class CommonResource {
// 日志
private static final Logger LOGGER = RobinLogger.getLogger();
// 微服务
private static MircoServiceAction mircoServer;
// 配置的微服务名称
private static final String CFG_MS_NAME;
static {
// 微服务名称配置文件检查
CFG_MS_NAME = ConfigUtil.getConfig("mircoServer.name");
String jarPath = ConfigUtil.getConfig("jar.path");
URL url = null;
try {
url = new URL(jarPath);
} catch (MalformedURLException ex) {
LOGGER.log(Level.SEVERE, ex.getMessage());
}
URLClassLoader classLoader = new URLClassLoader(new URL[]{
url}, Thread.currentThread()
.</