微服务杂谈

news2024/11/18 11:32:11

几个概念


        还是第一次听说Spring Cloud Alibaba ,真是孤陋寡闻了,以前只知道 SpringCloud 是为了搭建微服务的,spring boot 则是快速创建一个项目,也可以是一个微服务 。那么SpringCloud 和 Spring boot 有什么区别呢?SpringCloud是管路整个服务上的各个微服务,会依赖spring boot ,但是Spring boot也可以是普通的项目,也可以是微服务 所以不一定需要依赖Spring cloud 。

        那再来说一下Spring Cloud Alibaba和 SpringCloud 关系,Spring Cloud Alibaba 是 SpringCloud 的一个子集。Spring Cloud主要依赖于Netflix OSS作为其核心组件,然而Netflix OSS的维护已经逐渐减少,为了弥补这一缺失并跟进最新的技术发展,阿里巴巴提供了Spring Cloud Alibaba。

Spring Cloud Alibaba 组件有哪些?

Nacos:作为注册中心和配置中心,为微服务应用程序的服务发现和动态配置提供了一种更现代的解决方案。

Sentinel:用于流量控制、熔断降级和系统负载保护,使得应用程序能够在面对复杂的网络环境时保持稳定。

RocketMQ:作为分布式消息队列,用于在微服务之间实现异步通信和解耦。

Dubbo:作为高性能的RPC框架,支持跨服务之间的远程调用。

Seata : 分布式事务解决方案

除了上面这些之外,使用 Spring Cloud Alibaba 的时候一般会搭配下面这些 Spring Cloud 组件一起使用:

  • OpenFeign:轻量级 RESTful 的 HTTP 服务客户端,用于替代已经进入停更维护状态的 Feign(Netflix Feign)
  • Gateway:用于网关服务,实现请求的转发和路由。
  • Ribbon:用于客户端负载均衡,将请求分发给不同的微服务实例。

        配置文件: 

        <!-- Dubbo Spring Cloud Starter -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-dubbo</artifactId>
        </dependency>

     

Spring CloudAlibaba 总结
1. 背景与由来:Spring Cloud Alibaba是由阿里巴巴推出的开源项目,源于阿里巴巴在构建大规模分布式系统时的实际需求。它整合了阿里巴巴自己的核心技术和Spring Cloud生态系统,提供了一个完整的微服务解决方案。

2. 功能丰富:Spring Cloud Alibaba提供了多个核心组件,包括Nacos(服务注册与发现)、Sentinel(流量控制、熔断降级)、RocketMQ(分布式消息中间件)、Dubbo(远程服务调用)等。这些组件为构建微服务应用提供了必要的基础设施和支持。

3. 与Spring Cloud的整合:作为Spring Cloud生态系统的一部分,Spring Cloud Alibaba与Spring Cloud的其他组件紧密结合,使得开发者可以在现有的Spring Cloud技术栈上无缝地集成和扩展应用。

4. 国内应用普及:随着国内企业对微服务架构的认知不断提升,Spring Cloud Alibaba作为一个专注于微服务的框架,逐渐得到了广泛应用。阿里巴巴的背景和技术实力也加速了Spring Cloud Alibaba在国内的普及。

5. 优秀的社区支持:Spring Cloud Alibaba拥有一个活跃的开源社区,吸引了许多国内开发者积极参与到项目的开发和贡献中。社区的支持为项目的不断改进和完善提供了有力的支持。


组件nacos:

配置文件:

        <!-- Spring Cloud Nacos Service Discovery -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

1. nacos简介

   nacos是阿里巴巴开源的动态服务发现、配置和服务管理组件。nacos的核心功能主要有:

  • 服务注册:服务提供方向nacos注册服务
  • 服务发现:服务消费方从nacos获取到服务提供方的调用信息
  • 配置管理:作为配置中心,统一管理配置文件。使得配置文件可以动态修改而无需重启服务

 2. nacos服务注册原理


1、每个服务提供者都会引入nacos-client的依赖,并且需要配置nacos的服务地址,当服务提供者启动的时候,nacos-client就会将服务提供者注册到nacos服务上去

2、之后服务提供者会定期(默认5s一次)向nacos发送心跳包请求(包含信息:服务名,ip,端口,权重,集群名等),告诉nacos服务“我还活着”,nacos收到这个心跳包之后就会在服务列表中找到这个服务,并将状态设置为健康,返回心跳间隔信息给到nacos-client。当超过一定时间(默认15s)没有收到服务提供者的心跳包后,就会更新其状态为不健康。如果30s没有收到服务提供者的心跳包,就会将其从服务列表中剔除。所以可以看到nacos认为服务不健康后并不会马上将其剔除。

3、服务调用者(如网关)会定期(默认10s一次)向nacos获取服务列表,并且会缓存到本地,然后调用时就是从本地的服务列表调用的

springcloud:注册中心、配置中心组件nacos详解(四)_nacos-client-CSDN博客

3. nacos的使用

Spring Cloud Nacos 服务注册与发现_spring.cloud.nacos.discovery.service-CSDN博客


组件dubbo:

微服务之间部署在不同的物理机器上那怎么通信呢,rpc 远程调用服务,dubbo的功能是能两两通信,dubbo组件中的zookerper或者 nacos 是服务的注册和发现。zookeper或者 nacos就好比一个“淘宝”平台,让买家能够发现卖家,买家买(通信)东西,就是通过dubbo。

dubbo可以替换sping cloud哪些组件?

Dubbo主要用于服务之间的远程调用和通信。虽然Dubbo本身并不是Spring Cloud的一部分,但它可以与Spring框架进行集成,并在某些场景下替换Spring Cloud中的某些组件或功能。具体来说,Dubbo可以替换或补充Spring Cloud中的以下组件或功能:

服务注册与发现:Dubbo使用自身的注册中心组件(如Zookeeper、Nacos、Etcd等),可以替换Spring Cloud中的Eureka、Consul等服务注册与发现组件。Dubbo的注册中心用于维护服务提供者和消费者的信息,实现服务的自动注册、发现和管理。

远程调用:Dubbo提供了基于RPC的远程调用机制,可以替换Spring Cloud中基于HTTP的远程调用方式(如使用RestTemplate或Feign)。Dubbo的RPC调用更加轻量级和高效,适用于大规模、高并发的服务调用场景。

负载均衡:Dubbo内置了多种负载均衡策略(如随机、轮询、一致性哈希等),可以替换或补充Spring Cloud中的负载均衡组件。Dubbo的负载均衡机制能够根据服务提供者的性能和负载情况,智能地分配请求,提高系统的吞吐量和稳定性。

虽然Dubbo可以在某些方面替换Spring Cloud的组件,但两者在设计和定位上存在差异。Dubbo更专注于服务之间的远程调用和通信,而Spring Cloud则是一个更完整的微服务解决方案,提供了服务治理、配置管理、熔断降级、智能路由等一系列功能.

有一个疑问?不是还有一个nacos么 ,为什么不用nacos 还再引出一个zookerper呢 ??

dubbo作为国内一款主流的分布式系统,支持的注册中心有zookeeper、nacos和redis等第三方中间件,同时也支持Simple和Multicast的方式。zk和nacos可能是最常使用的方式,到底谁更胜一筹呢?

nacos 和 zookeeper 

一场事故告诉你zookeeper和nacos谁更适合做注册中心_为什么用nacos不用zk-CSDN博客

组件gateway:

1.k8s kvm docker 

Docker、Kubernetes(K8s)和KVM辨析_kvm docker-CSDN博客

2. 微服务的缩容

        减少实例数

3. 微服务常见问题

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

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

相关文章

dirty pages , swapiness 查看SWAP占用进程

文章说了这么多的意思 就是不要过度分配不用的内存。虽然脏块不会写入swap&#xff0c;但是占了物理内存&#xff0c;浪费空间&#xff0c;可能导致进行了很多不必要的交换&#xff08;虽然判断很少要进swap&#xff0c;判断要不要也要时间。。。&#xff09;。 To verify whic…

(机器学习必看视频)机器学习-吴恩达笔记汇总

最近将吴恩达老师在网易课程上的机器学习视频看了第二遍&#xff0c;同时整理了一下笔记&#xff0c;仅供学习实用&#xff0c;也放到了Github。主要是参考了下面几位大佬的书籍和作品&#xff0c;表示感谢&#xff01; 李航《统计学习方法》周志华 《机器学习》黄海广博士 ima…

NAS黑群晖7.21折腾笔记

黑群晖引导制作 https://post.smzdm.com/p/a96d62xe/ 黑群晖基本使用教程 https://www.bilibili.com/video/BV1A3411f7WK/?spm_id_from333.337.search-card.all.click 重点&#xff1a; 1&#xff0c;存储管理器 --创建存储池 RAID类型选择&#xff1a; 2&#xff0c…

【2024.08】图模互补:知识图谱与大模型融合综述-笔记

阅读目的&#xff1a;假设已有一个知识图谱&#xff0c;如何利用图谱增强模型的问答&#xff0c;如何检索知识图谱、知识图谱与模型的文本如何相互交互、如何利用知识图谱增强模型回答的可解释性。 从综述中抽取感兴趣的论文进一步阅读。 来源&#xff1a;图模互补&#xff1…

天下苦英伟达久矣!PyTorch官方免CUDA加速推理,Triton时代要来?

在做大语言模型(LLM)的训练、微调和推理时,使用英伟达的 GPU 和 CUDA 是常见的做法。在更大的机器学习编程与计算范畴,同样严重依赖 CUDA,使用它加速的机器学习模型可以实现更大的性能提升。 虽然 CUDA 在加速计算领域占据主导地位,并成为英伟达重要的护城河之一。但其他…

AV1 Bitstream Decoding Process Specification--[4]:语法结构

原文地址&#xff1a;https://aomediacodec.github.io/av1-spec/av1-spec.pdf没有梯子的下载地址&#xff1a;AV1 Bitstream & Decoding Process Specification摘要&#xff1a;这份文档定义了开放媒体联盟&#xff08;Alliance for Open Media&#xff09;AV1视频编解码器…

动态规划:汉诺塔问题|循环汉诺塔

目录 1. 汉诺塔游戏简介 2.算法原理 3.循环汉诺塔 1. 汉诺塔游戏简介 汉诺塔游戏是一个经典的数学智力游戏&#xff0c;其目标是将塔上不同大小的圆盘全部移动到另一个塔上&#xff0c;且在移动过程中必须遵守以下规则&#xff1a; 每次只能移动一个圆盘较大的圆盘不能放在…

linux cmake版本升级教程(Centos7)

有时候,当前系统的cmake版本,并一定能满足编译要求,所以需要进行升级到高于某个版本才能正常编译。本章教程,主要在centos7上进行升级cmake版本。 一、查看当前的cmake版本 cmake --version二、下载指定版本的cmake wget https://github.com/Kitware/CMake/releases/down…

2.2 vc-align源码分析 -- ant-design-vue系列

vc-align源码分析 源码地址&#xff1a;https://github.com/vueComponent/ant-design-vue/tree/main/components/vc-align 1 基础代码 1.1 名词约定 需要对齐的节点叫source&#xff0c;对齐的目标叫target。 1.2 props 提供了两个参数&#xff1a; align&#xff1a;对…

华为ensp中vlan与静态路由技术的实现

vlan 同一网段的设备&#xff0c;可以互通&#xff1b; 虚拟局域网&#xff1a;将局域网从逻辑上划分为多个局域网&#xff0c;不同通过vlan编号区分&#xff1b; 实现网络隔离。提高了网络安全性&#xff1b; vlan编号为12位&#xff1b; 范围1-4094可以用来配置 默认处于…

3.2 Upload源码分析 -- ant-design-vue系列

Upload源码分析 – ant-design-vue系列 源码地址&#xff1a;https://github.com/vueComponent/ant-design-vue/blob/main/components/upload/Upload.tsx 1 概述 本篇是对Upload组件的分析&#xff0c;这个组件调用了vc-upload&#xff0c;是对vc-upload的封装。 作用包括&…

【【通信协议之ICMP协议】】

【【通信协议之ICMP协议】】 下面先展示出ICMP协议的数据格式 用户数据打包在 ICMP 协议中&#xff0c;ICMP 协议又是基于 IP 协议之上的&#xff0c;IP 协议又是走 MAC 层发送的&#xff0c;即从包含关系来说&#xff1a;MAC 帧中的数据段为 IP 数据报&#xff0c;IP 报文中…

LCSS—最长回文子序列

思路分析 关于”回文串“的问题&#xff0c;是面试中常见的&#xff0c;本文提升难度&#xff0c;讲一讲”最长回文子序列“问题&#xff0c;题目很好理解&#xff1a; 输入一个字符串 s&#xff0c;请找出 s 中的最长回文子序列长度。 比如输入 s"aecda"&#xff0c…

【数据结构】字符串与JSON字符串、JSON字符串及相应数据结构(如对象与数组)之间的相互转换

前言&#xff1a; 下面打印日志用的是FastJSON依赖库中的 Log4j2。依赖&#xff1a; <!-- Alibaba Fastjson --> <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.80</version> …

prometheus 集成 grafana 保姆级别安装部署

前言 本文 grafana 展示效果只需要 prometheus node_exporter grafana 其他的选择安装 环境和版本号 系统: CentOS 7.9 prometheus: 2.54.1 pushgateway: 1.9.0 node_exporter: 1.8.2 alertmanager: 0.27.0 grafana:11.2.0 官网:https://prometheus.io/ 下载地址:h…

算法基础-二分查找

左闭右闭 [ left&#xff0c;right ] [1,1]可以 while( left < right ) if( a[mid] > target ) right mid - 1 else if( a[mid] < target ) left mid 1 左闭右开 [ left&#xff0c;right ) …

工业平板电脑轻薄与耐用并存

在现代工业环境中&#xff0c;工业平板电脑的应用越来越广泛。它们不仅需要具备轻薄的设计以便于携带和操作&#xff0c;还必须具备耐用性以应对恶劣的工作条件。 一、工业平板电脑的定义与特点 工业平板电脑是一种专为工业环境设计的计算设备&#xff0c;通常具备防尘、防水、…

MySQL分页查询(DQL)

因DataGrip我的激活到期&#xff0c;也没太多精力去破解&#xff0c;最后换了Navicat&#xff0c;实际上操作是一样的&#xff0c;不变。 先看我的表数据&#xff0c;以我的数据作为例子 基本语法 select 字段列表 from 表名 起始索引&#xff0c;查询记录数。 1.查询第1页员…

[数据集][目标检测]车油口挡板开关闭合检测数据集VOC+YOLO格式138张2类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;138 标注数量(xml文件个数)&#xff1a;138 标注数量(txt文件个数)&#xff1a;138 标注类别…

期权组合策略有什么风险?期权组合策略是什么?

今天期权懂带你了解期权组合策略有什么风险&#xff1f;期权组合策略是什么&#xff1f;期权组合策略是通过结合不同期权合约&#xff08;如看涨期权和看跌期权&#xff09;&#xff0c;以及标的资产&#xff08;如股票&#xff09;来实现特定投资目标的策略。 期权组合策略市…