什么是微服务?
微服务是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务和服务之间采用轻量级的通信机制进行协作。每个服务可以被独立的部署到生产环境。
从单体应用到微服务
单体系统的缺点:
修改一个小功能,就需要将整个系统重新部署上线,影响其他功能的运行;
功能模块互相依赖,强耦合,扩展困难。如果出现性能瓶颈,需要对整体应用进行升级,虽然影响性能的可能只是其中一个小模块;
单体系统的优点:
容易部署,程序单一,不存在分布式集群的复杂部署环境;
容易测试,没有复杂的服务调用关系。
微服务的优点:
不同的服务可以使用不同的技术;
隔离性。一个服务不可用不会导致其他服务不可用;
可扩展性。某个服务出现性能瓶颈,只需对此服务进行升级即可;
简化部署。服务的部署是独立的,哪个服务出现问题,只需对此服务进行修改重新部署;
微服务的缺点:
网络调用频繁。性能相对函数调用较差。
运维成本增加。系统由多个独立运行的微服务构成,需要设计一个良好的监控系统对各个微服务的运行状态进行监控。