01.微服务介绍

1.为什么需要微服务

  1. 传统的单体应用,会随着不断完善变得越来越臃肿
  2. 传统的单体应用的业务代码不利于理解
  3. 传统的单体应用随着应用程序变大,启动的时间也会越来越长,如果开发人员需要重启应用服务器,那么需要耗费很长时间
  4. 想要更新一个功能必须重新部署整个应用程序才能更新
  5. 在单体应用中任何一个功能出现bug都有很大可能导致应用瘫痪
  6. 单体应用的技术更换非常困难

2.微服务是什么(微服务的定义)

微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间相互协调,相互配合。为用户提供最终价值的每一个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相协作(通常是基于HTTP协议的RESTful API),每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境,类生产环境等。另外,应当尽量避免统一的,集中式的服务管理机制,对于一个具体的服务而言,应该根据业务上下文,选择合适的语言,工具对其进行构建。
总结如下:

  1. 一组小的服务
  2. 独立的进程
  3. 轻量级通信
  4. 基于业务能力
  5. 独立部署
  6. 无集中式管理

3.微服务的优点

  1. 代码容易理解(因为这个服务只专注于某个业务)
  2. 单个服务开发简单,开发效率高(目的明确,切足够小)
  3. 因为足够小所以,使用当前技术重写旧服务将变得更加可行
  4. 易于与第三方整合
  5. 每个服务可以使用不同的语言进行开发
  6. 可以实现每个服务的独立部署
  7. 持续集成与持续部署成为可能
  8. 每个服务都可以独立进行水平扩展

4.微服务的缺点

  1. 分布式复杂性(如服务通信问题,一致性问题,分布式事务等)
  2. 运维复杂性
  3. 测试复杂性
  4. 最终一致性

5.微服务如何拆分

6.微服务的技术体系

1.接入层(负载均衡器)

负责把外部的流量接入到内部的平台上来(Nginx,LVS等)

2.网关层

属于微服务入口,可以对涌来的请求进行通用处理或特殊处理和转发到具体的服务上

3.业务层

与业务相关的微服务比如:订单服务,支付服务,库存服务,用户服务等

4.支撑服务

想要微服务进行落地需要以下服务进行支撑(比如Nacos,RabbitMQ,Kafka等)

  1. 注册中心
  2. 负载均衡
  3. 服务调用
  4. 容错限流
  5. 配置中心
  6. 监控告警
  7. 链路追踪
  8. 认证授权
  9. 日志聚合

5.平台服务

  1. 发布系统
  2. 集群资源调度
  3. 镜像治理
  4. 资源治理
  5. IAM

6.基础设施

  1. 计算
  2. 网络
  3. 存储
  4. NOC监控
  5. 安全
  6. IDC
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值