
于是上一周我在朋友圈立下了个 Flag,憋个“大招”,这些天利用业余时间,也算是把要放在 Kubernetes 的应用开发完了,这是一个简单的基于微服务架构的中文句子情绪分析应用(启发我的那篇原文是一个英文句子情绪分析应用)。
这个应用是干什么的?
这是应用的截图:

关于情绪分析的微服务,我没有自己额外的去训练模型,也没有加新的词库,所以分析的结果都仰仗着 SnowNLP 这个中文情绪分析库来完成的。
梳理下应用架构
应用层面来看,主要分为三部分:sa-frontend
、sa-webapp
、sa-logic
。
sa-frontend
一个 Web 前端应用,如截图所看到的就是这个应用的所有,使用 Vue.js 开发。
sa-webapp
用于处理由 sa-frontend
的请求,为了获取用户输入的句子情绪的分析结果,会调用 sa-logic
这个微服务。sa-webapp
使用 Go 语言开发。
sa-logic
处理传入的句子的情绪分析并返回,别的啥都不干,使用 Python 开发。
开发过程中的小故事
原本想着 sa-webapp
这部分使用 PHP 来开发,因为在之前的分享中,有位童鞋说想我用 PHP 来做,但为什么我最后选择了 Go 来做呢?其实我最开始是用了 PHP 来做的,但是在我容器化 PHP 做的应用时,感觉费时费力,可能是我选择了用 Laravel 框架的缘故吧,狭窄各种依赖包下到天荒地老,最终我构建出来的镜像也很肥大,于是我想着要不用 Go 试试,结果我只写了几十行代码,容器化时使用了多阶段构建的手法,最终构建出来的镜像才 20MB 左右,于是我果断选择了用 Go 语言来实现的 sa-webapp
。
另外一个小插曲就是,有朋友说文章的排版不大行,其实我个人觉得现在也就一般般吧,原文是用 Markdown 写的,完了之后在网上使用 Markdown 转公众号文章的工具转的,其实在原创一篇分享之后,已经花了我好多时间了,就像现在是 2019 年 8 月 14 日 凌晨 1:52 分,我还在用 Markdown 写着这篇分享一样。如果有朋友知道有什么好用的排版工具,可以告诉我,跪谢!我也想让看我的分享的童鞋看得更舒服。
客官请留步
虽然目前还没有用上 Kubernetes,但我觉得目前这个项目还是有一些可以看看的点的:
sa-frontend
和sa-webapp
使用多阶段构建手法,让最终构建出来的镜像容量极小;- docker-compose 整合所有服务,你马上就可以启动这个应用了。
正如这次分享的标题一样,水手已经收拾好出航的行李,做好了与家中女友的告别,整理好了自己的心情,马上就要准备扬帆起航了。
启发了我的那篇文章(需要翻墙): bit.ly/300OKXX
项目放在自己的 Github 上: github.com/jwma/sentim…
