常见的中间件都在解决什么问题?

常见的中间件都在解决什么问题

RocketMQ

RocketMQ 是一款功能强大的分布式消息系统。

RocketMQ 源码地址:https://github.com/apache/rocketmq(opens new window)

RocketMQ 官方网站:https://rocketmq.apache.org

什么场景下用 RocketMQ?

  1. 异步解耦:最常见的一个场景是用户注册后,并行发送注册邮件和短信通知,以告知用户注册成功。
  2. 削峰填谷:一般在秒杀或团队抢购活动中使用广泛。用户请求量较大,导致流量暴增,秒杀的应用在处理如此大量的访问流量后,下游的通知系统无法承载海量的调用量,甚至会导致系统崩溃等问题而发生漏通知的情况
  3. 顺序消息:顺序消息是 RocketMQ 提供的一种对消息发送和消费顺序有严格要求的消息。对于一个指定的 Topic,消息严格按照先进先出(FIFO)的原则进行消息发布和消费,即先发布的消息先消费,后发布的消息后消费。

ShardingSphere

Apache ShardingSphere 是一款分布式的数据库生态系统, 可以将任意数据库转换为分布式数据库,并通过数据分片、弹性伸缩、加密等能力对原有数据库进行增强。

ShardingSphere 源码地址:https://github.com/apache/shardingsphere(opens new window)

ShardingSphere 官方网站:https://shardingsphere.apache.org

什么场景ShardingSphere?

  1. 分库分表场景:分库是将原本的单库拆分为多个库,分表是将原来的单表拆分为多个表。

ShardingSphere 有两个产品在企业中广泛使用,分别是 ShardingSphere-JDBC 以及 ShardingSphere-Proxy

  • ShardingSphere-JDBC 定位为轻量级 Java 框架,在 Java 的 JDBC 层提供的额外服务。 它使用客户端直连数据库,以 Jar 包形式提供服务,无需额外部署和依赖,可理解为增强版的 JDBC 驱动,完全兼容 JDBC 和各种 ORM 框架。
  • ShardingSphere-Proxy 定位为透明化的数据库代理端,通过实现数据库二进制协议,对异构语言提供支持。 目前提供 MySQL 和 PostgreSQL 协议,透明化数据库操作,对 DBA 更加友好。

Canal

源码地址:https://github.com/alibaba/canal

canal,译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费

canal能做什么?

  • 数据库镜像
  • 数据库实时备份
  • 索引构建和实时维护
  • 业务cache(缓存)刷新
  • 带业务逻辑的增量数据处理

Hippo4j

源码地址:https://github.com/opengoofy/hippo4j

异步线程池框架,支持线程池动态变更&监控&报警

Hippo4j能做什么?

  • 全局管控 - 管理应用线程池实例。
  • 动态变更 - 应用运行时动态变更线程池参数,包括但不限于:核心、最大线程数、阻塞队列容量、拒绝策略等。
  • 通知报警 - 内置四种报警通知策略,线程池活跃度、容量水位、拒绝策略以及任务执行时间超长。
  • 数据采集 - 支持多种方式采集线程池数据,包括但不限于:日志、内置采集、Prometheus、InfluxDB、ElasticSearch 等。
  • 运行监控 - 实时查看线程池运行时数据,自定义时间内线程池运行数据图表展示。
  • 等等。

Redisson

源码地址:https://github.com/redisson/redisson

Redisson 是一个在 Redis 的基础上实现的 Java 驻内存数据网格客户端(In-Memory Data Grid)。它不仅提供了一系列的 redis 常用数据结构命令服务,还提供了许多分布式服务,例如分布式锁、分布式对象、分布式集合、分布式远程服务、分布式调度任务服务等等。

Sentinel

源码地址:https://github.com/alibaba/Sentinel

Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。

Nacos

源码地址:https://github.com/alibaba/nacos

Nacos /nɑ:kəʊs/ 是Dynamic Naming and Configuration Service,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 Nacos 致力于发现、配置和管理微服务。

SpringCloud Gateway

源码地址:https://github.com/spring-cloud/spring-cloud-gateway

GateWay是Spring公司提供网关,目的是为微服务架构提供简单有效的API路由管理方式以及基于Filter链的方式提供的安全、监控和限流等等功能

初学者整理、持续更新、欢迎补充

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

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

相关文章

线程安全的解决方案(概念版本)

线程安全其实本质 讲的是内存的安全。 多个线程对统一资源的操作可能导致这个资源的数据不一致性。 举例说明:比如 张三有100块钱,现在线程A是要花50元,线程二是要存300元,当线程A花50元后,还没有内存值修改&#xff0…

19.channel相关方法

channel close()可以用来关闭channel closeFuture()用来处理channel的关闭 sync方法作用是同步等待channel关闭 addListener方法是异步等待channel关闭 pipeline() 方法添加处理器 write() 方法将数据写入 writeAndFlush() 方法将数据写入并刷出 write()方法,将数据写入到…

Optional详解和常用API

目录 一、Optional简介 二、构建Optional对象三种方式 2.1 Optional.of(value) 2.1.1 使用案例 2.2 Optional.ofNullable(value) 2.2.1 使用案例 2.3 Optional.empty() 2.3.1 使用案例 三、Optional常用的api解析和使用案例 3.1 isPresent 3.1.1 使用案例 3.2 ifPrese…

登录MySQL方式

登录MySQL方式 方式一:通过MySQL自带的客户端 MySQL 客户端输入命令即可 方式二:通过window自带的客户端 从命令端(cmd)进入 mysql -h localhost -P 3306 -u root -p Enter password:密码登录方式: mysql -h 主…

深入理解指针(四)

目录 1. 回调函数是什么? ​2. qsort使用举例 2.1冒泡排序 2.2使用qsort函数排序整型数据 ​2.3 使用qsort排序结构数据(名字) 2.4 使用qsort排序结构数据(年龄) 3. qsort函数的模拟实现 1. 回调函数是什么? 回调函数就是⼀个通过函数指针调⽤的函数。 如果你把函数…

VMware各版本镜像下载站

CDS Repository - /var/www/public/stage/session-120/cds/vmw-desktop/ws 参考: VMware各版本下载的镜像站(含windows和linux)_vm win7映像文件下载-CSDN博客

混淆矩阵-召回率、精确率、准确率

混淆矩阵 1 混淆矩阵2 混淆矩阵指标2.1 准确率2.2 精确率2.3 召回率2.4 特异度2.4 假正率2.5 假负率2.6 F1 分数 3 总结 1 混淆矩阵 混淆矩阵是一种用于评估分类模型性能的重要工具。它通过矩阵形式清晰地展示了模型对样本进行分类的结果,帮助我们理解模型在不同类…

【嵌入式】CAN总线详解

【嵌入式】CAN总线详解 一、CAN总线简介 CAN总线是一种控制器局域网总线,每一个挂载在CAN局域网的设备,都可以利用CAN去发送信息,也可以接收局域网的各种信息,每个设备都是平等的,共享CAN的资源。广泛应用于汽车、嵌…

从0开发一个Chrome插件:项目实战——翻译插件(附带申请谷歌翻译、百度翻译教程)

前言 这是《从0开发一个Chrome插件》系列的第十八篇文章,本系列教你如何从0去开发一个Chrome插件,每篇文章都会好好打磨,写清楚我在开发过程遇到的问题,还有开发经验和技巧。 专栏: 从0开发一个Chrome插件:什么是Chrome插件?从0开发一个Chrome插件:开发Chrome插件的必…

LabVIEW程序的常见加密方式

LabVIEW程序的加密对于保护知识产权和敏感数据至关重要。本文将详细介绍LabVIEW程序常用的加密方式,包括VI加密、代码保护、文件加密和通信加密等,帮助开发者选择合适的加密方法来确保程序的安全性和完整性。 LabVIEW程序的常见加密方式 VI加密&#xf…

【宠粉赠书】科研绘图神器:MATLAB科技绘图与数据分析

小智送书第二期~ 为了回馈粉丝们的厚爱,今天小智给大家送上一套科研绘图的必备书籍——MATLAB科技绘图与数据分析。下面我会详细给大家介绍这套图书,文末留有领取方式。 图书介绍 《MATLAB科技绘图与数据分析》是一本综合性强、内容丰富的书籍&#x…

Mybatis做批量操作

动态标签foreach,做过批量操作,但是foreach只能处理记录数不多的批量操作,数据量大了后,先不说效率,能不能成功操作都是问题,所以这里讲一讲Mybatis正确的批量操作方法: 在获取opensession对象…

动态规划解题步骤

状态规划题一般要列一个dp表 1、状态表示(重要) 什么是状态表示? 简单来说就是dp表里的值的含义 怎么得到状态表示? 1.题目要求 2.经验题目要求 3,分析问题的过程中发现重复子问题,找到状态表示 2、状态转移方程(重要) d…

Flutter学习(一)

1.Dart环境安装 官网:Get the Dart SDK | Dart Mac环境: Install Homebrew if needed. https://brew.sh/ Add the official tap. $ brew tap dart-lang/dart Install the Dart SDK. $ brew install dart 2.vscode配置 安装dart插件 安装code r…

哈喽GPT-4o——对GPT-4o 提示词的思考与看法

目录 一、提示词二、常用的提示词案例1、写作助理2、改写为小红书风格3、英语翻译和改写4、论文式回答5、主题解构6、提问助手7、Nature风格润色8、结构总结9、编程助手10、充当终端/解释器 大家好,我是哪吒。 最近,ChatGPT在网络上广受欢迎&#xff0c…

Nodejs--构建web应用

构建web应用 将从http模块中的服务器端中的request使劲按开始分析,request时间发生于网络连接建立,客户端想服务器发送报文,服务器解析报文,发现http请求的报文的时候,在出发request事件之前,已经准备好Se…

PDFFactoryFinePrint软件安装包下载+详细安装教程

简介: pdfFactory Pro(虚拟打印机)是一个无须 Acrobat 创建 Adobe PDF 文件的打印机驱动程序。 pdffactory pro虚拟打印机提供了比其他程序提供得更简单、更有效率和更少的花费的创建 PDF 文件的解决方案。用于需要安全的 PDF(法律文档、公司信息等)和其他高级功能…

vmware挂载本地目录到虚拟机

场景 本地环境一直在用vagrant,现在要安装指定版本的centos做k8s集群,vagrant 安装起来不是很方便,改用vmware 现在需要将本地目录挂载到虚拟机 解决 mount -t fuse.vmhgfs-fuse .host:/project /mnt/project/ -o allow_other.host:/project windows的…

C++回溯算法

迷宫的所有路径 ​ #include<bits/stdc.h> using namespace std; void f(int,int),print(); int n,m; int dx[]{0,1,0,-1}; int dy[]{1,0,-1,0}; char a[100][100]; bool flagfalse; struct point{int x,y; }; point r[10000]; int lr0; int main() {system("color…

从零手写实现 nginx-19-HTTP CORS(Cross-Origin Resource Sharing,跨源资源共享)介绍+解决方案

前言 大家好&#xff0c;我是老马。很高兴遇到你。 我们为 java 开发者实现了 java 版本的 nginx https://github.com/houbb/nginx4j 如果你想知道 servlet 如何处理的&#xff0c;可以参考我的另一个项目&#xff1a; 手写从零实现简易版 tomcat minicat 手写 nginx 系列 …