当前位置: 首页 > news >正文

spring cloud

spring cloud 分享

  • springboot:可以说是spring cloud的基础,是springMVC框架的简化,约定大于配置(在使用上、非功能上的简化)

    可以说每个MPO Digital api就是springboot project(springboot项目)

  • spring cloud:将这些springboot的项目串起来,联合起立,每个springboot的项目启动的实例都是一个服务,很多的微服务组成了对外服务的整体

HSBC的MPO Digital的项目严格上说不是微服务项目,虽然拆分得很细,但是还是缺少挺多的微服务的思想,也没使用太多微服务的组件

微服务技术栈

单体架构(目前BPM用的就是单体)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

单体架构的优势:

  • 开发简单
  • 部署简单

缺点:

  • 耦合度高不适合大团队一起开发
  • 编译部署和所需要的时间随着不断臃肿变得难以接受
  • 只能整体扩容,不能单独为某个模块扩容

分布式架构带来的挑战

  • 会话问题
  • 日志查看问题
  • 服务调用
  • 性能监控

spring cloud的组件

  • 注册中心

  • 配置中心

  • 网关

  • 负载均衡

  • 链路追踪

  • 分布式事务

  • 限流

  • 熔断和降级

Spring cloud各组件的作用

  • 注册中心

    • 作用:接受注册,管理微服务,健康检查等
    • 选型:Eureka、Nacos
    • HSBC:Digital没有注册中心
    gms-iccm ---------call------> application-repository
    (http://xxxxxx.local:80/aaa/bbb)xxxxxx.local:80 配置成变量,不同环境有不同的值gms-iccm ---------call------> application-repository 实例1application-repository 实例2(服务中心方式可以通过服务名调用,如http://application-repo-service/aaa/bbb,Ribbon负载均衡帮转换)
    @Feign
    

    在这里插入图片描述

补充:CAP理论,Eureka的高可用

  • 配置中心

    • 作用:保存、管理配置
    • 选型:Spring Cloud Config,Nacos,Apollo
    • HSBC:自己做了一套配置中心,单节点,90%都是API对另一个API的调用URL,无法热更新配置。能更新配置的功能很方便很重要。
  • 网关

    • 作用:统一入口,鉴权,日志,限流…
    • 选型:Zuul 1.x(阻塞式IO),Zuul 2.x,Spring Cloud Gateway(NIO,响应式编程,拦截器和普通的不太一样)
    • HSBC:Spring Cloud Gateway
    • 为什么有Kong了还需要网关(router api)?
  • 负载均衡

    • 作用:避免单节点压力过大。服务端、客户端负载均衡
    • 选型和策略:Ribbon,轮询,权重,随机…
    • HSBC:用的是k8s带的负载均衡策略
  • 分布式事务

    • 作用:保证分布式系统下类似本地事务一样的,让各个操作成为一个整体,同时成功,同时失败。
    • 选型:理论2PC,TCC,最大努力通知(支付宝),可靠消息最终一致性,seata。本地事务,什么是原子性,分布式事务,最终一致性(BASE),四种分布式事务的方案
    • HSBC:没有
    • 评论:有时不一定要有,会让系统非常复杂得不偿失的时候,就不使用。

@Transational
public Foo myService() {aaaRepository.deleteAll(aplnNum);aaaRepository.save(list);
}@Transational
public Foo myService() {aaaRepository.deleteAll(aplnNum);aaaRepository.save(list);restfulCall();
}@Transational
public Foo myService() {restfulCall();aaaRepository.deleteAll(aplnNum);aaaRepository.save(list);
}
  • 链路追踪

    • 作用:性能监控,请求追踪
    • 选型:Sleuth,zipkin,Skywalking
    • HSBC:有雏形RequestCorrelationId
  • 限流

    • 作用:限制瞬时大量的请求对系统造成的破坏。很多第三方api会对调用频率有限制。如果超过限流,会怎么样?
    • 选型:Spring cloud gateway, Sentinel
    • HSBC:请求量不大,似乎没见到限流的配置
  • 熔断和降级

相关文章:

spring cloud

spring cloud 分享 springboot:可以说是spring cloud的基础,是springMVC框架的简化,约定大于配置(在使用上、非功能上的简化) 可以说每个MPO Digital api就是springboot project(springboot项目) spring cloud&#xf…...

【9】核心易中期刊推荐——图像视觉与图形可视化

🚀🚀🚀NEW!!!核心易中期刊推荐栏目来啦 ~ 📚🍀 核心期刊在国内的应用范围非常广,核心期刊发表论文是国内很多作者晋升的硬性要求,并且在国内属于顶尖论文发表,具有很高的学术价值。在中文核心目录体系中,权威代表有CSSCI、CSCD和北大核心。其中,中文期刊的数…...

0108Bean销毁-Bean生命周期详解-spring

Bean使用阶段,调用getBean()得到bean之后,根据需要,自行使用。 1 销毁Bean的几种方式 调用org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#destroyBean调用org.springframework.beans.factory.config.Conf…...

微信小程序可以进行dom操作吗?

小程序不能使用各种浏览器暴露出来的 DOM API,进行 DOM 选中和操作 原因:在小程序中,渲染层和逻辑层是分开的,分别运行在不同的线程中,逻辑层运行在 JSCore 中,并没有一个完整浏览器对象,因而缺…...

昇腾AI深耕沽上:港口辐射力之后,天津再添基础创新辐射力

作者 | 曾响铃 文 | 响铃说 AI计算正在以新基建联动产业集群的方式,加速落地。 不久前,天津市人工智能计算中心正式揭牌,该中心整体规划300P算力,2022年底首批100P算力上线投入运营,并实现上线即满载。 这是昇腾AI…...

基于YOLOv5的疲劳驾驶检测系统(Python+清新界面+数据集)

摘要:基于YOLOv5的疲劳驾驶检测系统使用深度学习技术检测常见驾驶图片、视频和实时视频中的疲劳行为,识别其闭眼、打哈欠等结果并记录和保存,以防止交通事故发生。本文详细介绍疲劳驾驶检测系统实现原理的同时,给出Python的实现代…...

【Linux】-- 进程优先级和环境变量

目录 进程的优先级 基本概念 如何查看优先级 PRI与NI NI值的设置范围 NI值如何修改 修改方式一 : 通过top指令修改优先级 修改方式二 : 通过renice指令修改优先级 进程的四个重要概念 环境变量 基本概念 常见的环境变量 查看环境变量 三种…...

iOS 紧急通知

一般通知 关于通知的各种配置和开发,可以参考推送通知教程:入门 – Kodeco,具有详细步骤。 紧急通知表现 紧急通知不受免打扰模式和静音模式约束。当紧急通知到达时,会有短暂提示音量和抖动(约2s)。未锁…...

即时零售:不可逆的进化

“人们经常问我,这个世界还是平的吗?我经常跟他们说,亲爱的,它真的是平的,比以前更平了。”2021年3月,《世界是平的》作者托马斯弗里德曼在演讲时说。如他所说,尽管逆全球化趋势加剧&#xff0c…...

零售数据总结经验:找好关键分析指标和维度

各位数据的朋友,大家好,我是老周道数据,和你一起,用常人思维数据分析,通过数据讲故事。 每逢月末、季末、年终,运营部门的同事又要开始进行年终总结分析。那么,对零售连锁企业来说,…...

从零开始搭建游戏服务器 第一节 创建一个简单的服务器架构

目录引言技术选型正文创建基础架构IDEA创建项目添加Netty监听端口编写客户端进行测试总结引言 由于现在java web太卷了,所以各位同行可以考虑换一个赛道,做游戏还是很开心的。 本篇教程给新人用于学习游戏服务器的基本知识,给新人们一些学习…...

C++中那些你不知道的未定义行为

引子 开篇我们先看一个非常有趣的引子&#xff1a; // test.cpp int f(long *a, int *b) {*b 5;*a 1;return *b; }int main() {int x 10;int *p &x;auto q (long *)&x;auto ret f(q, p);std::cout << x << std::endl;std::cout << ret <&…...

java基础面试题(四)

Mysql索引的基本原理 索引是用来快速寻找特定的记录&#xff1b;把无序的数据变成有序的查询把创建索引的列数据进行排序对排序结果生成倒排表在倒排表的内容上拼接上地址链在查询时&#xff0c;先拿到倒排表内容&#xff0c;再取出地址链&#xff0c;最后拿到数据聚簇索引和非…...

@PropertySource使用场景

文章目录一、简单介绍二、注解说明1. 注解源码① PropertySource注解② PropertySources注解2. 注解使用场景3. 使用案例&#xff08;1&#xff09;新增test.properties文件&#xff08;2&#xff09;新增PropertySourceConfig类&#xff08;3&#xff09;新增PropertySourceTe…...

【C语言进阶:刨根究底字符串函数】strtok strerror函数

本节重点内容&#xff1a; 深入理解strtok函数的使用深入理解strerror函数的使用⚡strtok Returns a pointer to the first occurrence of str2 in str1, or a null pointer if str2 is not part ofstr1sep参数是个字符串&#xff0c;定义了用作分隔符的字符集合。第一个参数指…...

西安石油大学C语言期末重点知识点总结

大一学生一周十万字爆肝版C语言总结笔记 是我自己在学习完C语言的一次总结&#xff0c;尽管会有许多的瑕疵和不足&#xff0c;但也是自己对C语言的一次思考和探索&#xff0c;也让我开始有了写作博客的习惯和学习思考总结&#xff0c;争取等我将来变得更强的时候再去给它优化出…...

读《Multi-level Wavelet-CNN for Image Restoration》

Multi-level Wavelet-CNN for Image Restoration&#xff1a;MWCNN摘要一. 介绍二.相关工作三.方法摘要 存在的问题&#xff1a; 在低级视觉任务中&#xff0c;对于感受野尺寸与效率之间的平衡是一个关键的问题&#xff1b;普通卷积网络通常以牺牲计算成本去扩大感受野&#…...

【Linux】安装DHCP服务器

1、先检测网络是否通 get dhcp.txt rpm -qa //查看软件包 rpm -qa |grep dhcp //确定是否安装 yum install dhcp //进行安装 安装完成后 查询 rpm -ql dhcp 进行配置 cd /etc/dhcp 查看是否有遗留dhcpd.conf.rpmsave 删除该文件 cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sampl…...

功能测试转型测试开发年薪27W,又一名功能测试摆脱点点点,进了大厂

咱们直接开门见山&#xff0c;没错我的粉丝向我投来了喜报&#xff0c;从功能测试转型测试开发&#xff0c;进入大厂&#xff0c;摆脱最初级的点点点功能测试&#xff0c;拿到高薪&#xff0c;遗憾的是&#xff0c;这名粉丝因为个人原因没有经过指导就去面试了&#xff0c;否则…...

数据结构之哈希表

常见的三种哈希结构 数组set&#xff08;集合&#xff09;map(映射) set&#xff08;集合&#xff09; 集合底层实现是否有序数值是否可以重复能否更改数值查询效率增删效率std::set红黑树有序否否O(log n)O(log n)std::multiset红黑树有序是否O(log n)O(log n)std::unordere…...

BetterNCM安装器:3分钟解锁网易云音乐隐藏功能

BetterNCM安装器&#xff1a;3分钟解锁网易云音乐隐藏功能 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 还在为网易云音乐PC版功能单一而烦恼&#xff1f;BetterNCM安装器就是你需要…...

MMD创作者必看:除了跳舞,你还能用MikuMikuDance玩出哪些花样?

MMD创作者进阶指南&#xff1a;解锁MikuMikuDance的隐藏玩法 当你已经能熟练制作MMD舞蹈视频时&#xff0c;是否想过这款免费3D动画软件还能玩出更多花样&#xff1f;MikuMikuDance远不止是一个"虚拟歌姬跳舞模拟器"&#xff0c;它其实是一个被严重低估的轻量级3D动画…...

打造高效愉悦的开发环境:从工具选型到实战配置全指南

1. 项目概述与核心价值最近在整理自己的开发工具箱时&#xff0c;发现了一个非常有意思的GitHub仓库&#xff0c;叫做awesome-vibe-coding-tools。这个标题本身就充满了吸引力——“Awesome”系列通常意味着精选和高质量&#xff0c;“Vibe”这个词则暗示着一种氛围、感觉或体验…...

学生党福音:用最便宜的TT马达和STM32F103C8T6,我焊出了能遥控的平衡小车

低成本DIY平衡小车&#xff1a;TT马达与STM32的极致性价比方案 当我在宿舍里第一次看到那辆价值近千元的商业平衡小车时&#xff0c;脑海中立刻浮现出一个问题&#xff1a;能不能用更便宜的材料实现类似功能&#xff1f;作为一名预算有限的学生&#xff0c;我开始探索如何用最…...

【2026前沿】LTX 2.3 深度实战:结合 Gemma 4完全体 打造电影级文生视频/图生视频全流程

一、 为什么 LTX 2.3 是 2026 年视频生成的“性价比之王”&#xff1f;LTX 2.3 在保留了上一代高速生成特性的基础上&#xff0c;在 VAE&#xff08;变分自编码器&#xff09; 进行了重构。相比于 LTX 2.0&#xff0c;它的核心优势在于&#xff1a;原生纵向支持&#xff1a;不再…...

华为CANN GE动态宽高获取API

aclmdlGetDynamicHW 【免费下载链接】ge GE&#xff08;Graph Engine&#xff09;是面向昇腾的图编译器和执行器&#xff0c;提供了计算图优化、多流并行、内存复用和模型下沉等技术手段&#xff0c;加速模型执行效率&#xff0c;减少模型内存占用。 GE 提供对 PyTorch、Tensor…...

开源技能学习资源聚合项目SkillPort:构建个人与团队知识库的实践指南

1. 项目概述&#xff1a;一个技能提升的“私人图书馆”最近在整理自己的学习资料库时&#xff0c;发现了一个挺有意思的项目&#xff0c;叫gotalab/skillport。乍一看这个名字&#xff0c;可能会联想到某个商业学习平台&#xff0c;但实际上&#xff0c;这是一个由开发者社区构…...

抖音下载器终极指南:3种场景下的高效内容获取方案

抖音下载器终极指南&#xff1a;3种场景下的高效内容获取方案 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. …...

基于LLaMA-2的中文大模型实战:从增量预训练到部署应用

1. 项目概述&#xff1a;当大语言模型说起了中文如果你在2023年关注过开源大语言模型&#xff08;LLM&#xff09;的进展&#xff0c;那么“Chinese-LLaMA-Alpaca”这个名字你一定不陌生。它几乎是当时中文社区里&#xff0c;让Meta开源的LLaMA模型“学会”流利中文对话的代名词…...

双模型协同工作流架构解析:从感知到决策的AI工程实践

1. 项目概述&#xff1a;双模型协同工作流的深度解构最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“openclaw-dual-model-workflow”。光看这个名字&#xff0c;就能嗅到一股浓浓的工程实践和架构设计的味道。这不像是一个简单的应用Demo&#xff0c;更像是一个为解决特…...