【从零开始学微服务】07.微服务常用的开发框架
大家好,欢迎来到万猫学社,跟我一起学,你也能成为微服务专家。
微服务架构该怎么落地?选用什么样的技术栈?所有的互联网公司都在积极尝试自己的微服务落地方案。
Spring Cloud
其中在Java领域最引人注目的就是 Spring Cloud 提供的方案了。
Spring Cloud 被称为构建分布式微服务系统的“全家桶”,它并不是某一门技术,而是一系列微服务解决方案或框架的有序集合。它将市面上成熟的、经过验证的微服务框架整合起来,并进行封装,最终为开发人员提供的一套简单易懂、易部署和易维护的分布式系统开发工具包。
Spring Cloud 是微服务架构下的一站式解决方案。Spring Cloud 专注于全局微服务的协调和治理工作。换句话说,Spring Cloud 相当于微服务的大管家,负责将 Spring Boot 开发的一个个微服务管理起来,并为它们提供配置管理、服务发现、断路器、路由、等等分布式场景下的服务能力。
Spring Cloud 的常用组件
Spring Cloud Consul:服务注册中心组件,包含服务注册与发现功能的实现。
Spring Cloud Config:配置管理组件,支持使用 Git 存储配置内容,实现应用配置的外部化存储,并支持在客户端对配置进行刷新、加密、解密等操作。
Spring Cloud LoadBalancer:客户端负载均衡组件。
Spring Cloud OpenFeign:声明式服务调用组件。
Spring Cloud Gateway:网关框架,提供了网关的基本功能,例如安全、监控/指标和限流等。
Spring Cloud Sleuth:分布式链路跟踪组件,能完美整合 Zipkin。
Spring Cloud Stream:消息中间件组件,集成了 Kafka 和 RabbitMQ 等消息中间件,实现了应用程序与消息中间件之间的隔离。
Spring Cloud Sentinel:容错管理组件,为微服务提供流量控制、熔断降级的功能。
Spring Cloud Alibaba
Spring Cloud Alibaba 是 Spring Cloud下的一个子项目,是阿里巴巴结合自身丰富的微服务实践而推出的解决方案,2018 年 7 月,Spring Cloud Alibaba 正式开源,并进入 Spring Cloud 孵化器中孵化。2019 年 7 月,Spring Cloud 官方宣布 Spring Cloud Alibaba 毕业,并将仓库迁移到 Alibaba Github OSS 下。
Spring Cloud Alibaba 吸收了 Spring Cloud Netflix 的核心架构思想,并进行了高性能改进。自 Spring Cloud Netflix 进入停更维护后,Spring Cloud Alibaba 逐渐代替它成为主流的微服务框架,是 Spring Cloud 第二代实现的主要组成部分。
Spring Cloud Alibaba 的常用组件
Dubbo:Apache Dubbo 是一款高性能 Java RPC 框架。
Nacos:一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
Sentinel:把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
Seata:阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案。
RocketMQ:一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的 消息发布与订阅服务。
Dubbo
Dubbo 是一款 RPC 服务开发框架,最初在 2008 年由 Alibaba 捐献开源,在 2017 年,Dubbo 正式捐献到 Apache 软件基金会并成为 Apache 顶级项目。
Dubbo用于解决微服务架构下的服务治理与通信问题,官方提供了 Java、Golang 等多语言 SDK 实现。使用 Dubbo 开发的微服务原生具备相互之间的远程地址发现与通信能力, 利用 Dubbo 提供的丰富服务治理特性,可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求。
作者: 万猫学社
欢迎关注微信公众号 :万猫学社