微服务的优缺点

2020-07-02 00:00:00 微服 专区 调用 服务 传统

本人觉得基于springcloud、dubbo的微服务缺点大于优点。很多技术人员为了微服务而微服务。

基于springcloud、dubbo的微服务和基于jar的微服务。

基于springcloud、dubbo的微服务简称传统微服务,基于jar的微服务简称jar微服务。

jar微服务定义:服务的相互调用通过引用jar,调用本地api方法。定义的其他部分和传统微服务定义一致。传统微服务是通过微服务进行服务隔离,jar微服务通过jar包进行服务隔离。


## 传统微服务的缺点

1. 服务调用跨网络,增加网络IO,降低性能。

2. 服务调用跨更多节点,分布式事务数据不一致性可能更大。

3. 需要服务发现,增加复杂度。

4. 运维、测试基于微服务架构的应用也很复杂。

5. 每个服务都是一个独立系统,代码重复,增加系统框架不一致的可能性。

6. 所以服务总的启动时间长。

7. 服务依赖的传递性,A依赖B,B依赖C。那么只能先部署好C、再部署B、再部署A。


## 传统微服务的优点

1. 传统微服务能使用不同的语言、框架开发。

2. 一个jar是计算密集型的,一个jar是io密集型的,集成在一个系统里,会有资源冲突。


## 说明

1. 关于解耦,传统微服务解耦和jar微服务解耦效果差不多。

2. 关于服务发现,这本是传统微服务自找麻烦,自己挖了坑,自己再把它填上。


##都需要注意的地方

边界定义清楚

##传统微服务适用场景

服务跨部门,甚至服务跨公司。不同部门资源很难统一协调,也很可能使用不同的语言或框架。团队内部千万不要为了微服务而去微服务。

相关文章