- 博客(44)
- 收藏
- 关注
原创 MinIO使用
MinIO基于Apache License v2.0开源协议的对象存储服务,可以做为云存储的解决方案用来保存海量的图片,视频,文档。由于采用Golang实现,服务端可以工作在Windows,Linux, OS X和FreeBSD上。配置简单,基本是复制可执行程序,单行命令可以运行起来。MinIO兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。基本概念。
2023-12-07 14:10:23 957
原创 jvm虚拟机面试题
它是线程私有的,每个线程都有一份,里边保存的是字节码的行号,用来记录正在执行的字节码的地址。1它不属于jvm内存结构,不由jvm管理,它是虚拟机的系统内存2常见NIO操作,用于数据缓冲区,分配回收成本高,但是读写性能很高,不受jvm内存回收管理。
2023-09-24 17:09:15 93 1
原创 并发编程相关面试题
run()方法封装的是要执行的代码,可以执行多次。start方法是用来启动线程的,只能被调用一次。3 实现callable 接口(有返回值的)notifyAll唤醒所有wait线程。notify只随机唤醒一个wait线程。2 实现runnable接口。1 继承Thread类。使用join()方法。
2023-09-22 16:46:46 61
原创 常见集合篇
arraylist因为有索引所以它的时间复杂度是o1级别的,linkedlist底层是基于双向链表实现的它的时间复杂度是on级别的。回答: 该语句只是声明了和实例了一个容量为10的集合,未扩容。如果是集合转数组调用toarray方法。linkedlist底层是双链表,两指针,更占内存。Arraylist底层是数组,内存连续,节省内存。回答:如果是数组转集合的话调用asList方法。为什么索引从0开始?一般用在方法内,局部变量是有线程安全的。他两都不是线程安全的。
2023-09-21 22:09:57 42
原创 消息中间件
mq是内存存储消息,要是宕机了话消息会丢失,我们需要开启消息持久化(持久化交换机,持久化队列,持久化消息)每条消息设置一个唯一id 处理消息时先在数据库中查一下,没有的话再处理。消费者消息确认机制(手动ack 自动ack none)1 生产者发送消息到交换机失败(生产者服务宕机)保存到数据库后定时发放,成功后删除表中数据。先要看生产者发送消息再哪个环节会丢失?MQ宕机了会导致消息的丢失。消息失败后怎么处理呢?2 交换机到队列失败。可以设置回调方法重发。网络抖动和消费者挂了。
2023-09-19 23:07:56 182
原创 框架[篇]
面向切面编程,用于将那些于业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取公共模块复用降低耦合公共字段的属性填充,以及对日志的记录。
2023-09-13 20:42:51 71
原创 数据库面试题
---------------------------------------------------------------------------------------------------------------并发事务的问题:脏度,不可重复度,幻度隔离级别;读未提交 读已提交 可重复度 串行化-------------------------------------------------------------------------------------------------------
2023-09-12 23:26:42 40
原创 redis分布式锁
--------------------------------------------------------------------------------------------------------------------------------锁重入。
2023-09-09 15:21:37 44
原创 XXL-job
1.4 修改任务调度中心配置文件中数据库密码。创建执行器,编写启动类,配置配置文件。1.1下载xxl-job源码。corn表达式存mysql。执行器 就是微服务中的任务。1.6 访问管理控制台。1.2 导入idea。
2023-09-02 20:38:36 51
原创 redis雪崩,击穿,穿透的解决方案
可以使用缓存空对象的方式来进行解决,前端发送一个不存在的数据,可以将他访问的数据缓存空对象,下次发送请求的时候缓存中就会存在,但是这种方式治标不治本,当用户换一个不存在的数据进行攻击,这种方式就得重复进行。当用户访问一个redis和数据库都不存在的数据时,会导致每次访问都去查询mysql,当大量请求都进行这样操作的时候会导致数据库压力过大或宕机。
2023-09-02 08:11:58 53
原创 微信支付流程
首先用户进行下单操作,拿到订单号之后向前端返回订单号,之后就可以申请微信支付,向商户系统发送请求,后端调用微信后台的下单接口,提交一些参数(比如商户号,订单号,appid具体的金额和币种等),之后会返回预支付标识,在对这些数据进行处理并且签名之后响应给微信小程序端,这时候用户确认支付,调用微信后台实现真正意义上的支付,并返回支付结果,小程序会收到支付结果,然后微信后台推送支付结果,并对订单状态进行修改。
2023-09-01 20:33:24 86
原创 java基础常见面试题
有三种分别是String StringBuilder StringBuffer壹String是不可变类,每次操作都会生成新的对象而结果指向新对象,所以会产生内存碎片贰StringBuilder和StringBuffer的区别主要在于StringBuffer是线程安全的因为它添加了synchronized,而StringBuilder因为不需要维护线程安全,所以它的性能要比StringBuffer好是在常量池中创建一个字符串对象abc。
2023-08-18 17:44:08 51
原创 rabbitmq高级
概述:生产者发送的消息如何保证一定会成功到达rabbitmq消息队列?1生产者发送的消息如何保证一定会成功到达rabbitmq消息队列?消息在消息队列中如何保证不丢失。消费者如何保证一定成功处理消息。交换机没把消息路由到队列。
2023-08-09 10:47:44 60
原创 RabbitMQ
springamqp是基于amqp协议定义的一套api规范,并且由rabbitmq官方对这一规范进行实现.3 封装了RabbitTemplate工具,用于发送消息。2 基于注解的监听器模式,异步接收消息。2.aplication.yml配置。自动声明队列、交换机及其绑定关系。3进行消息发送和接收。
2023-08-06 14:31:21 98 2
原创 Docker
搭建镜像仓库可以基于Docker官方提供的DockerRegistry来实现。systemctl restart docker # 重启docker服务。systemctl start docker # 启动docker服务。systemctl stop docker # 停止docker服务。5 docker 启动命令,停止命令,重启命令。docker如何解决软件安装的兼容问题。如果执行错误就执行下段代码之后在重试。# 设置docker镜像源。配置docker信任地址。# 重启docker。
2023-08-03 16:34:41 40 1
原创 Spring Cloud Gateway
微服务暴露在外允许任何人访问不安全,所以要使用网关进行统一拦截过滤,并将符合要求的路由给微服务.网关具体技术实现:两种,gateway和zuul 一半来发用到的就是gateway。网关功能:1身份认证和权限校验 ,2服务路由,负载均衡, 3请求限流。1.1 引入spring cloud gateway依赖。1.0 创建一个全新模块在模块中引入两个依赖。1.2引入nacos服务发现依赖。
2023-08-02 14:31:56 44
原创 Feign远程调用
2.使用HttpClient或OKHttp代替URLConnection。② 配置文件开启httpClient功能,设置连接池参数。3.2@FeignClient("服务提供方名称")3.3将服务提供方的web接口声明复制到该接口中。① 引入feign-httpClient依赖。1.日志级别尽量用basic。
2023-08-01 18:18:18 30
原创 nacos注册中心配置中心
2.@ConfigurationProperties(prefix = "读取的配置信息前缀")@Value----->读取外部配置文件的信息要想实现热更新@RefeshScope。#配置当前项目所处环境,可以配置到application.yml。② 在bootstrap.yml中配置配置中心的地址和扩展名。@Value("${配置文件的配置名称}")--nacos配置中心依赖-->1.将微服务中经常变化的信息放到配置中心的配置文件中;1.2 微服务启动后读取配置中心的配置文件。3.在需要配置信息的地方。
2023-08-01 15:44:01 40
原创 微服务架构SpringCloud
提供了大量组件可以解决微服务架构中面临的各种问题,提供的组件基本不是自己开发,二手对其他公司开源,成熟的产品使用springboot进行封装。所以使用起来要引两家公司依赖.
2023-07-31 16:44:10 41 1
原创 WebSocket
它实现了浏览器与服务器全双工通信---浏览器和服务器只需要完成一次握手,;WebSocket是基于tcp的一种新的。和http协议的不同:见下图。
2023-07-20 15:49:51 33 1
原创 Spring Task使用方式
Spring Task 是spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。主要是对某个方法进行定时任务的处理,使用时加注解@Scheduled。
2023-07-20 10:30:13 44 1
原创 过滤器使用方式
2.在该类上加上@WebFilter("/*")注解指定要拦截的路径 例:拦截所有路径。1.定义一个类,实现Filter接口,重写方法doFilter。
2023-07-19 10:48:39 38
原创 全局异常处理器
1.定义一个类,在该类上添加@Component()和@RestControllerAdvice(2.在该类中定义方法,用注解声明要处理那种异常;
2023-07-19 10:07:03 42
原创 拦截器的使用
response.getWriter().write("string") 有时候前端不需要接收到返回值,但是我们依旧想给前端返回一些数据,那么就要往响应结果中写数据.request.getHeader("token") 从请求头中拿到什么东西 例:从请求头中获取token。excludePathPatterns:声明你不需要拦截的路径。addInterceptor:声明你的拦截器是哪个。addPathPatterns:声明你要拦截的路径。
2023-07-19 09:55:40 27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人