什么是微服务

微服务是一种编程思想,它基于分布式系统开发,把一个项目分成多个细小并能独立运行的服务,但是分这么多的服务会导致以下几个问题。

  1. 这么多的服务用户要怎么连接。
    解决:
    - 通过API网关管理服务器,用户只需要通过连接API网关就可以了。
  2. 这么多的服务器该如何通信。
    解决:
    同步通信;
    - HTTP(Apache HTTP Client)
    - RPC (Dubbo,Apache Thrift,gRPC)
    异步通信:
    - 消息队列(kafka,RabbitMQ,RocketMQ)
  3. 这么多的服务该如何管理。
    解决:
    服务注册与发现:
    基于客户端的服务注册与发现:
    - Apache Zookeeper
    基于服务端的服务注册与发现:
    - Netflix Eureka(游离卡)
  4. 服务器挂掉了怎么办。
    解决:
    • 重试机制
    • 服务熔断
    • 负载均衡
    • 服务降级
    • 服务限流

最主要的问题还是网络问题

你可能感兴趣的:(java,微服务)