前言
好久没写博客了,最近主导了一个产品的后端设计。沉迷于微服务不可自拔呀(改BUG改的不可自拔:P)。准备写一个系列,用来记录这个产品从无到有的心路历程。也作为本菜鸟的一个笔记吧。
口水话不说了。进入正题。
为什么选择微服务
在《微服务架构》这本书中,作者已明确:微服务不是银弹。相反,它解决很多问题的同时,也会引入更多的问题。在近一年的实践中,微服务至少带来了这几个好处:
- 方便分布式部署,集中优势资源给重要的功能
- 解放思维,单一职责,方便开发和有序增加新功能
- 方便测试
- 对重要服务(比如微信转账)加以保护,更安全
微服务至少带来了以下几个坏处:
1. 更复杂的设计(容错,幂等)
2. 函数调用转为api调用的性能开销
一般来说,大型项目重构进行服务化是一个比较好的思路(比如后期把存储,消息等拆出来)。但是一开始就使用微服务的思想来设计项目,也不是什么问题,更早的享受它带来的优势岂不美哉。
选择的技术
本项目是一个新闻APP的后端,使用python3和go做为主打语言。这样能兼顾快速上线和性能。事实上,python3的性能并没有想象中那么差。6个进程handle近5000W/day的请求量轻轻松松。除了内存耗费多一点。
具体配置:
语言: python3,go
数据库:mysql
缓存:redis
使用python库