SpringCloud
文章平均质量分 89
小林学习编程
学生,希望能和大佬学习,主页微信学习交流可加,部分源码在Gitee,地址:https://gitee.com/xlxbc
展开
-
SpringCloud天机学堂:分布式任务调度
官网地址:XXL-JOB的运行原理和架构如图:执行器:我们的服务引入一个XXL-JOB的依赖,就可以通过配置创建一个执行器。负责与XXL-JOB调度中心交互,执行本地任务。调度中心:一个独立服务,负责管理执行器、管理任务、任务执行的调度、任务结果和日志收集。接下来,把之前的SpringTask任务改成XXL-JOB的任务。我们修改tj-learning模块下的,将原本的@Scheduled注解替换为@XXLJob注解:其中,@XxlJob注解中定义的就是当前任务的名称。原创 2024-08-19 22:28:27 · 1359 阅读 · 0 评论 -
SpringCloud天机学堂:Redis BitMap 实现用户签到功能详解
Redis BitMap 是一种基于字符串类型的特殊数据结构,用于高效处理大量布尔值(0或1)。它在需要处理大规模数据时特别有用,如用户活动跟踪、权限管理和大规模数据的快速计数等场景。BitMap 的核心优势在于其空间效率和操作速度。每个比特只占用一位空间,因此在处理大规模布尔值数据时非常节省内存。例如,存储 1 亿个布尔值,BitMap 只需要约 12.5MB 的内存。Redis BitMap 是一种高效、紧凑的位操作工具,特别适合处理大规模布尔值数据的场景。原创 2024-08-19 22:08:55 · 591 阅读 · 0 评论 -
Feign整合Sentinel实现服务降级
在微服务架构中,服务之间的调用是非常频繁的。这时,如果没有适当的容错机制,可能会导致级联失败,影响整个系统的可用性。这个配置启用了Feign对Sentinel的支持,允许使用Sentinel来控制服务调用的流量和实现降级。快速失败: 当知道某个调用注定会失败时,可以快速返回,而不是等待超时,这样可以提高系统的响应速度。减少资源消耗: 在高并发场景下,可以通过降级减少对某些非核心服务的调用,从而节省系统资源。保护系统: 当被调用的服务出现问题时,通过降级可以避免调用方服务被拖垮。指定了降级处理的工厂类。原创 2024-08-14 22:05:08 · 604 阅读 · 0 评论 -
SpringAMQP使用
开发业务功能的时候,肯定不会在控制台收发消息,而是应该基于编程的方式。由于RabbitMQ采用了AMQP协议,因此它具备跨语言的特性。任何语言只要遵循AMQP协议收发消息,都可以与RabbitMQ交互。并且RabbitMQ官方也提供了各种不同语言的客户端。但是,RabbitMQ官方提供的Java客户端编码相对复杂,一般生产环境下我们更多会结合Spring来使用。而Spring的官方刚好基于RabbitMQ提供了这样一套消息收发的模板工具:SpringAMQP。原创 2024-07-30 08:15:00 · 483 阅读 · 0 评论 -
消息队列RabbitMQ
消息队列是一种在分布式系统中常用的通信机制,简称为MQ,它允许不同的应用程序或服务之间通过发送和接收消息来进行异步通信。对于小型企业而言,出于成本考虑,我们通常只会搭建一套MQ集群,公司内的多个不同项目同时使用。由于没有消费者存在,最终消息丢失了,这样说明交换机没有存储消息的能力。发送到交换机的消息,只会路由到与其绑定的队列,因此仅仅创建队列是不够的,我们还需要将其与交换机绑定。据统计,目前国内消息队列使用最多的还是RabbitMQ,再加上其各方面都比较均衡,稳定性也好。的隔离特性,将不同项目隔离。原创 2024-07-30 08:00:00 · 930 阅读 · 0 评论 -
SpringCloud分布式事务
都可以满足ACID特性,但全局事务跨越多个服务、多个数据库,事务并未遵循ACID的原则,归其原因就是参与事务的多个子业务在不同的微服务,跨越了不同的数据库。虽然每个单独的业务都能在本地遵循ACID,但是它们互相之间没有感知,不知道有人失败了,无法保证最终结果的统一,也就无法遵循ACID的事务特性了。就是找一个统一的事务协调者,与多个分支事务通信,检测每个分支事务的执行状态,保证全局事务下的每一个分支事务同时成功或失败即可。A是规范,目前主流数据库都实现了这种规范,实现的原理都是基于两阶段提交。原创 2024-07-29 08:45:00 · 447 阅读 · 0 评论 -
SpringCloud微服务保护方案
Sentinel是阿里巴巴开源的一款服务保护框架,目前已经加入SpringCloudAlibaba中。官方网站:核心库(Jar包):不依赖任何框架/库,能够运行于 Java 8 及以上的版本的运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持。在项目中引入依赖即可实现服务限流、隔离、熔断等功能。控制台(Dashboard):Dashboard 主要负责管理推送规则、监控、管理机器信息等。为了方便监控微服务,我们先把Sentinel的控制台搭建出来。下载jar包。原创 2024-07-29 08:45:00 · 309 阅读 · 0 评论 -
SpringCloud配置管理
编写监听器。也不会监听路由变更,所以,我们无法利用上节课学习的配置热更新来实现路由更新。微服务共享的配置可以统一交给Nacos保存和管理,在Nacos控制台修改配置后,Nacos会将配置变更推送给相关的微服务,并且无需重启即可生效,实现配置热更新。我们就可以在项目启动时先更新一次路由,后续随着配置变更通知到监听器,完成路由更新。网关的路由同样是配置,因此同样可以基于这个功能实现动态路由功能,无需重启网关即可修改路由配置。因此,我们必须监听Nacos的配置变更,然后手动把最新的路由更新到路由表中。原创 2024-07-28 09:00:00 · 1808 阅读 · 0 评论 -
SpringCloud网关登录校验
无论是还是都支持自定义,只不过编码方式、使用方式略有差别。自定义不是直接实现,而是实现。@Component@Override@Override// 获取请求// 编写过滤器逻辑System.out.println("过滤器执行了");// 放行注意:该类的名称一定要以为后缀!spring:cloud:gateway:- PrintAny # 此处直接以自定义的GatewayFilterFactory类名称前缀类声明过滤器@Component。原创 2024-07-27 22:26:27 · 652 阅读 · 0 评论 -
SpringCloud网关路由
顾明思议,网关就是网络的关口。数据在网络间传输,从一个网络传输到另一网络时就需要经过网关来做数据的路由和转发以及数据安全的校验。由于网关本身也是一个独立的微服务,因此也需要创建一个模块开发功能。现在,微服务网关就起到同样的作用。首先,我们要创建一个新的module,作为网关微服务。更通俗的来讲,网关就像是以前园区传达室的大爷。原创 2024-07-27 21:55:13 · 430 阅读 · 0 评论 -
SpringCloud使用OpenFeign进行远程调用
我们利用Nacos实现了服务的治理,利用RestTemplate实现了服务的远程调用。获取urlnull,},而且这种调用方式,与原本的本地方法调用差异太大,编程时的体验也不统一,一会儿远程调用,一会儿本地调用。因此,我们必须想办法改变远程调用的开发模式,让远程调用像本地方法调用一样简单。而这就要用到OpenFeign组件了。请求方式请求路径请求参数返回值类型所以,OpenFeign就利用SpringMVC的相关注解来声明上述4个参数。原创 2024-07-26 18:46:50 · 638 阅读 · 0 评论 -
SpringCloud注册中心
可以发现,这里Nacos的依赖于服务注册时一致,这个依赖中同时包含了服务注册和发现的功能。因为任何一个微服务都可以调用别人,也可以被别人调用,即可以是调用者,也可以是提供者。基于Docker来部署Nacos的注册中心,首先我们要准备MySQL数据库表,用来存储Nacos的数据。服务发现除了要引入nacos依赖以外,由于还需要负载均衡,因此要引入SpringCloud提供的LoadBalancer依赖。接下来,服务调用者就可以去订阅服务了。因此,服务调用者必须利用负载均衡的算法,从多个实例中挑选一个去访问。原创 2024-07-26 18:28:25 · 732 阅读 · 0 评论