- 博客(44)
- 收藏
- 关注
原创 MinIO分布式文件系统介绍
文件变化主动通知:存储桶(Bucket)如果发生改变,比如上传对象和删除对象,可以使用存储桶事件通知机制进行监控,并通过以下方式发布出去:AMQP、MQTT、Elasticsearch、Redis、NATS、MySQL、Kafka、Webhooks等。总之,将 MinIO 封装为一个启动脚本能够提高用户的使用体验,简化管理和部署过程,使得 MinIO 的使用更加方便和高效。:通过封装为脚本,用户可以使用一个简单的命令来启动 MinIO,而无需记住复杂的启动命令和参数。Object——类比文件系统的文件。
2024-04-26 21:00:00
865
原创 Freemarker
FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件如图,template是freemarker中的模版,我们把要显示的文本内容放在template中通过freemarker即可返回一个html页面,它的作用类似于jsp。
2024-04-25 17:07:18
403
1
原创 黑马头条项目结构
Nacos是一个用于实现动态服务发现、服务配置和服务管理的开源平台,主要用于微服务架构中的服务注册与发现、配置管理、流量控制等功能,适用于构建基于微服务架构的分布式系统和云原生应用。:Nacos提供了统一的配置管理平台,允许微服务应用动态地获取配置信息,支持配置的实时更新和版本管理,从而实现微服务架构中的配置中心功能。:由于微服务之间是独立的,因此一个微服务的故障不会影响整个系统,系统可以通过断路器等机制对故障进行隔离和处理,提高系统的容错性和稳定性。通过反向代理找到后端,静态资源访问前端;
2024-04-16 16:33:05
1143
原创 Seata框架实现分布式事务(一)CAP理论
分布式事务:在分布式系统下,一个业务跨越多个服务或数据源,每个服务都是一个分支事务,要保证所有分支事务最终状态一致,这样的事务就是分布式事务。
2024-04-12 14:04:51
563
原创 利用Sentinel解决雪崩问题(二)线程隔离和熔断降级
虽然限流可以尽量避免因高并发而引起的服务故障,但服务还会因为其它原因而故障。而要将这些故障控制在一定范围避免雪崩,就要靠线程隔离(舱壁模式)和熔断降级手段了,不管是线程隔离还是熔断降级,都是对客户端(调用方)的保护。
2024-04-10 17:52:41
934
原创 利用Sentinel解决雪崩问题(一)流量控制
如下图所示,本来激增的并发量, 由于加入了排队等待,巨大的并发请求变得有条不紊,不过在超过排队队列的容量的那些请求,可能会丢失,有利有弊。3.1、快速失败,默认模式不过多介绍。
2024-04-10 14:59:33
896
1
原创 详解实现黑马旅游网的ES和Mysql数据同步
我们知道es中的数据来自于mysql数据库,因此mysql数据发生改变时,es也必须跟着改变,否则会导致数据不一致问题,这个就是elasticsearch与mysql之间的数据同步。
2024-04-09 15:08:48
1076
原创 Elasticsearch介绍及其索引库的创建删除和重新绑定
Elasticsearch是一个开源的分布式搜索和分析引擎,基于Apache Lucene构建。它提供了一个快速、实时的搜索和分析功能,适用于各种用例,包括全文搜索、日志和指标分析、安全事件检测等。
2024-04-05 21:06:17
2064
3
原创 Anaconda如何切换国内镜像源
文件通常位于用户的主目录下。如果你的操作系统是Windows,它可能隐藏了,你需要在文件资源管理器中启用“显示隐藏的文件、文件夹和驱动器”选项才能看到它。1、打开终端(Windows)或者命令行界面(macOS/Linux)。4、以上步骤将会把阿里云镜像源设置为你的默认通道,之后使用。5、怎么解决配置了镜像源,下载速度还是几十KB的问题。3、如果你想要确认是否已经切换成功,可以查看。安装、更新或者搜索包时都会使用这个镜像源。
2024-04-04 11:16:17
4092
原创 SpringAMQP-Exchange交换机
Routingkey 一般都是有一个或多个单词组成,多个单词之间以”.”分割,例如: item.insert。,因此如果没有任何队列与Exchange绑定,或者没有符合路由规则的队列,那么消息会丢失!基于@RabbitListener注解声明队列和交换机有哪些常见注解?描述下Direct交换机与Fanout交换机的差异?声明队列、交换机、绑定关系的Bean是什么?交换机的作用是什么?
2024-03-30 20:50:11
345
原创 Dockerfile:自定义镜像
Dockerfile 是一个文本文件,其中包含了一系列用于自动化构建Docker镜像的指令。通过编写Dockerfile,开发者能够明确地定义一个软件应用及其运行环境应该如何被封装进一个可移植、可重复构建的Docker镜像中。
2024-03-27 21:54:42
1061
1
原创 创建一个Nginx容器
如上图可以看出,已经创建好了nginx容器,并且已经在运行了;exec命令可以进入容器修改文件,但是在容器内修改文件是不推荐的。
2024-03-27 11:52:45
612
原创 统一网关Gateway
全局过滤器的作用也是处理一切进入网关的请求和微服务响应,与GatewayFilter的作用一样。systemctl stop firewalld #关闭linux虚拟机的防火墙。systemctl disable firewalld #取消防火墙开机自启。systemctl status firewalld #查看防火墙状态。
2024-03-25 22:00:23
540
原创 Docker在虚拟机中的基本配置
systemctl stop firewalld #关闭linux虚拟机的防火墙。systemctl enable docker # 开启自动开启docker服务。systemctl restart docker # 重启docker服务。systemctl status docker # docker服务的状态。systemctl start docker # 启动docker服务。systemctl stop docker # 停止docker服务。Docker是如何实现的呢?
2024-03-25 21:59:42
475
原创 Nacos介绍和统一配置管理
Nacos(全称为 Alibaba Cloud Nacos,或简称为 Nacos)是一个开源的分布式服务发现和配置管理系统。
2024-03-22 21:06:23
762
原创 Eureka的介绍和作用,以及搭建
Eureka是Netflix开源的一种服务发现和注册工具,它为分布式系统中的服务提供了可靠的服务发现和故障转移能力。Eureka是Netflix的微服务架构的关键组件之一,它能够实时地监测和管理服务实例的状态和可用性。
2024-03-21 16:53:21
425
原创 InputStream in = this.getClass().getClassLoader().getResourceAsStream(“template/运营数据报表模板.xlsx“);这句代码
综合起来,这行代码的作用是从类路径中获取名为 "template/运营数据报表模板.xlsx" 的资源文件,并将其内容读取到一个输入流中,以便后续进行处理。:这是类加载器提供的方法之一,用于从类路径中获取指定名称的资源文件,并返回一个输入流(InputStream),以便读取该资源的内容。这些只是反射的一些常见用法,通过反射,可以实现更加灵活、动态的编程,但也要注意反射的性能开销和安全性问题。使用反射可以获取类的各种信息,如类名、包名、父类、接口、字段、方法等。:这是在获取当前对象所属的类对象。
2024-03-18 22:10:30
483
原创 Apache POl
简单来说就是,我们可以使用 POI 在 Java 程序中对Miscrosoft Office各种文件进行读写操作。是 Java Servlet API 中的一个接口,用于在服务器端向客户端发送 HTTP 响应。它提供了一系列方法,用于设置和控制响应的内容、状态码、头部信息等。接口,开发者可以灵活地控制和定制服务器端向客户端发送的 HTTP 响应,以实现各种需求,如返回网页、文件下载、JSON 数据等。接口允许开发者在 Servlet 中生成 HTTP 响应,并将其发送到客户端。
2024-03-18 22:09:52
802
原创 stream流的应用
因此,第一行代码计算了一个整数列表中所有元素的总和,而第二行代码则从一个对象列表中提取了每个对象的名称,并将这些名称存储在一个新的列表中。两者的主要区别在于它们所操作的数据类型和所执行的操作。
2024-03-18 12:04:34
365
原创 Stream流将List列表中的每个对象赋值给另外一个List列表中的每个对象
当使用流操作(stream)遍历订单详情列表并将每个订单详情对象转换为购物车对象时,代码段中的Lambda表达式起着关键作用。方法将订单详情对象的属性复制到购物车对象中。通过这种方式,对订单详情列表中的每个订单详情对象进行转换,最终得到一个包含所有转换后购物车对象的列表。方法将列表转换为一个流,使得我们可以对列表中的每个元素进行处理。方法将转换后的购物车对象收集到一个列表中,并返回该列表。转换为一个购物车对象,并返回该购物车对象。在每次迭代中,新创建一个购物车对象,并使用。
2024-03-15 21:06:43
1539
1
原创 WebSocket
WebSocket是一种在单个TCP连接上进行全双工通信的协议。它允许在客户端和服务器之间建立持久连接,以便它们可以随时开始发送数据。相比传统的HTTP请求-响应模式,WebSocket提供了更快的响应速度和更低的延迟,因为它避免了HTTP中频繁的连接和断开操作。
2024-03-15 21:01:55
435
1
原创 在pycharm下载cv2的时候显示Could not read package description from PyPI.怎么办?
在pycharm下载cv2的时候显示Could not read package description from PyPI.解决办法
2024-03-08 16:17:49
1037
1
原创 No module named ‘torch‘解决办法
Traceback (most recent call last): File "/hy-tmp/Pytorch-UNet-master/Pytorch-UNet-master/train.py", line 6, in <module> import torch ModuleNotFoundError: No module named 'torch'怎么办?
2024-03-06 21:27:33
7769
1
原创 IO和NIO的区别
IO(Input/Output)和NIO(New I/O,也称为Non-blocking I/O)都是Java中处理输入和输出的机制,但它们在处理方式、性能和适用场景上有很大的区别。
2024-03-05 15:45:12
481
原创 Java面试:线程池及其的7大核心参数
线程池是一种并发编程的技术,它管理和维护了一组可重用的线程,以便在需要时执行任务。线程池的目标是在减少线程创建和销毁的开销的同时,提高任务执行的效率和性能。
2024-03-05 15:28:49
410
原创 Rides的字符串操作命令
其中语句中的key、field、value和哈希表结构中的key、field、value相对应。其中SETEX key seconds value用于设置短信验证码;SETNX key value通常用于分布式锁;set集合里面不允许重复元素,重复插入无效;keys set*:返回以set开头的key。因为集合是无序的,查询顺序和插入顺序无关;keys *:返回所有的key;
2024-03-03 17:04:29
398
原创 redis的数据类型
这些数据类型使得 Redis 能够满足各种不同的应用场景,从简单的缓存到复杂的数据处理和分析。选择合适的数据类型可以更好地利用 Redis 的功能和性能。Redis 是一个基于内存的键值存储系统,支持多种丰富的数据类型。
2024-03-02 21:47:28
322
原创 MySQL 索引分类
以上是常见的MySQL索引分类,根据具体的应用场景和查询需求,选择合适的索引类型可以提高数据库的查询性能和效率。MySQL 索引根据其内部结构和用途可以分为多种类型。
2024-03-02 21:46:24
327
原创 分布式锁及其的实现方式
分布式锁是一种用于协调分布式系统中多个节点之间对共享资源进行访问的机制。在分布式系统中,由于节点之间的独立性和通信延迟,需要一种机制来确保在任何给定时刻只有一个节点可以访问共享资源。分布式锁可以用于实现这样的同步。分布式锁的实现方式取决于具体的场景和需求。选择适当的分布式锁方案需要考虑系统的特性、性能要求、一致性需求等因素。
2024-03-02 21:45:05
349
原创 Map的表结构、遍历哈希 Map 、有无线程安全的线程
是 Java 中提供的线程安全的哈希 Map 实现,它通过使用分段锁(Segment)来支持并发访问,从而提高了性能。每个段上都有一个锁,多个线程可以同时访问不同的段,从而减小了锁的竞争范围,提高了并发性能。根据实现和特性的不同,Map 可以分为多种不同的类型。遍历哈希 Map 通常意味着访问其中的每一个键值对,并执行一些操作。时,多个线程可以安全地进行读取操作,而写入操作只锁定相关的段,而不是整个数据结构。有线程安全的 Map 集合,其中最常见的是。创建的同步 Map)具有更好的性能。
2024-03-02 21:42:51
888
原创 JVM(Java 虚拟机
JVM(Java 虚拟机)是 Java 程序的运行环境,它负责将 Java 字节码(.class 文件)转换为特定平台的机器码,并执行这些机器码。:允许 Java 应用程序调用本地(非 Java)方法,通过 JNI(Java Native Interface)来实现 Java 与本地代码之间的交互。:JVM 将内存划分为不同的数据区域,包括堆、栈、方法区(在 Java 8 之前称为永久代,Java 8 开始称为元空间)、程序计数器等。运行,并且可以有效地管理内存,减少了程序员处理内存管理的负担。
2024-03-02 21:36:50
287
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人