微服务定义
什么是微服务呢,根据亚马逊CEO Bezos给出的有趣定义,单个微服务的设计、开发、测试和运维的所有人加在一起吃饭,只需要两个批萨就够了,这是就是著名的two pizza team rule。
微服务的优势
对比非微服务来讲,常规系统存在的问题是扩展性差,可靠性不高,维护成本高,同时与某种技术栈强绑定的,切换及更新的成本。而微服务则是通过Restful架构风格进行交互,可以简单理解成是各个字符串之间的交互,与技术实现语言无关,扩展性强。其优势信息如下:
- 单个微服务代码量小,易修改和维护
- 单个微服务可以独立部署与运行
- 单个微服务拥有独立进程,运态的启停
- 相关的微服务可以做负载均衡,提高性能和可靠性
- 可以独立对外提供服务
完整微服务需要的支撑
- 日志和审计
- 监控和警告
- 消息总线
- 服务的注册与发现
- 负载均衡
- 部署与升级
- 服务调度机制
- 主机资源管理
扩展支持
- 认证及授权
- 统一构建及打包
- 统一服务测试
- 服务依赖关系管理
- 统一问题跟踪调试框架(或称为调用链)
- 灰度发布
创建微服务的前提要素
1.微服务体积小,可以小团队完整支撑
2.能够独立的部署与运行
3.使用轻量级的通讯框架和架构
4.服务之间的关系是松耦合的
Comments