常用微服务框架

1.微服务简介

  • 定义
    • 微服务架构提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合。微服务架构是一种将单应用程序作为一套小型服务开发的方法,每种应用程序都在其自己的进程中运行,并与轻量级机制进行通信。
  • 核心要素
    • 服务注册
    • 服务发现
    • 路由
    • 熔断
    • 降级
    • 分布式配置
  • 优点
    • 降低民单个服务复杂度
      • 将原来偶合在一起的复杂业务拆分为单个服务,规避了原本复杂度无止境的积累。每一个微服务专注于单一功能,并通过定义良好的接口清晰表述服务边界。每个服务开发者只专注服务本身,通过使用缓存、DAL等各种技术手段来提升系统的性能,而对于消费方来说完全透明。
    • 独立部署
      • 由于微服务具备独立的运行进程,所以每个微服务可以独立部署。当业务迭代时只需要发布相关服务的迭代即可,降低了测试的工作量同时也降低了服务发布的风险。
    • 容错性高
      • 在微服务架构下,当某一组件发生故障时,故障会被隔离在单个服务中。 通过限流、熔断等方式降低错误导致的危害,保障核心业务正常运行。
    • 可扩展性
      • 单块架构应用也可以实现横向扩展,就是将整个应用完整的复制到不同的节点。当应用的不同组件在扩展需求上存在差异时,微服务架构便体现出其灵活性,因为每个服务可以根据实际需求独立进行扩展。

2.常用的微服务框架

2.1.java

  • dubbo
    • 阿里开源的微服务框架,是一款高性能、轻量级的开源Java RPC框架,提供三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现
    • 目前已经正式进入Apache孵化器
    • 新版源码主页
    • 新版文档
    • 核心概念
      • Provider 暴露服务的服务提供方
      • Consumer 调用远程服务的服务消费方
      • Registry 服务注册与发现的注册中心
      • Monitor 统计服务的调用次数和调用时间的监控中心
  • springcloud
    • 一系列框架的有序集合。利用SpringBoot简化分布式系统的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。它将目前各家公司开发的比较成熟服务框架组合起来,通过SpringBoot风格再封装屏蔽了复杂的配置和实现原理,给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包
    • springcloud中文文档
    • 核心组件
      • Netflix Eureka 服务注册与发现
      • Netflix Ribbon 客户端负载均衡
      • Netflix Hystrix 服务熔断
      • Netflix Zuul 服务网关
      • Spring Cloud Config 分布式配置

2.2.python

  • nameko
    • 开源的微服务框架,基于python的RPC框架
    • nameko文档
    • 核心组件
      • rabbitmq 服务注册与发现
      • 待研究

你可能感兴趣的:(微服务,PingsSys微服务脚手架)