
框架和中间件
文章平均质量分 93
fixAllenSun
这个作者很懒,什么都没留下…
展开
-
【Mybatis-Plus笔记01】整合Springboot实现基础配置和增删改查案例
MP是一个Mybatis的增强工具,在Mybatis的基础上只做增强不做改变,可以简化开发,高效效率。特性如下:(1)无侵入:只做增强不做改变,引入它不会对现有工程产生影响(2)损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作(3)强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求。原创 2023-05-02 18:48:37 · 755 阅读 · 0 评论 -
面试题汇总04-SpringCloud/Dubbo/计算机网络11
JDK >= 1.8 (推荐1.8版本)Mysql >= 5.7.0 (推荐5.7版本)Node >= 12nacos >= 1.1.0 (ruoyi-cloud >= 3.0.0需要下载nacos >= 2.x.x版本)(1)网关模块8081(2)权限认证模块9200(3)接口模块(4)通用模块(5)系统模块9201(各个功能的增删改查)驾驶舱模块(6)定时任务9203(7)文件服务9300(8)监控中心9100启动。原创 2023-04-16 03:39:55 · 8 阅读 · 0 评论 -
面试题汇总03-Spring/Mybatis/SpringMVC/SpringBoot/SpringCloud/Dubbo/计算机网络
首先 IOC 是一个「容器」,是用来装载对象的,它的核心思想就是「控制反转」,控制反转就是说,「把对象的控制权交给了 spring,由 spring 容器进行管理」,我们不进行任何操作,没有控制反转的时候,我们需要「自己去创建对象,配置对象」,还要「人工去处理对象与对象之间的各种复杂的依赖关系」,当一个工程的量起来之后,这种关系的维护是非常令人头痛的,所以就有了控制反转这个概念,将对象的创建、配置等一系列操作交给 spring 去管理,我们在使用的时候只要去取就好了。原创 2023-03-05 18:26:19 · 5 阅读 · 0 评论 -
【redis】redis缓存与数据库的一致性
经过上面的比较,我们发现在出现失败的时候,是无法明确分辨出先删缓存和先更新数据库哪个方式更好,以为它们都存在问题。上述场景出现的问题,应该如何解决呢?都建议采用重试机制解决。一般情况下,删除缓存是比更新缓存更优的方案;先更新数据库是比先删除缓存更优的方案;总的来说【先更新数据库,再删除缓存】就是四个策略中影响最小,效果最优的方案。但是如果需要使用【先删除缓存,再更新数据库】的方案的话,可以使用【延时双删】【读写分离时强制读主库】【重试机制】来解决问题。原创 2023-02-15 22:22:33 · 559 阅读 · 0 评论 -
【Springcloud】Nacos配置中心和服务中心
(1)服务发现机制就是通过一个中间件去记录服务提供者的ip地址,服务名以及心跳等数据(比如用mysql去存储这些信息,所以Nacos要配置持久化),然后服务消费者会去这个中间平台去查询相关信息,然后再去访问对应的地址,这就是服务注册和服务发现。(2)当用户地址发生了变化也没有影响,因为服务提供方修改了用户地址,在中间件中会被更新,当服务消费方去访问中间件时就能及时获取最新的用户地址,就不会出现用户地址发生变化导致服务找不到什么是Nacos(2)下载安装搭建NacosServerNacos下载。原创 2023-02-13 02:32:37 · 4785 阅读 · 0 评论 -
【设计模式】责任链模式
避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。我们创建抽象类 AbstractLogger,带有详细的日志记录级别。然后我们创建三种类型的记录器,都扩展了 AbstractLogger。每个记录器消息的级别是否属于自己的级别,如果是则相应地打印出来,否则将不打印并把消息传给下一个记录器。} }原创 2023-02-12 00:49:35 · 579 阅读 · 0 评论 -
【Gateway】ruoyi网关分析
安装完Nacos后,来到Nacos的解压目录下的conf下的application.properties文件中,将连接到外置本地数据库的代码去掉注释并修改为自己的数据库和用户名和密码注意的是这里指定了Nacos的配置信息对应存放的数据库是ry-config导入的sql如下代码有很多,要注意的是下面这段这些建表语句是Nacos官方给的,可以直接复制过来建表,如果我们要在Nacos的配置中心里给微服务创建配置信息,就是存放在config-info表里的,可以看到这里往表config_info里插入了9条配原创 2023-02-10 22:02:47 · 15 阅读 · 0 评论 -
【SpringCloudAlibaba】
1-SpringCloud:一套全家桶的微服务解决框架,理念就是解决我们在微服务架构中遇到的任何问题;2-SpringCloudAlibaba:实现对SpringCloud组件进行扩展;SpringCloud针对多种 Netflix 组件提供的开发工具包,其中包括 Eureka、Ribbon、Feign、Hystrix、Zuul、Archaius 等。原创 2023-02-07 19:58:01 · 799 阅读 · 0 评论 -
【Docker】部署带mysql和redis的springboot项目
VOLUME指定临时文件目录为tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmp。#ADD 文件名 app.jar (我到时打算把jar包和Dockerfile文件放在同一级目录文件)2-配置文件里的port是6379,那么创建容器的时候对应的端口就要也是6379,项目配置文件里也是。(6)上传springboot项目到服务器,防火墙开放端口。(4)服务器安装docker、mysql、redis。(2)修改代码的mysql和redis配置信息。原创 2023-02-07 13:25:09 · 520 阅读 · 0 评论 -
【ruoyi-cloud】SpringCloudAlibaba项目分析
为了展示更加友好的限流提示, Sentinel支持自定义异常处理。(1)方案一:yml配置# Spring spring : cloud : sentinel : scg : fallback : mode : response response-body : '{"code":403,"msg":"请求超过最大数,请稍后再试"}'(2)方案二:GatewayConfig注入Bean/*** 自定义限流异常处理。原创 2023-02-07 13:14:20 · 23 阅读 · 0 评论 -
【Docker】中级篇
(3)修改完配置后重启master实例(5)master容器实例内创建数据同步用户(6)新建从服务器容器实例3308(8)修改完配置后重启slave实例(9)在主数据库中查看主从同步状态(11)在从数据库中配置主从复制(12)在从数据库中查看主从同步状态在主库执行以下sql在从库进行查询,查询成功。1-2亿条数据需要缓存,请问如何设计这个存储案例?单机单台100%不可能,肯定是分布式存储,用redis如何落地?既然是分布式,那么一个数据落在哪一台服务器上?能不能保证下原创 2023-02-07 00:22:33 · 376 阅读 · 0 评论 -
【Docker】初级篇
环境配置相当麻烦,换一台机器,就要再重新配置一遍环境,费力费时。Docker可以从根本上解决这个问题,软件可以带环境安装,也就是说安装的时候把原始环境一模一样的复制过来。可以把源码+配置+环境+版本等等一起打包成一个镜像文件,直接移植到新的服务器搬家不再是打包行李叫货拉拉了,而是直接把楼搬过去解决了运行环境和配置问题的软件容器,方便做持续继承并有助于整体发布的容器虚拟。原创 2023-01-01 23:02:40 · 883 阅读 · 0 评论 -
【Kafka】Linux下搭建kafka服务,完整学习案例
(1)概念(2)为什么要使用消息队列如果使用的是同步的通信方式来解决多个服务之间的通信,则要保证每一步的通信都要畅通,否则就会出错而如果使用异步的通信方式来解决多个服务之间的通信,就可以实现解耦。原创 2022-12-23 00:17:48 · 1950 阅读 · 0 评论 -
kafka问题总结
【1】Kafka 都有哪些特点?【2】为什么要使用 kafka,为什么要使用消息队列?【2】kafka的使用场景【3】Kafka 的设计架构【4】kafka分区的目的【5】Kafka 是如何做到消息的有序性?【6】Kafka 的高可靠性是怎么实现的?【7】Kafka 数据一致性原理?【8】ISR、OSR、AR 是什么?【9】LEO、HW、LSO、LW等分别代表什么?【10】Kafka 在什么情况下会出现消息丢失?【11】怎么尽可能保证 Kafka 的可靠性?【12】消费者和消费者组有什么关系?原创 2022-12-17 22:03:02 · 1043 阅读 · 0 评论 -
Linux系统搭建redis-cluster集群案例
本文是在一台服务器上搭建多个redis的伪集群方式来进行讲解,后续要换成多台步骤类似。Redis5.0前采用redis-trib进行集群的创建和管理,需要ruby支持Redis5.0可以直接使用Redis-cli进行集群的创建和管理。本文用的是redis版本5.0.5。原创 2022-12-15 15:48:52 · 1194 阅读 · 0 评论 -
【Kafka】Mac下安装与使用测试
然后在生产者终端中随便输入,然后回车,在消费者终端界面出现生产者终端输入的内容,则说明消费成功。test-consumer-group:消费组名称。replication-factor:指定副本数量。partitions:指定分区。进入Kafka的bin目录。启动zookeeper。原创 2022-12-14 03:10:18 · 469 阅读 · 0 评论 -
【Mybatis】一级缓存和二级缓存
一级缓存作用域是sqlsession级别的,同一个sqlsession中执行相同的sql查询(相同的sql和参数),第一次会去查询数据库并写到缓存中,第二次从一级缓存中取。一级缓存是基于 PerpetualCache 的 HashMap 本地缓存,默认打开一级缓存。它指的是Mybatis中SqlSessionFactory对象的缓存。由同一个SqlSessionFactory对象创建的SqlSession共享其缓存。原创 2022-12-09 02:33:55 · 418 阅读 · 0 评论 -
【SpringMVC】提问问题汇总
Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。原创 2022-11-22 12:57:07 · 333 阅读 · 0 评论 -
【Mybatis】提问问题汇总
(1)Mybatis是一个半ORM框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。(2)MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。(3)通过xml 文件或注解的方式将要执行的各种 statement 配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句,最后由m原创 2022-11-22 10:58:07 · 354 阅读 · 0 评论 -
布隆过滤器(Bloom Filter)
布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。可以把布隆过滤器理解为一个set集合,我们可以通过add往里面添加元素,通过contains来判断是否包含某个元素。原创 2022-11-16 08:56:29 · 1546 阅读 · 0 评论 -
【Kafka】基础知识汇总
Kafka是一种消息队列,主要用来处理大量数据状态下的消息队列,一般用来做日志的处理。既然是消息队列,那么Kafka也就拥有消息队列的相应的特性了。Kafka0.9版本之前,offset存储在zookeeper中,0.9版本及之后的版本,默认将offset存储在Kafka的一个内置的topic中,除此之外,Kafka还可以选择自定义存储offset数据。原创 2022-11-15 13:39:59 · 317 阅读 · 0 评论 -
【redis-05】redis中的事务和乐观锁如何实现
(1)原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的操作要么都做,要么都不做。(2)一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。(3)隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。(4)持久性(durability)。原创 2022-11-15 07:36:33 · 307 阅读 · 0 评论 -
【Mybatis源码】源码分析
Mybatis框架绕过我们使用起来更加简单,只需要通过调用Mapper接口的方法并且在mapper.xml中编写对应的sql语句来完成工作,只是Mybatis在JDBC的基础上进行了封装,让我们不需要关心connect对象的创建、statement对象的创建、参数的设置、结果集处理等等。Mybatis把这些步骤都封装成了一个个组件去完成对应的工作。(1)原生jdbc查询代码。原创 2022-11-14 23:52:49 · 177 阅读 · 0 评论 -
【SpringBoot源码】源码分析
这是一个扩展功能,callRunners(context, applicationArguments) 可以在启动完成后执行自定义的run方法;有2中方式可以实现:1-实现 ApplicationRunner 接口2-实现 CommandLineRunner 接口验证一把/*** 自定义run方法的2种方式System . out . println(" 我是自定义的run方法1,实现 ApplicationRunner 接口既可运行");原创 2022-11-05 22:56:00 · 854 阅读 · 0 评论 -
【Mybatis源码】源码分析
而mapper的执行核心是用了jdk的动态代理,扫描mapper文件时有个MapperRegistry的过程,其核心就是将接口封装成MapperProxyFactory的一个属性然后在添加到knownMappers中。上面是Mapper的添加过程,我们在调用某个mapper如前面讲到的UserMapper,其实拿到的是我们定义的接口动态代理后的结果,下面我们看我们获取某个mapper时具体是怎样执行的流程?1-我们在调用mapper接口时是如何把方法和xml文件绑定起来的?原创 2022-11-01 18:41:42 · 782 阅读 · 0 评论 -
【SpringMVC源码】源码分析
(1)DispatcherServlet是springmvc中的前端控制器(front controller),负责接收request并将request转发给对应的处理组件。(2)HanlerMapping是springmvc中完成url到controller映射的组件。DispatcherServlet接收request,然后从HandlerMapping查找处理request的controller。原创 2022-10-18 23:06:09 · 927 阅读 · 0 评论 -
【spring源码】源码分析
(1)【BeanDefinition】,用来存放从配置信息中读取到的bean的信息(2)【BeanFactoryPostProcessor】接口,在把BeanDefinition的信息放进BeanFactory中创建bean之前,调用这个接口对bean信息进行修改加强处理经过这个方法处理后,bean信息中的占位符就会被修改成配置信息中的实际变量案例BeanFactoryPostProcessor对bean的定义信息进行修改操作。原创 2022-10-14 22:00:47 · 4559 阅读 · 2 评论 -
【redis-04】redis实现分布式锁
redis实现分布式锁原创 2022-06-25 01:31:59 · 291 阅读 · 0 评论 -
【redis-03】redis注解的使用解析
spring缓存注解@Cacheable,@CachePut ,@CacheEvict,@EnableCaching作用是主要针对方法配置,能够根据方法的请求参数对其结果进行缓存(3)@CachePut:存数据使用规则@CachePut 的作用 主要针对方法配置,能够根据方法的请求参数对其结果进行缓存,和 @Cacheable 不同的是,它每次都会触发真实方法的调用@CachePut 作用和配置方法例子参数解释例子value缓存的名称,在 spring 配置文件中定义原创 2022-06-25 01:24:07 · 615 阅读 · 0 评论 -
【redis-02】redis的五种数据类型和对应的操作方法,补充RedisUtil模板
1-String:字符串2-List:列表3-Hash:哈希字典4-Set:集合5-Sorted Set:有序集合存储的数据:单个数据,最简单的数据存储类型,也是最常用的数据存储类型存储数据的格式:一个存储空间保存一个数据存储内容:通常使用字符串,如果字符串以整数的形式展示,可以作为数字操作使用(但是仍是字符串)(2-3)String业务场景一(String类型作为数值时的增减)业务场景描述大型企业级应用中,常见分表操作,使用多张表存储同类型数据,但是对应的主键id必须保证统一性,不能重复原创 2022-06-24 23:33:33 · 506 阅读 · 0 评论 -
【redis-01】redis整合springboot实现简单的增删改查
(1)基本的环境配置1-添加相关的依赖2-添加配置(2)基本的代码准备1-准备数据库和数据表2-创建实体类3-创建mapper层4-创建service层5-创建控制层根据链接分别测试增删改查的效果(3)分析序列化配置类在没有对序列化进行处理之前,存到redis里的信息都是乱码的,要想显示成可读的文字,需要进行序列化处理(4)在不使用注解的情况实现redis和mysql的增删改查(5)多线程测试redis并发问题想要实现的效果就是第一次查询数据的时候是从数据库查询,但是以后的查询都从缓原创 2022-06-24 19:37:07 · 1572 阅读 · 0 评论 -
【分布式锁】redis和zookeeper实现分布式锁的流程
zk实现分布式锁的流程(1)为什么用分布式锁?(2)基于redis实现分布式锁(3)基于zookeeper实现分布式锁(4)redis和zk实现分布式锁的优缺点比较(1)为什么用分布式锁?【超卖的情况】例如单个服务器的电商系统,一个用户调用下单接口,要先调用检查库存的接口去检查库存。在并发的时候,会预先把商品的库存存在redis中,下单的时候会更新redis的库存。如果有两个请求同时到来,请求1执行到锁定库存,更新数据库的库存为0,但是还没执行到更新redis的库存为0。而请求2刚好执行到检查redi原创 2022-03-29 01:35:04 · 373 阅读 · 0 评论 -
【Nginx】nginx的搭建和使用案例
Nginx的学习和搭建【1】nginx基本概念1-nginx是什么?能做什么事?nginx是一个高性能的http和反向代理服务器占用内存少,并发能力很强,在网页服务器中表现好,专门为性能优化而开发,能支持50000个并发连接数2-反向代理正向代理概念:如果把局域网外的internet想象成一个巨大的资源库,则局域网中的客户端要访问internet,则需要通过代理服务器来访问,这种代理服务就是正向代理反向代理概念:客户端对代理是无感知的,因为客户端不需要任何配置就可以访问。(而正向代理需要配置一原创 2022-03-15 00:18:00 · 7877 阅读 · 0 评论 -
【VUE】学习笔记
【VUE】学习笔记(1)Vue和js的区别(2)vue-监听事件(3)条件语句(4)循环语句(5)属性绑定(绑定一个链接)(6)双向绑定(把视图上的数据传到Vue对象上)(6.1)v-model 双向绑定(6.2)多种风格数据的绑定 (单选框、复选框等等组件传值)(6.3)修饰符(lazy、number 、trim)(7)计算属性(8)监听属性(9)过滤器(10)组件(11)自定义指令(12)路由(13)fetch.js(官方推荐的ajax框架)(14)axios.js(官方推荐的ajax框架)(15)Aj原创 2020-05-23 21:12:19 · 287 阅读 · 0 评论 -
【Spring】常用注解
【Spring】常用注解(1)Springboot启动类注解(2)Spring Bean 相关(3)处理常见的HTTP请求类型(4)前后端传值(5)读取配置信息(6)参数校验(7)全局处理 Controller 层异常(8)JPA 相关(9)事务 @Transactional(1)Springboot启动类注解@SpringBootApplication:是下面三个注解的集合。@EnableAutoConfiguration:启用 SpringBoot 的自动配置机制@ComponentScan:原创 2020-05-20 22:00:58 · 215 阅读 · 0 评论 -
【Tomcat部署+Linux部署+Docker部署】不同方式的部署
【Tomcat部署+Linux部署+Docker部署】不同方式的部署(1)Tomcat服务器部署IDEA项目打包(2)Linux系统部署(3)Docker部署(1)Linux下用Docker和不用Docker的区别(2)安装Docker和常用工具(3)测试运行(4)理解概念(1)Tomcat服务器部署IDEA项目打包(1)第一步:项目打成war包,clean+package(2)第二步:找到war包的地址package点击完后,控制台输出打包结果,复制路径找到war包(3)第三步:把war包原创 2020-05-14 23:09:34 · 1330 阅读 · 1 评论 -
【Springcloud】(13)Springcloud_Alibaba之Nacos
【Springcloud】(13)简介Springcloud_Alibaba(1)可以干什么(2)Nacos简介(1)可以干什么服务限流降级:默认知识servlet、feign、RestTemplate、Dubbo、RocketMQ等限流降级功能的接入,可以在运行时通过控制台实时修改限流降级规则,还支持查看限流降级Metrics监控服务注册与发现:适配Springcloud服务注册和发现标...原创 2020-05-07 23:18:27 · 136 阅读 · 0 评论 -
【Springcloud】(10)Bus消息总线
【Springcloud】(10)Bus消息总线(1)消息总线是什么?配置中心动态刷新的问题和分析(2)RabbitMQ环境配置(3)Bus动态刷新全局广播的设计(4)Bus动态刷新全局广播配置实现(5)Bus动态刷新定点通知(1)消息总线是什么?配置中心动态刷新的问题和分析(1)可否广播,一次通知,处处生效消息总线bus就是广播型的自动版的动态刷新,可以实现差异管理,全自动的动态刷新。让c...原创 2020-04-30 23:27:47 · 217 阅读 · 0 评论 -
【Springcloud】(09)Config分布式配置中心
【Springcloud】(09)Config分布式配置中心(1)Config分布式配置中心介绍(2)Config配置总控中心搭建(3)Config客户端配置与测试(4)Config动态刷新之手动版(1)Config分布式配置中心介绍(1)问题发现微服务意味着要把单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能进行,...原创 2020-04-30 00:02:58 · 237 阅读 · 0 评论 -
【Springcloud】路由网关GateWay
【Springcloud】(08)路由网关Zuul和GateWay(1)简单说明(2)GateWay是什么(3)GateWay非阻塞异步模型(4)GateWay工作流程(5)GateWay9527搭建(6)GateWay配置路由的两种方式(7)GateWay配置路由的两种方式(8)GateWay常用的Predicate(9)GateWay得Filter(1)简单说明微服务技术必须要有网关,让网...原创 2020-04-29 01:12:49 · 4131 阅读 · 0 评论