你是如何理解微服务的?
我觉着微服务的核心思想就是分而治之,也就是说将传统的单体应用,根据业务拆分成一个一个的服务,彻底地去耦合,每一个微服务只提供单个业务功能的服务,比如说订单微服务就只实现订单相关的业务,会员微服务就只实现会员相关的业务,服务之间进行协作来完成用户的业务处理,每个微服务都运行在自己的进程里并且拥有自己独立的数据库。
优点:
首先服务拆分粒度更细,有利于资源重复利用,提高开发效率。
然后微服务是松耦合的,无论是在开发阶段或部署阶段都是独立的。
第三就是可以更加精准的制定每个服务的优化方案,按需进行伸缩。
缺点:
首先是微服务会增加开发人员的开发复杂度,因为要在开发过程中要处理分布式系统的复杂性。
再者服务间通信成本上升,不同的服务可能会部署在不同的机器上,通过网络进行通信成本上升。
然后是微服务有可能会出现数据一致性问题,也就是说出现数据不一致的情况,这块可以通过分布式事务来解决。
再然后就是微服务太多的话,服务治理成本会变高,不利于系统维护。
最后就是微服务使得测试和调试都变得困难了一些。