微服务优缺点总结

微服务优缺点总结

参考文章 史上最简单的SpringCould

一  微服务好处总结

1.1 技术总体总结

  1. 技术的异构型,不同的服务可以选取自己的服务开发技术组件【语言,存储,消息队列等】
  2. 隔离性,服务自治,某一个服务处理失败了,不会影响其他的服务运行。
  3. 可扩展性,单个服务扩展,不会影响整体业务。
  4. 简化部署
  5. 易优化,模块职责单一,实现流程简

1.2 技术和业务上总结

  1. 提升开发交流,每个服务足够内聚,足够小,代码容易理解;
  2. 服务独立测试、部署、升级、发布;
  3. 按需定制的DFX,资源利用率,每个服务可以各自进行x扩展和z扩展,而且,每个服务可以根据自己的需要部署到合适的硬件服务器上;每个服务按需要选择HA的模式,选择接受服务的实例个数;
  4. 容易扩大开发团队,可以针对每个服务(service)组件开发团队;
  5. 提高容错性(fault isolation),一个服务的内存泄露并不会让整个系统瘫痪;
  6. 新技术的应用,系统不会被长期限制在某个技术栈上;

二 微服务的缺点

  1. 模块变多了,管理复杂,各个模块之间的业务交互及抽象能力。
  2. 业务链出现的问题不好排查
  3. 微服务架构整个应用分散成多个服务,定位故障点非常困难。
  4. 稳定性下降。服务数量变多导致其中一个服务出现故障的概率增大,并且一个服务故障可能导致整个系统挂掉。事实上,在大访问量的生产场景下,故障总是会出现的。
  5. 服务数量非常多,部署、管理的工作量很大。
  6. 开发方面:如何保证各个服务在持续开发的情况下仍然保持协同合作。
  7. 测试方面:服务拆分后,几乎所有功能都会涉及多个服务。原本单个程序的测试变为服务间调用的测试。测试变得更加复杂。

三 针对微服务的缺点提供的优化及技术栈

  1. 注册中心 订阅通知 nacos
  2. 服务监控 skywalking 整体架构看似模块有点多,但在实际上还是比较清晰的,主要就是通过收集各种格式的数据进行存储,然后展示。
  3. 服务容错 【熔断,分离、限流、降级】 sentinel 处理

     Sentinel

     熔断 Hystrix RestTemplate 注解@HystrixCommand(fallbackMethod = "hiError"),定义hiError feign 接口 实现原来的接口并且注册到IOC 已经弃用

        分离

        限流

       降级

  1. 服务路由 路由转发和过滤器
  2. 服务链路追踪 Spring Cloud Sleuth zipkin 后台统计服务间调用的依赖关系及调用数据
  3. 负载均衡 同一个服务多个节点部署的时候,使用负载均衡
  4. 注册中心服务,然后通过@LoadBalanced拿到注册中心的句柄 RestTemplate 或者通过 feign来实现
  5. 拦截器隔离

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值