Preface
微服务是一种分布式系统解决方案,通过它们的生命周期的相互合作,促进了细粒度服务的使用。因为微服务最初是最为商业领域的模型使用,所以避免了一些传统阶梯状的结构,过去的十年时间里,微服务也集成并融合了新技术和科技,使得可以帮助它们避免许多面向服务架构实现的陷阱
什么是微服务?
关键点
- 简化了实现,复杂了数据处理
- 粒度划分需要一定的花费
- 最好的情况就是可以通过一次服务间调用来得到所有想要的信
- 在Microservice的各个子服务之间进行服务间调用效率是十分低下的
- 为了达到该目标,我们需要尽量使用户访问同一个子服务实例,并且在该用户的会话中缓存从公共服务中所得到的信息。
微服务架构中的核心部分
- 小,且专注于做一件事情
- 独立的进程中
- 轻量级的通信机制
- 松耦合、独立部署
优点
- 单个服务很容易开发、理解和维护
- 每个服务都可用不同的技术来开发
- 每个服务可以单独部署
- 每个服务独立扩展
缺点
- 服务不是越小越好
- 分布式应用带来了复杂性
- 分区的数据库结构
- 给测试带来了复杂性
- 微服务架构模式应用的改变将会波及多个服务
- 部署一个微服务应用也很复杂
部署方法
使用PaaS服务,例如Cloud Foundry,PaaS给开发者提供一个部署和管理微服务的简单办法,他把这些服务都打包内置解决了。一个典型的开始点是使用一个集群化方案,比如配合Docker使用Mesos或Kubemetes。