0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

微服务架构技术栈选型解读

jf_ro2CN3Fa 2022-12-29 14:35 次阅读

一、微服务治理中心框架

Apache Dubbo分布式RPC框架

Spring Cloud Alibaba分布式应用服务开发一站式解决方案

Spring Cloud微服务开发和治理框架

Spring Cloud Tencent一站式微服务解决方案

Apache ServiceComb一站式开源微服务解决方案

二、持续集成CI/CD

三、微服务组件

阿里系

Spring Cloud&Dubbo系

四、容器

Kubernetes

Docker Swarm

五. 应用服务

六、测试

七、总结

目前微服务早已火遍大江南北,对于开发来说,我们时刻关注着技术的迭代更新,而项目采用什么技术栈选型落地是开发、产品都需要关注的事情,该篇文章主要分享一些目前普遍公司都在用的技术栈,快来分享一下你当前所在用的技术吧。

一、微服务治理中心框架

Apache Dubbo分布式RPC框架

Apache Dubbo是一款 RPC 服务开发框架,用于解决微服务架构下的服务治理与通信问题,官方提供了 Java、Golang 等多语言 SDK 实现。使用 Dubbo 开发的微服务原生具备相互之间的远程地址发现与通信能力, 利用 Dubbo 提供的丰富服务治理特性,可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求。Dubbo 被设计为高度可扩展,用户可以方便的实现流量拦截、选址的各种定制逻辑。

Spring Cloud Alibaba分布式应用服务开发一站式解决方案

Spring Cloud Alibaba致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。

依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。

此外,阿里云同时还提供了 Spring Cloud Alibaba 企业版 微服务解决方案,包括无侵入服务治理(全链路灰度,无损上下线,离群实例摘除等),企业级 Nacos 注册配置中心和企业级云原生网关等众多产品。

Spring Cloud Alibaba与Spring Cloud的关系

c4816756-86c7-11ed-bfe3-dac502259ad0.jpg

在 Spring Cloud 众多的实现方案中,Spring Cloud Alibaba 凭借其支持组件最多,方案最完善,在 Spring Cloud 生态家族中扮演了重要角色。Spring Cloud Alibaba 与 Spring Cloud 生态其他方案之间对比图如下:

c48f6dce-86c7-11ed-bfe3-dac502259ad0.jpg

主要功能

Sentinel

阿里巴巴开源产品,把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。

Nacos

阿里巴巴开源产品,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

RocketMQ

Apache RocketMQ 基于 Java 的高性能、高吞吐量的分布式消息和流计算平台。

Dubbo

Apache Dubbo 是一款高性能 Java RPC 框架。

Seata

阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案。

Alibaba Cloud OSS

阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。

Alibaba Cloud SchedulerX

阿里中间件团队开发的一款分布式任务调度产品,支持周期性的任务与固定时间点触发任务。

Alibaba Cloud SMS

覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。

Spring Cloud微服务开发和治理框架

Spring Cloud为开发者提供了工具来快速构建分布式系统中的一些常见模式(例如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话,集群状态)。分布式系统的协调导致了样板模式,使用 Spring Cloud 开发人员可以快速建立实现这些模式的服务和应用程序

Spring Cloud架构图

c4aafa30-86c7-11ed-bfe3-dac502259ad0.jpg

Spring Cloud Tencent一站式微服务解决方案

Spring Cloud Tencent是腾讯开源的一站式微服务解决方案。Spring Cloud Tencent 实现了 Spring Cloud 标准微服务 SPI,开发者可以基于 Spring Cloud Tencent 快速开发 Spring Cloud 微服务架构应用。Spring Cloud Tencent 的核心依托腾讯开源的一站式服务发现与治理平台 Polarismesh ,实现各种分布式微服务场景。

Spring Cloud Tencent架构图

c4d7171e-86c7-11ed-bfe3-dac502259ad0.jpg

Apache ServiceComb一站式开源微服务解决方案

Apache ServiceComb架构图

Apache ServiceComb 提供了融合开源生态的一站式微服务开源解决方案,致力于帮助企业、用户和开发者将应用轻松微服务化上云,实现对微服务应用的高效运维管理。

c4e4f2b2-86c7-11ed-bfe3-dac502259ad0.jpg

Apache ServiceComb项目介绍:http://servicecomb.incubator.apache.org/cn/docs/introduction

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

项目地址:https://github.com/YunaiV/ruoyi-vue-pro

视频教程:https://doc.iocoder.cn/video/

二、持续集成CI/CD

CI/CD 配置中心
Jenkins、Docker Hub、Maven、Nexus、CI/CD Apollo

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

项目地址:https://github.com/YunaiV/yudao-cloud

视频教程:https://doc.iocoder.cn/video/

三、微服务组件

阿里系

选项 组件
服务调用方式 OpenFeign
服务注册 Nacos Discovery
API网关 Spring Cloud Gateway
熔断限流 Sentinel
配置中心 Nacos Config
消息队列 RocketMQ
分布式事务 Seata
分布式服务追踪 Spring Cloud Sleuth
监控 Spring Cloud Admin
短信服务 Alibaba Cloud SMS

Spring Cloud&Dubbo系

选项 组件
服务调用方式 feign
服务注册 Eurake、Zookeeper
API网关 Spring Cloud Gateway、Zuul
熔断限流 Hystrix
配置中心 Apollo、Spring Cloud Config
分布式服务追踪 Spring Cloud Sleuth
监控 Spring Cloud Admin
消息总线 Spring Cloud Bus

四、容器

选型如下表:

选项 首选
容器 Docker
容器编排管理 kubernetes(首选推荐)、Docker Swarm、Apache Mesos

Kubernetes

Kubernetes也称为 K8s,是一个开源系统,用于自动部署、扩展和管理容器化应用程序,Kubernetes是一个可移植、可扩展的开源平台,用于管理容器化工作负载和服务,有助于声明式配置和自动化。它拥有庞大且快速发展的生态系统。Kubernetes 服务、支持和工具广泛可用。Kubernetes 结合了Google 超过 15 年大规模运行生产工作负载的经验以及来自社区的最佳创意和实践。什么是kebernetes?

Docker Swarm

Docker Swarm, Docker的原生集群系统。Docker Swarm 模式内置于 Docker 引擎中,用于本地管理称为 swarm 的Docker引擎集群。使用 Docker CLI 创建 swarm,将应用程序服务部署到 swarm,并管理 swarm 行为。这是 Docker 的第一个容器编排项目。

Kebernetes与Docker Swarm对比

c501144c-86c7-11ed-bfe3-dac502259ad0.jpgDocker Swarm与K8s对比

五. 应用服务

选型如下表:

选项 首选 备选
消息队列 阿里云RabbitMQ服务
广播式消息队列 阿里云Kafka服务
关系型数据库 阿里云RDS MySQL服务
分布式关系型数据库服务 Sharding-JDBC
非关系型数据库 阿里云Mongo服务
缓存 阿里云Redis服务
文件服务器 阿里云OSS服务
短信 阿里云短信服务
负载均衡 阿里云SLB Nginx
分布式定时任务框架 XXL-Job Elastic-Job
日志框架 ELK
数据访问 Mybatis Plus

六、测试

选型如下表:

选项 首选
UI Seleniu(少)
单元测试 JUnit(中)
接口和性能测试 JMeter(多)

七、总结

该篇文章主要是介绍当前比较流行的一些微服务技术栈以及常用的应用服务,仅仅是个人的一些看法,后面还会持续更新该篇文章内容,目前你公司常用的微服务架构有哪些呢?

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RPC
    RPC
    +关注

    关注

    0

    文章

    110

    浏览量

    11477
  • spring
    +关注

    关注

    0

    文章

    335

    浏览量

    14266
  • 阿里云
    +关注

    关注

    3

    文章

    924

    浏览量

    42795
  • 微服务
    +关注

    关注

    0

    文章

    126

    浏览量

    7303

原文标题:聊聊最新微服务架构技术栈选型

文章出处:【微信号:芋道源码,微信公众号:芋道源码】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    微服务架构和CQRS架构基本概念介绍

    微服务架构现在很热,到处可以看到各大互联网公司的微服务实践的分享总结。但是,我今天的分享和微服务没有关系,希望可以带给大家一些新的东西。如果一定要说
    发表于 05-22 09:03

    微服务与容器技术实践

    基于微服务架构技术实践(点击下载演讲PPT) 普元信息主任架构师顾伟在演讲中,分享了他们对微服务架构
    发表于 10-10 10:23 1次下载
    <b class='flag-5'>微服务</b>与容器<b class='flag-5'>技术</b>实践

    微服务架构与实践摘要

    本文主要类容是对微服务架构与实践摘要解析。微服务架构中的 “微” 体现了其核心要素,即服务的微型化,就是每个
    的头像 发表于 02-07 16:57 6044次阅读
    <b class='flag-5'>微服务</b><b class='flag-5'>架构</b>与实践摘要

    微服务优势_微服务架构的好处与不足

    微服务是用一组小服务的方式来构建一个应用,服务独立运行在不同的进程中,服务之间通过轻量的通讯机制(如RESTful接口)来交互,并且服务可以
    发表于 02-23 11:24 4362次阅读

    什么是微服务架构_微服务架构的优缺点及应用

    什么是微服务架构 简单地说,微服务是系统架构上的一种设计风格, 它的主旨是将一个原本独立的系统拆分成多个小型服务,这些小型
    的头像 发表于 06-02 10:03 1.7w次阅读
    什么是<b class='flag-5'>微服务</b><b class='flag-5'>架构</b>_<b class='flag-5'>微服务</b><b class='flag-5'>架构</b>的优缺点及应用

    SOA架构微服务架构的主要区别

    SOA和微服务架构一个层面的东西,而对于ESB和微服务网关是一个层面的东西,一个谈到是架构风格和方法,一个谈的是实现工具或组件。SOA架构
    的头像 发表于 05-04 14:11 5701次阅读
    SOA<b class='flag-5'>架构</b>和<b class='flag-5'>微服务</b><b class='flag-5'>架构</b>的主要区别

    微服务架构有哪些_微服务架构设计模式

    小伙伴们知道常用的微服务架构框架有哪些吗?上回我们介绍了一些常用的微服务架构设计模式,这次我们就来了解一下一些常用的微服务
    的头像 发表于 05-17 17:06 2.9w次阅读
    <b class='flag-5'>微服务</b><b class='flag-5'>架构</b>有哪些_<b class='flag-5'>微服务</b><b class='flag-5'>架构</b>设计模式

    微服务架构的特点_微服务架构适用场景

     微服务架构是一项在云中部署应用和服务的新技术
    的头像 发表于 05-17 17:28 4951次阅读

    微服务软件架构应用研究综述

    自2014年,微服务架构概念经Martin Flower提出以来,受到广泛关注,为更好了解微服务架构风格,本文首先分析、梳理了软件架构的发展
    发表于 05-26 09:26 2次下载

    微服务架构中的服务之间如何互相调用呢?

    微服务架构中,需要调用很多服务才能完成一项功能。服务之间如何互相调用就变成微服务架构中的一个关
    的头像 发表于 01-31 09:46 2092次阅读

    什么是微服务架构

    在Medium,我们的技术堆栈始于2012年的单片Node.js应用程序。我们已经构建了几个卫星服务,但我们还没有制定一个系统地采用微服务架构的策略。随着系统变得越来越复杂并且团队不断
    的头像 发表于 02-24 11:15 1273次阅读
    什么是<b class='flag-5'>微服务</b><b class='flag-5'>架构</b>?

    从分层架构微服务架构介绍(五)

    本文要介绍的是 服务架构 (Service-Based Architecture, SBA )。 SBA 可以看成是单体架构微服务架构
    的头像 发表于 05-10 17:02 738次阅读
    从分层<b class='flag-5'>架构</b>到<b class='flag-5'>微服务</b><b class='flag-5'>架构</b>介绍(五)

    springcloud微服务架构

    Spring Cloud是一个开源的微服务架构框架,它提供了一系列工具和组件,用于构建和管理分布式系统中的微服务。它基于Spring框架,旨在通过简化开发过程和降低系统复杂性来帮助开发人员构建弹性
    的头像 发表于 11-23 09:24 975次阅读

    docker微服务架构实战

    随着云计算和容器化技术的快速发展,微服务架构在软件开发领域中变得越来越流行。微服务架构将一个大型的软件应用拆分成多个小型的、独立部署的
    的头像 发表于 11-23 09:26 545次阅读

    设计微服务架构的原则

    微服务是一种软件架构策略,有利于改善整体性能和可扩展性。你可能会想,我的团队需不需要采用微服务,设计微服务架构有哪些原则?本文会给你一些灵感
    的头像 发表于 11-26 08:05 471次阅读
    设计<b class='flag-5'>微服务</b><b class='flag-5'>架构</b>的原则