- 博客(28)
- 收藏
- 关注
原创 MQ中的RabbitMQ
消费者在接收到消息后,可以选择合适的确认机制向RabbitMQ发送确认消息(ACK),以通知RabbitMQ该消息已经被成功处理。的原则,但队列中存放的内容是消息。交换器(Exchange):在RabbitMQ等系统中,负责接收生产者发送的消息,并根据路由规则将消息路由到相应的队列。交换机是RabbitMQ的核心组件之一,它接收生产者发送的消息,并根据一定的路由规则将消息转发到一个或多个队列中。通过将消息、交换机和队列持久化存储在磁盘上,即使在RabbitMQ服务器重启后,消息也不会丢失。
2025-03-31 16:40:02
942
原创 AWS中S3的使用
提供超过 200 种按需付费的云服务,涵盖计算、存储、数据库、网络、人工智能、机器学习等领域。如果需要授予其他用户或账户访问权限,必须显式地通过存储桶策略(Bucket Policy)、IAM 策略或访问控制列表(ACL)进行授权。只有存储桶的所有者(即创建存储桶的 AWS 账户)可以访问存储桶和其中的对象。数据以对象(Object)形式存储,每个对象包含数据、元数据和唯一标识符(Key)。基于资源的策略,由存储桶所有者定义,用于控制对存储桶及其对象的访问;对象存放在存储桶(Bucket)中,存储桶需。
2025-03-31 14:43:26
443
原创 Dubbo框架
Dubbo是阿里巴巴公司开源的一个高性能、轻量级的Java RPC(远程过程调用)框架RPC是一种概念,指的是在本地调取远程过程进行使用,而Dubbo是一个实现了RPC概念的框架,它提供了高性能的基于代理的远程调用能力。
2025-03-25 17:41:14
598
原创 redis使用
GenericJackson2JsonRedisSerializer:使用Jackson库将对象序列化为JSON字符串,这种方式适用于复杂的对象数据,因为它可以保留对象的结构和属性。如果缓存中已经存在对应键的数据,则直接从缓存中获取,否则执行方法内的逻辑,并将结果存入缓存。Redis的序列化作用是将对象转换为字节流以便存储或传输,在Redis中,所有数据都是以字节的形式存储的,因此当我们需要将对象存储到Redis时,需要先将其序列化为字节数组;1.Redis的数据存储在内存中,读写速度极快。
2025-03-25 17:39:50
437
原创 并发和多线程
在jdk1.8后,采用数组、单链表、红黑树的存储结构,当链表长度超过一定阈值时(默认为8),链表会转换为红黑树以提高查找效率,查询的时间复杂度从 O(n) 降低到 O(logN);线程:线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。迁移完毕后,会将旧数组中的对应位置设置为ForwardingNode节点,以告知访问此桶的其他线程该节点已经迁移完毕。进程:进程是程序在执行过程中分配和管理资源的基本单位,每个进程都拥有独立的地址空间和系统资源。
2025-02-19 13:36:11
563
原创 kafka
Kafka由Scala和Java编写,是一种高吞吐量的分布式发布订阅消息系统特点:1、Kafka能够统一线上和离线的消息处理,通过集群提供实时的消息服务2、支持高吞吐量的数据传输3、Kafka采用了发布/订阅的消息模式,允许消息的异步发送和接收4、允许集群中节点失败,通过多副本机制提供高可用的持久化消息存储5、Kafka集群支持热扩展,可以方便地增加或减少节点6、Kafka中的消息是以文件的方式持久化到磁盘中进行存储的基础架构:包括Producer(生产者)、Broker(代理)和C
2025-02-19 13:32:57
773
原创 java线程池
定义了当线程池中的线程数超过corePoolSize时,多余的空闲线程在终止前等待新任务的最长时间;线程数量固定,核心线程数和最大线程数是一样的,当线程达到核心线程数后,如果任务队列满了,不会额外去创建线程去执行,而是执行拒绝策略;当工作队列满时,如果已创建的线程数小于maximumPoolSize,线程池会创建新的线程来执行任务。任务队列用于存放待执行的任务,而线程池中的线程则负责从队列中取出任务并执行。当线程池中的线程数少于corePoolSize时,即使有空闲线程,线程池也会创建新线程来处理新任务。
2025-02-08 16:05:31
992
原创 java各种流
Java中的流按照处理数据的单位分类可以分为字节流和字符流字节流:字节流以字节为单位传输数据,适用于所有类型的数据,包括文本、图片、视频等。常见的字节流类包括FileInputStream、BufferedInputStream、DataInputStream等。字节流可以处理任何类型的数据,因为它直接操作字节数据。字符流:字符流以字符为单位传输数据,适用于纯文本数据。
2025-01-16 10:49:31
1054
原创 token、cookie和session
在Web安全和会话管理中,token、cookie和session都是用于在客户端和服务器之间维护会话状态的机制。
2025-01-02 09:55:13
1438
原创 域名解析协议
example.com. IN MX 10 mail.example.com.,表示将example.com的邮件服务指向mail.example.com这个邮件服务器,优先级为10。1、浏览器中输入一个域名(如www.example.com),浏览器作为客户端,需要将这个域名解析为IP地址才能访问对应的服务器。5. NS记录:NS记录用于指定域名所使用的权威域名服务器,如果需要把子域名交给其他DNS服务商解析,就需要添加NS记录。
2024-12-26 11:40:15
660
原创 服务器间的部分网络协议
它是一个无状态的协议,意味着每个请求和响应都是独立的,服务器不保留客户端的任何信息。默认使用SSH的端口(通常是22)进行数据传输,且使用单个连接进行数据传输,所有的数据都通过SSH连接传输。ssh的私钥通常保存在客户端的用户主目录下的隐藏文件夹中,路径为\~/.ssh/id_rsa或类似的文件;TCP提供面向连接的、可靠的、基于字节流的传输服务,适合需要可靠传输的应用,比如网页浏览和电子邮件。2、数据报模式:UDP发送的数据单位是数据报,每个数据报都是独立的,UDP不保证数据报的送达顺序。
2024-12-25 09:40:49
866
原创 redis集群搭建
服务器准备:建议至少准备3台Linux服务器,可以是虚拟机或云主机。检查编译环境:Redis是基于C语言编写的,因此需要安装GCC等依赖,确保服务器上已安装GCC编译器。可以通过gcc --version命令检查。如果没有安装GCC,使用如下命令进行安装在Debian/Ubuntu系统上在CentOS/RHEL系统上可以从官网下载最新版本的Redis安装包,或者使用wget命令直接下载。
2024-12-20 09:12:10
569
原创 docker和k8s
它利用强大的容器编排能力,可以调度和管理多种容器,包括Docker容器 ,确保应用的高可用性和可扩展性。该命令就是找/etc/fstab文件中所有包含"swap"的行,并在这些行的开头添加"#"符号,从而将这些行注释掉,阻止系统在启动时自动挂载swap分区。$ (id -u):这是一个命令替换,id -u 返回当前用户的ID,这里用它来获取当前用户的UID,并将其作为chown命令的参数,指定文件的新所有者。这里用它来获取当前用户的GID,并将其作为chown命令的参数,指定文件的新所属组。
2024-12-19 09:37:24
2335
原创 shell脚本
Shell是操作系统中的一个命令行解释器,主要功能是接收用户命令,然后将这些命令传递给操作系统内核去执行;shell脚本就是由Shell命令组成的执行文件,将一些命令整合到一个文件中,进行处理业务逻辑,脚本不用编译即可运行,脚本文件通常以.sh作为扩展名。一般用于自动化任务,通常运行在Unix或Linux系统上;
2024-12-06 16:26:23
830
原创 服务器间网络连通性
telnet命令可以测试TCP/IP连接和端口的可用性命令:telnet [目标服务器IP地址] [端口号]如果还返回了“Connection closed by foreign host”,这表示网络访问关系是通的,但连接被远程主机关闭网络不通。
2024-12-05 09:05:50
967
原创 stream流的使用
获取最小值(min)、最大值(max)、元素个数(count)、归约(reduce)、收集(collect)、检查流中是否有任意元素匹配给定的条件(anyMatch)、将流中的每个元素映射为另一个流,并将结果合并为一个流(flatMap)等。Stream API是一种声明式的编程范式,它不会改变源对象,而是通过一系列的操作来生成一个新的流对象。过滤(filter)、截取(limit)、跳过(skip)、去重(distinct)、排序(sorted)、映射(map)等。方法将流转换为并行流。
2024-12-04 14:18:45
720
原创 java代码实现服务器数据监控
服务器监控主要包括以下几个方面:CPU使用率:监控服务器的CPU使用情况,确保没有过载内存使用:监控服务器的内存使用情况,避免内存溢出磁盘使用:监控磁盘空间,确保有足够的存储空间网络吞吐量:监控网络单位时间内成功地传送数据的数量。
2024-12-02 11:22:57
642
原创 XXL-JOB及Cron表达式
源代码位置:/xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/core/config/XxlJobConfig.java。xxl_job_info:调度扩展信息表, 用于保存XXL-JOB调度任务的扩展信息,如任务分组、任务名、机器地址、执行器、执行入参和报警邮件等等;周:1-7之间的整数或SUN-SAT,1表示星期天,2表示星期一。
2024-11-22 09:39:04
2283
原创 java代码中进行数据库相关操作
UpdateWrapper和LambdaUpdateWrapper都是MyBatis-Plus提供的封装SQL语法的工具类。LambdaUpdateWrapper使用Lambda表达式构造查询条件,并可以使用setSql进行自定义sql语句。UpdateWrapper使用传统的getter/setter的方式构造查询条件,需要手动指定字段名;LambdaQueryWrapper是MyBatis-Plus提供的一种查询构建器;
2024-11-21 09:15:57
449
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人