微服务

1.微服务与微服务架构?

  传统的单体应用部署在一台服务器上,每个部分出现问题,则可能导致整个系统不能使用,而且整个系统会过于庞大。将这个单体应用拆分为多个子系统,每个子系统只负责实现部分模块,将其部署在多台服务器上,某个子系统出现问题,不太可能影响整个系统。

  微服务关注的是一个点,强调的是服务的大小,是针对具体某一个问题提供的服务应用。而微服务架构是一种架构模式,它提倡将一个应用划分为划分为多个小的服务,各个服务之间能够相互协调,互相配合。每个服务运行在独立的进程当中,服务之间采用轻量级通信方式通信。

2.微服务的四个核心问题?

  (1)众多服务,客户端如何访问;

  (2)众多服务之间如何通信;

  (3)服务如何治理;

  (4)服务如果挂了怎么办。

3.微服务解决方案?

  方案一:Spring Cloud NetFlix (一站式解决方案)

    如何访问:API网关,zuul组件

    如何通信:Feign-httpclinet-http通信方式

    服务注册发现:Eureka

    熔断机制:Hystrix

  方案二:dubbo+zookeeper(组件不够完整需要整合别人的)

    访问组件:第三方组件

    通信方式:rpc

    服务注册发现:zookeeper

    熔断机制:借助Hystrix

  方案三:Spring Cloud Alibaba(一站式解决方案 简单)

4.微服务优缺点?

     优点:单一职责原则;

     每个服务足够小,代码容易理解,能够聚焦于一个指定的业务功能;

    开发简单,效率高,一个服务只专注于一件事;

    微服务能够被小团队单独开发;  

    微服务是松耦合的;

    微服务能使用不同的语言开发;

    易于和第三方集成,可通过持续集成工具jenkins,Hudson,banboo;

    微服务只是业务逻辑代码,不会和html等前端混合;

    每个微服务都可以有自己的存储能力,有自己独立的数据库,也可以是统一的数据库。

  缺点:

    开发人员需要处理分布式系统的复杂性;

    多服务运维难度增加;

    数据一致性;

      服务间通信成本。

     

原文地址:https://www.cnblogs.com/menbo/p/13325434.html