SpringCloud微服务(十三)

news/2025/1/11 15:19:00/

前言:此篇文章系本人学习过程中记录下来的笔记,里面难免会有不少欠缺的地方,诚心期待大家多多给予指教。

 往期目录回顾: 

  1. SpringCloud微服务(一)
  2. SpringCloud微服务(二)
  3. SpringCloud微服务(三)
  4. SpringCloud微服务(四)
  5. SpringCloud微服务(五)
  6. SpringCloud微服务(六)
  7. SpringCloud微服务(七)
  8. SpringCloud微服务(八)
  9. SpringCloud微服务(九)
  10. SpringCloud微服务(十)
  11. SpringCloud微服务(十一)
  12. SpringCloud微服务(十二)
  13. SpringCloud微服务(十三)

接上期内容:上期完成了阿里系的最后一个组件Seata的学习,自此SpringCloud官方原生组件和阿里系常用的SpringCloud的组件都已经全部学习


一、总结和回顾

1、回顾

回顾整个学习过程,就像是一场充满挑战与惊喜的探险。从最初接触SpirngCloud和微服务架构概念,到逐步深入各个组件的学习,每一个阶段都有着独特的体验。

1.1、服务注册与发现

Consul 或 Nacos 作为服务注册与发现组件,为微服务架构搭建起了沟通的桥梁,让各个服务都能够轻松找到彼此,协同工作。同时,他们还集中管理着各个服务的配置信息,如同微服务架构中的智慧大脑,它将配置从服务代码中分离出来,实现了配置的集中化、动态化管理,不仅提高了配置的管理效率,还增强了系统的灵活性和可维护性。他们的高可用性和自我保护机制,也确保了在复杂的分布式环境中,服务注册与发现的稳定性和可靠性。

1.2、负载均衡

LoadBalancer 则像一位智慧的调度员,负责客户端的负载均衡。它能够根据预设的策略,将请求合理地分配到各个服务实例上,大大提高了系统的吞吐量和资源利用率。无论是轮询、随机还是其他策略,它都能灵活应对,为系统的高效运行保驾护航。

1.3、服务调用

OpenFeign 以其简洁优雅的接口定义方式,让服务间的调用变得如同本地方法调用般轻松。它基于声明式的编程风格,隐藏了底层复杂的HTTP通信细节,使开发者能够更加专注于业务逻辑的实现,极大地提高了开发效率。

1.4、服务熔断和降级

Circuit Breaker 或 Sentinel 作为熔断器,在面对服务故障时发挥着至关重要的作用。它能够及时监测到服务的异常情况,并采取相应的降级、熔断等措施,防止故障的蔓延,保障整个系统的可用性和稳定性。就像电路中的保险丝一样,在关键时刻能够切断故障电流,保护系统的核心部分不受损害。

1.5、链路追踪

Micromenter Tracing + ZipKin的组合犹如侦探的放大镜和线索追踪器,为微服务建构提供了强大的链路追踪能力。在分布式系统中,服务间的调用关系错综复杂,如同一张无形的网。Micromenter Tracing负责在服务间传递链路信息,为每个请求生成唯一的追踪标识,并将其贯穿于整个请求链路中,而ZipKin则是一个可视化的链路追踪平台,它能够收集、存储和展示这些链路信息,让我们清晰地看到请求在各个服务间的流转路径、耗时等详细信息。通过链路追踪,我们可以快速地位系统中的性能瓶颈、故障点以及服务间的依赖关系,为系统的优化和故障排查提供了有力的支持。

1.6、服务网关

Gateway 服务网关犹如微服务架构的门户,是所有外部请求进入系统的统一入口。它承担着路由转发、请求过滤、安全认证等重要职责。路由转发可以根据请求路径、参数等将请求精准地分发到对应的服务实例上,实现服务的统一访问入口,简化客户端的调用复杂度。请求过滤则可以对请求进行预处理和后处理,例如添加请求头,进行权限校验、限流等操作,保障了系统的安全性和稳定性。

1.7、分布式事务

Seata 则是为分布式事务处理提供了强大的支持。在分布式系统中,事务的一致性一直是一个棘手的问题,Seata通过其独特的事务模式,如AT、TCC、Saga、XA,有效地解决了跨服务、跨数据库的事务协调问题,确保了数据的准确性和完整性。

2、总结

通过对这些组件的学习和实践,我们不仅掌握了构建微服务架构的核心技术基本用法,也对分布式系统的设计理念和原则有了一定的理解。每一个组件都像是一块拼图,只有将它们有机地组合在一起,才能构建出一个强大、稳定、高效的分布式系统。


二、代码分享

本次学习的代码已全部上传自github,下面分享一下如何将代码上传至github。

1、注册GitHub

上传代码之前必须拥有一个GitHub的账户,如何注册,自行百度。


2、新建仓库

2.1、登录账户

2.2、新建仓库


3、上传代码

1、Create Git Repository

将整个项目设为git项目,选中项目 -> VCS -> Create Git Repository


2、Add

添加文件


3、Commit


4、Push

然后登录GitHub账户就行

然后GitHub上就有代码了


5、Modify permissions

设置仓库的权限

改成public即可


三、结语

SpringCloud微服务的初级学习之旅将暂时告一段落,回首这一段充实而富有挑战的学习历程,心中满是感慨与收获。

然而,这只是一个阶段性的结束,很多组件的高阶用法以及原理尚未深入研究,而且微服务领域的技术仍在不断发展和演进。学习是一个永无止境的过程,未来还有更多的新知识、新技术等待我们去不断探索和掌握。

愿我们都能在技术的道路上越走越远,不断提升自己!


ps:努力到底,让持续学习成为贯穿一生的坚守。学习笔记持续更新中。。。。


http://www.ppmy.cn/news/1562266.html

相关文章

静态路由配置与调试——计算机网络实训day1

文章目录 操作前准备一、实验目的二、实验要求三、实验过程1、在R1和R2上配置设备名称。基本配置设备命名 2、在R1和R2上配置接口IP地址,并查看IP地址的配置情况。3、在R1和R2上配置静态路由,并查看路由表。静态路由缺省路由(默认路由&#x…

使用docker-compose安装Redis的主从+哨兵模式

必看 本文是一主二从一哨兵模式;其余的单机/集群/多哨兵模式的话,不在本文... 本文的环境主要是:应用app在本地,redis在云服务器上; 图解 图如下:这个图很重要; 之所以要这样画图&#xff0…

单例模式5种写法

单例模式是设计模式中最简单的一种,其目的是确保一个类只有一个实例,并提供一个全局访问点。以下是单例模式的五种常见写法: ### 一、懒汉式(线程不安全) java public class Singleton { private static Singlet…

51单片机——串口通信(重点)

1、通信 通信的方式可以分为多种,按照数据传送方式可分为串行通信和并行通信; 按照通信的数据同步方式,可分为异步通信和同步通信; 按照数据的传输方向又可分为单工、半双工和全双工通信 1.1 通信速率 衡量通信性能的一个非常…

软件功能测试方法有哪些?功能测试报告有什么作用?

在信息技术快速发展的今天,软件已成为企业运作中不可或缺的一部分。软件功能测试是确保软件产品质量的关键环节,通过对软件的各项功能进行系统的验证和评估,帮助企业识别潜在的风险,从而提升产品的可靠性和用户满意度。 软件功能…

Google Chrome 去除更新 Windows

这个很烦,经常弹出,又不想更新。 1.使用组策略编辑器 此方法适用于 Windows 系统且系统为专业版及以上版本,家庭版系统没有组策略功能。 按下Win R键,打开 “运行” 对话框,输入gpedit.msc并回车,打开组策…

使用Docker模拟PX4固件的无人机用于辅助地面站开发

前言 最近在制作鸿蒙无人机地面站,模仿的是QGroundControl,协议使用mavlink,记录一下本地模拟mavlink协议通过tcp/udp发送 废话不多说直接上命令 1.启动docker的桌面端 启动之后才能使用docker命令来创建容器 docker run --rm -it jonas…

深入Android架构(从线程到AIDL)_15 应用Android的UI框架02

3、 使用UI线程的MQ(Message Queue) // myView.java // ……… public class myView extends View {// ………Override protected void onDraw(Canvas canvas) {super.onDraw(canvas);// ………// canvas.drawRect(….);invalidate();} } 我们可以透过Message方式来触发UI线程…