9.5 微服务应用
9.5.1 什么十单体服务、单体应用
缺点:随着业务增长及开发团队的不断扩大,遇到的问题如下:
1.部署效率问题
一套代码几十兆上百兆,需要较长的编译时间和部署时间
2.团队协作问题
一个单体应用中包含多个功能,但是每个功能可能是不同的开发小组单独开发,那么代码怎么一起打包与构建
3.影响业务文档
一个tomcat运行的代码过于臃肿,导致出现内存溢出等问题
9.5.2 什么是微服务(Micro services)
https://spring.io/
微服务就是将单体应用拆分为多个应用,每个应用运行在单独的运行环境,应用之间通过指定接口的方式调用,应用之间的代码版本升级互补影响
实现微服务的方式:
横向拆分:
按照不同的业务进行拆分,如支付。订单、登录、物流
纵向拆分:
把一个业务中的组件再细致拆分,比如支付系统拆分为微信支付、银联支付、支付宝支付
9.5.2.1 实现微服务的几个要素
微服务如何落地(docker)
微服务直接如何发现对方(注册中心、服务发现)
微服务之间如何访问对方(服务访问 -> resetful API)
微服务如何快速扩容(服务治理)
微服务如何升级与回滚(CI/CD)
微服务访问日志如何查看(ELK)