【微服务】sentinel+gateway 实现限流
概述
Sentinel
是阿里巴巴开源的流量防卫组件,支持对微服务流量进行实时监控和保护,特别适用于
Spring Cloud Gateway、Zuul等主流 API 网关的限流、熔断等场景。
功能
Sentinel
提供流量控制、熔断降级、系统自适应保护、热点参数限流等核心功能,帮助开发者应对高并发流量及微服务系统的稳定性挑战。
优点
Sentinel
具备轻量化、易集成、实时性强、规则灵活配置等优点,支持多语言、多框架,并提供可视化的控制台,方便动态管理限流规则。
## 限流规则的维度
Sentinel
支持多种限流规则维度,灵活应对不同的流量控制需求,包括网关维度和 API
分组维度。
需求如下:假设有两个服务的多个 URL:
A服务:
http://ip:port/a/xxx -
要求:60秒内最多访问60次
http://ip:port/a/yyy -
要求:60秒内最多访问60次
http://ip:port/a/zzz -
要求:60秒内最多访问30次
B服务:
http://ip:port/b/eee -
要求 ...
【微服务】SpringCloudGateWay
API 网关
API
网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API
网关封装了系统内部架构,为每个客户端提供一个定制的
API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。API
网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。通常,网关也是提供 REST/HTTP 的访问 API
网关
功能
1)性能:API高可用,负载均衡,容错机制
2)安全:权限身份认证,脱敏,流量清洗,后端签名(保证全链路可信调用)
黑名单:(非法调用的限制)
3)日志:日志记录(spainid,traceid)一旦涉及分布式,全链路跟踪必不可少
4)缓存: 数据缓存
5)监控:记录请求响应数据,api耗时分析,性能监控
6)限流:流量控制,错峰流控,可以定义多种限流规则
7)灰度:线上灰度部署,可以减少风险
8)路由:动态路由规则
比较流行的网关:
目前比较流行的网关有:Nginx、Kong、0range 等等
还有微服务网关zuul ...
【架构】系统架构分类
架构分类
软件开发的常常提到的架构的概念:
比如说单体架构、垂直应用架构、分布式架构、SOA架构、微服务架构
单体架构
单体应用架构(Monolithic
Architecture)是一种传统的应用架构模式,将应用程序作为一个整体部署和运行在单一的软件实体中。在单体应用架构中,应用的各个功能模块紧密地耦合在一起,共享相同的运行环境和数据库。
应用场景
单体应用架构适用于一些简单和小规模的应用场景,如内部管理系统、小型电子商务网站等。这种架构模式通常适用于初创企业或小型业务,因为它具有快速开发、部署和维护的优势。
优点
1)简单易用
单体应用架构通常比较简单直观,易于开发、测试和维护。开发人员可以更容易理解整个代码库,降低开发复杂性。
2) 性能较好
由于应用程序的各个模块都在同一进程中运行,它们可以共享内存和资源,减少了通信开销,因此在某些情况下可以提供较好的性能。
缺点
1)可扩展性有限
单体应用架构通常较难进行水平扩展,无法根据需求和负载增长进行动态扩展。当用户流量和数据量增长时,会面临性能瓶颈。
2) 耦合性高
...
【日常唠叨】和老伙计恰羊肉串捏
最近和老伙计聊了不少,分享了一下各自的人生心得,顺便也享受了一顿羊肉餐。我们去的那家店铺装修风格很有特色,整个环境充满了浓浓的内蒙古风情。一进门就仿佛置身于广袤的大草原,真的很有氛围!不仅如此,店里的价格也比较亲民。
我们提前预约了,等了大约 5
分钟,服务很及时。菜品方面,羊肉、羊杂汤、烤面包、各种蔬菜都带有一些地方特色,真的让人吃得很过瘾。老伙计觉得羊杂汤特别地道,味道浓郁,颇具内蒙古风味,而我则觉得他们家的冻酸奶更是意外的好吃,口感细腻,酸甜适中,完美解腻。
总之,这次的恰羊肉不仅有趣,食物也很让人满足,环境也很有特色,是一次愉快的就餐体验。
【Canal】SpringBoot整合Canal监听器
简介
canal
可以用来监控数据库数据的变化,从而获得新增数据,或者修改的数据。
前提
准备好 Mysql 和 Navicat
业务场景
数据库镜像
数据库实时备份
索引构建和实时维护(拆分异构索引、倒排索引等)
业务 cache 刷新
带业务逻辑的增量数据处理
数据库增量日志解析,提供增量数据订阅和消费
当前的 canal 支持源端 MySQL 版本包括 5.1.x , 5.5.x , 5.6.x , 5.7.x ,
8.0.x
工作原理
MySQL主备复制原理
MySQL master 将数据变更写入二进制日志( binary log,
其中记录叫做二进制日志事件binary log events,可以通过 show binlog events
进行查看)
MySQL slave 将 master 的 binary log events
拷贝到它的中继日志(relay log)
MySQL slave 重放 relay log
中事件,将数据变更反映它自己的数据
canal 工作原理
canal 模拟 MySQL ...
【RabbitMQ】延迟队列+死信队列延迟删除实现
场景
当一个订单在删除时,状态修改为锁定,当30分钟没有解锁后,那么将订单的的状态变成删除,并且执行真正的删除逻辑,将订单相关的删除。
解决:订单被误删的问题,如果在删除的延迟时间中(30分钟内),将状态修改为正正常则不会删除
实现
常量定义
12345678910111213public class MQConst { public static final String EXCHANGE_DELAY_NAME_DELETE_ORDER ="topicExchange.delay.delete.order"; public static final String QUEUE_DELAY_NAME_DELETE_ORDER ="queue.delay.delete.order"; public static final String ROUTINGKEY_DELAY_NAME_DELETE_ORDER ="routingKey.delay.delete.order"; publi ...
【Azure】Azure云存储集成
概述
Azure云存储是一种由微软提供的云端存储服务,允许用户通过互联网存储、管理和访问数据。Azure云存储提供了多种存储类型,满足不同的应用场景需求,从简单的文件存储到大规模的非结构化数据处理。它的高可用性、全球覆盖、弹性扩展、数据备份与恢复功能,使其成为企业和开发人员常用的云存储解决方案
主要功能:
Blob存储:用于存储非结构化数据(如图片、视频、日志文件)。支持三种存储层级(热、冷、归档),根据访问频率优化存储成本。
文件存储:通过SMB协议提供共享文件存储服务,支持多用户和跨平台访问。
表存储:提供非关系型的键值对存储,适合大规模的数据处理和查询操作。
队列存储:提供消息队列服务,支持大规模消息传递,用于异步处理和应用间通信。
优势:
全球数据中心:Azure在全球拥有多个数据中心,提供全球范围内的数据访问和冗余。
弹性和扩展性:可根据应用需求动态扩展存储容量和性能。
安全性和合规性:Azure提供全面的数据加密、访问控制和合规性认证,确保数据安全。
成本优化:通过多层存储和自动化的成本管理工具,有效降低存储成本。
集成
配置
1 ...
【JDOS】AWS S3 SDK操作京东云存储
AWS S3 SDK介绍
Amazon的对象存储服务S3的Java SDK客户端, 京东云的对象存储兼容AWS S3
API,因此可以使用Amazon S3 SDK来操作京东云的OSS存储服务。
这种兼容性是为了让用户能够更轻松地切换或同时使用多个云提供商的对象存储,而无需更改代码。Amazon
S3协议已经是行业标准,因此许多云提供商(如京东云、阿里云、腾讯云等)都提供了兼容S3
API的服务接口
通过AWS S3
SDK配置和连接京东云的对象存储服务。京东云提供了一个与S3协议兼容的接口,因此开发者可以继续使用熟悉的AWS S3 SDK,而不用额外学习和适配京东云的原生API
集成
配置
application.yaml的配置如下:
12345678# 对象存储服务oss: # 京东 oss jd: access-key: your-access-key secrete-key: your-secrete-key endpoint: your-endpoint bucket-name: your-bucket-name
配置类
...
【STM32】生活中STM32的应用
应用场景
STM32
是一款非常灵活和功能强大的微控制器,它可以用于多种设备和应用场景。STM32
的多功能性主要归因于其高性能、低功耗和丰富的外设接口。以下是
STM32 可以用于的一些设备和应用领域:
水族箱设备
STM32 可以用于水族箱自动化设备,例如:
(1)水质监测
监测水的温度、pH
值、溶解氧、浑浊度等,通过传感器数据来确保水族箱环境适宜
(2)自动喂食器
根据设定的时间和数量自动喂养水族生物
(3)照明控制
控制LED照明系统,模仿日出日落的自然光循环,提供可定制的光照方案。
(4)水泵和过滤系统控制
通过调节水泵速度、滤水器和空气泵来优化水流和氧气含量。
(5)温度控制
控制加热器或冷却系统,保持水温在稳定范围内
智能家居设备
STM32 也广泛用于智能家居产品,包括:
(1)智能灯光控制系统
通过无线通信(如 Zigbee、Wi-Fi)控制照明的开关和亮度
(2)智能门锁
提供基于指纹、密码或远程控制的智能门锁解决方案。
(3)家庭安防系统
与传感器集成,检测入侵或火灾等危险,发送报警信号
(4)智能音箱 ...