【微服务】------微服务架构技术栈

news2024/11/27 14:37:24

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

一、微服务治理中心框架

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的关系

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

主要功能

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架构图

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

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

Spring Cloud Tencent架构图

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

Apache ServiceComb架构图

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

Apache ServiceComb项目介绍传送门

二、持续集成CI/CD

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

三、微服务组件

阿里系

选项组件
服务调用方式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对比

Docker Swarm与K8s对比.png

五. 应用服务

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

六、测试

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

七、总结

该篇文章主要是介绍当前比较流行的一些微服务技术栈以及常用的应用服务,仅仅是个人的一些看法,后面还会持续更新该篇文章内容,目前你公司常用的微服务架构有哪些呢?可以在评论区留言,我是xiaoli8748👨‍🎓,我们下期见!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1582161.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024 Flutter iOS 隐私清单上线,5 月 1 号最后期限,你收到 「ITMS-91053」 了吗?

2023 年底的时候,我就发过了 《Flutter 上了 Apple 第三方重大列表,2024 春季 iOS 的隐私清单究竟是什么?》 相关内容,如果你还对隐私清单等相关要求不了解,建议先看看前文。 如果你已经有相关了解,并且近…

【LAMMPS学习】七、加速性能(4)加速器包

7. 加速性能 7.1.基准测试 7.2.测试性能 7.3.通用技巧 7.4.加速器包 LAMMPS 中添加了各种pair_style、fixes、compute 和其他命令的加速版本,其运行速度通常比标准非加速版本更快。有些需要您的系统上存在适当的硬件,例如GPU 或 Intel Xeon Phi 协处…

数据库的负载均衡,高可用实验

一 高可用负载均衡集群数据库实验 1.实验拓扑图 2.实验准备(同一LAN区段)(ntp DNS) 客户端:IP:192.168.1.5 下载:MariaDB 负载均衡器:IP:192.168.1.1 下载:keepalived ipvsadm I…

适用于 PC-3000 Portable III 的新型 SAS 适配器, 让数据恢复踏足更广!

天津鸿萌科贸发展有限公司从事数据安全业务20余年,在数据恢复、数据取证、数据备份等领域有丰富的案例经验、前沿专业技术及良好的行业口碑。同时,公司面向取证机构及数据恢复同行,提供数据恢复实验室建设方案,包含数据恢复硬件设…

开源代码分享(19)-配电网孤岛优化划分方法

参考文献: DING Tao, LIN Yanling, LI Gengfeng, et al. A new model for resilient distribution systems by microgrids formation[J]. IEEE Transactions on Power Systems, 2017, 32(5): 4145-4147. 1.基本原理 通过分布式电源(DGs)形…

车载平板丨车载数据终端丨车载平板电脑丨农机使用

车载加固终端通常是为了在车辆行驶过程中保证通讯信号稳定和数据传输安全而设计的设备。在农机上使用车载加固终端,可以提高农机在野外作业时的通讯和数据传输质量,增强对农机的控制能力和运行安全性。以下是使用车载加固终端在农机上实现通讯加固的步骤…

Thingsboard PE智慧运维仪表板实例(二)【智慧排口截污实例】

ThingsBoard 的仪表板是一个用于可视化和监控物联网数据的重要组件。 它具有以下特点: 1. 可定制性:用户可以根据自己的需求创建各种类型的图表、表格和指标。 2. 数据可视化:以直观的方式展示设备数据,帮助用户快速了解系统状态。 3. 实时更新:实时反映设备的最新数据…

二叉树的前序遍历、中序遍历、后序遍历

二叉树的前序遍历、中序遍历、后序遍历 一、递归算法的三个要素二、144. 二叉树的前序遍历三、94. 二叉树的中序遍历四、145. 二叉树的后序遍历 一、递归算法的三个要素 1、确定递归函数的参数和返回值: 确定哪些参数是递归的过程中需要处理的,那么就在…

报错:AttributeError: module ‘PIL.Image‘ has no attribute ‘ANTIALIAS‘

报错内容:AttributeError: module PIL.Image has no attribute ANTIALIAS 问题所在: 使用PIL读取图像后对其进行Resize时由于PIL 版本问题出现AttributeError: module PIL.Image has no attribute ANTIALIAS 具体的代码如下 resized_img img.resize(ta…

交换机与队列的介绍

1.流程 首先先介绍一个简单的一个消息推送到接收的流程,提供一个简单的图 黄色的圈圈就是我们的消息推送服务,将消息推送到 中间方框里面也就是 rabbitMq的服务器,然后经过服务器里面的交换机、队列等各种关系(后面会详细讲&…

【python】python的选择语句的三个题目

1.乘坐飞机时,有些航班没有行李额度,当乘客的行李小于等于20公斤时,按每公斤1.68元收费;大于20公斤时,按每公斤1.98元收费,编写程序计算收费情况(保留两位小数) air_bagfloat(input…

制药领域的技术革命:Profinet转CanOpen网关大放异彩

在科技飞速发展的今天,制药行业正采用更先进的配置方式,以提升生产效率。对于制药行业来说,生产环节中涉及到的各种设备、系统和流程需要高效协同,而这正是Profinet转CanOpen网关所能提供的价值所在。Profinet转CanOpen网关作为一…

X服务器远程连接问题解决:Bad displayname ““‘或Missing X server or $DISPLAY

X服务器远程连接问题 报错1 ImportError: this platform is not supported: (failed to acquire X connection: Bad displayname "", DisplayNameError()) Try one of the following resolutions: * Please make surethat you have an X server running, and that …

反射(Reflection) --Java学习笔记

反射 反射就是:加载类,并允许以编程的方式解剖类中的各种成分(成员变量、方法、构造器等) 反射学什么? 学习获取类的信息、操作它们 反射第一步:加载类,获取类的字节码:Class对象获取类的构造器:Constructor对象获取类的成员变量:Field对象获取类的成…

利用vivid包,点亮机器学习模型图:惊艳的可视化新体验

一、引言 随着大数据时代的到来,机器学习技术在各个领域得到了广泛的应用。然而,由于机器学习模型的复杂性和抽象性,理解和解释这些模型往往是一项挑战。因此,机器学习可视化成为了连接数据和模型理解之间的桥梁,具有至…

DP:子数组模型

一、最大子数组和 . - 力扣&#xff08;LeetCode&#xff09; 二、环形子数组的最大和 . - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int maxSubarraySumCircular(vector<int>& nums) {//动态规划思想解决 //环形数组问题&#xff0c;尝试转…

AIGC实战——StyleGAN(Style-Based Generative Adversarial Network)

AIGC实战——StyleGAN 0. 前言1. StyleGAN1.1 映射网络1.2 合成网络1.3 自适应实例归一化层1.4 风格混合1.5 随机变化 2. StyleGAN 生成样本3. StyleGAN23.1 权重调制与解调3.2 路径长度正则化3.3 非渐进式增长 4. StyleGAN2 生成样本小结系列链接 0. 前言 StyleGAN (Style-Ba…

STM32F4 IAP跳转APP问题及STM32基于Ymodem协议IAP升级笔记

STM32F4 IAP 跳转 APP问题 ST官网IAP例程Chapter1 STM32F4 IAP 跳转 APP问题1. 概念2. 程序2.1 Bootloader 程序 问题现象2.2. APP程序 3. 代码4. 其他问题 Chapter2 STM32-IAP基本原理及应用 | ICP、IAP程序下载流程 | 程序执行流程 | 配置IAP到STM32F4xxxChapter3 STM32基于Y…

linux-docker安装nginx

1.拉取镜像&#xff1a; docker pull nginx2.创建挂在路径&#xff1a; mkdir -p /usr/local/nginx/conf mkdir -p /usr/local/nginx/logs mkdir -p /usr/local/nginx/www mkdir -p /usr/local/nginx/conf.d 3.启动镜像:为了拿到位置文件&#xff0c;先启动下 docker run -…

本地项目提交 Github

工具 GitIdeaGithub 账号 步骤 使用注册好的 Github 账号&#xff0c;登陆 Github&#xff1b; 创建 Repositories (存储库)&#xff0c;注意填写图上的红框标注&#xff1b; 创建完成之后&#xff0c;找到存储库的 ssh 地址或 https 地址&#xff0c;这取决于你自己的配置…