当前位置: 首页 > 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:请求量不大,似乎没见到限流的配置
  • 熔断和降级

http://www.lryc.cn/news/42241.html

相关文章:

  • 【9】核心易中期刊推荐——图像视觉与图形可视化
  • 0108Bean销毁-Bean生命周期详解-spring
  • 微信小程序可以进行dom操作吗?
  • 昇腾AI深耕沽上:港口辐射力之后,天津再添基础创新辐射力
  • 基于YOLOv5的疲劳驾驶检测系统(Python+清新界面+数据集)
  • 【Linux】-- 进程优先级和环境变量
  • iOS 紧急通知
  • 即时零售:不可逆的进化
  • 零售数据总结经验:找好关键分析指标和维度
  • 从零开始搭建游戏服务器 第一节 创建一个简单的服务器架构
  • C++中那些你不知道的未定义行为
  • java基础面试题(四)
  • @PropertySource使用场景
  • 【C语言进阶:刨根究底字符串函数】strtok strerror函数
  • 西安石油大学C语言期末重点知识点总结
  • 读《Multi-level Wavelet-CNN for Image Restoration》
  • 【Linux】安装DHCP服务器
  • 功能测试转型测试开发年薪27W,又一名功能测试摆脱点点点,进了大厂
  • 数据结构之哈希表
  • linux信号理解
  • HC小区管理系统window系统安装教程
  • 自动化测试工具软测界的不二之选,还不快速来了解
  • centos系统/dev/mapper/centos-root目录被占满的解决方式
  • 【C++】STL容器、算法的简单认识
  • 把python开发的web服务,打包成docker镜像的方法
  • 【Linux】多线程
  • Qt 设置窗口背景图片的几种方法实例
  • springcloud微服务架构搭建过程
  • LeetCode:215. 数组中的第K个最大元素
  • vue面试题(day06)