自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (1)
  • 收藏
  • 关注

原创 七、RocketMQ的消费模式

*优点:**及时性好**缺点:**如果客户端没有做好流控,一旦服务端推送大量消息到客户端时,就会导致客户端消息堆积甚至崩溃。主要关注点在订阅topic后,消费方式模式。

2023-10-15 16:46:39 1024

原创 六、RocketMQ发送事务消息

在一些对数据一致性有强需求的场景,可以用 Apache RocketMQ 事务消息来解决,从而保证上下游数据的一致性。以电商交易场景为例,用户支付订单这一核心操作的同时会涉及到下游物流发货、积分变更、购物车状态清空等多个子系统的变更。当主分支订单系统状态更新失败后,物流、积分、购物车系统都不应该接收到消息。

2023-10-15 15:42:47 400

原创 五、RocketMQ发送顺序消息

在有序事件处理、撮合交易、数据实时增量同步等场景下,异构系统间需要维持强一致的状态同步,上游的事件变更需要按照顺序传递到下游进行处理。例如需要保证一个订单的生成、付款和发货,这三件事情是被顺序执行的。

2023-10-15 15:41:29 533

原创 四、RocketMQ发送普通消息、批量消息和延迟消息

同步消息代表发送端发送消息到broker之后,等待消息发送结果后,再次发送消息。

2023-10-14 12:03:04 486

原创 三、RocketMQ的JAVAAPI的基础概念

生产者和消费者数据流转的基础数据模型,主要属性有。

2023-10-14 11:55:10 147

原创 二、使用DockerCompose部署RocketMQ

RocketMQ部署参考,单机部署和集群部署

2023-10-12 11:31:09 854

原创 一、RocketMQ各组件介绍

RocketMQ基础组件介绍

2023-10-12 11:29:29 173

原创 Kafka的Partition分区详解.md

一个topic可以存在一个或者多个partitionpartition与都有着密不可分的联系。

2023-09-28 15:45:00 380

原创 netty的pipeline寻找下一个节点的原理解读

简略介绍netty的处理器链是如何向下传递的

2023-09-12 20:41:21 119

原创 epoll和select原理

select和epoll的原理

2023-09-05 22:20:50 206

原创 使用Callable和FutureTask获取线程返回值原理分析

多线程、Callable、FutureTask、原理分析

2022-08-13 11:40:01 360

原创 使用流水线(pipeline)部署项目时,自动杀死衍生进程问题

使用JENKINS_NODE_COOKIE=dontkillme防止衍生进程被杀死,注意这是流水线项目的操作!!!示例:stage('部署jar包') { steps { withEnv(['JENKINS_NODE_COOKIE=dontkillme']){ # 最重要的操作 echo '部署jar包' sh '''cp ruoyi-admin/target/platform.jar /usr/local/install/ cd /usr/local/install/ .

2022-01-21 17:29:08 1168 1

原创 hash算法

一、hash算法的一些基础知识概念:hash算法根据一个数的值通过hash函数来确定其存储的位置,尽可能的达到存储和查找都能是O(1)的复杂度计算hash函数的几种方法:1、直接取值法取关键数的某个线性函数作为存储位置2、取模寻址法将关键值除以一个固定数,获取余数作为存储位置但是这两种方法都存在一定的冲突问题,所以需要一些解决冲突的方法:1、开放寻址法当存在冲突时,根据获取到的存储位置,顺序寻找不超过hash表长度的存储位置2、拉链法将存在冲突的关键值,存储的一个链表中,来解决冲突

2021-11-21 14:51:03 1974

原创 nginx的三大功能配置:反向代理、负载均衡、动静分离

一、反向代理正向代理:由游览器作为一个代理服务器,向原来的服务器发送请求反向代理:游览器将请求发送到反向代理服务器,由反向代理服务器将请求发送具体的服务器配置方式http { server { # 监听的端口 listen 80; # 映射的路径 server_name localhost; # 匹配的路径 location / { # 反向代理后的位置 proxy_p

2021-11-21 13:43:27 1007

原创 MySQL配置主从数据库

MySQL配置主从数据库## 1、在主数据库中,修改my.conf文件,加入两个配置## log-bin 指定文件的名字,记录以后的数据库的信息## server-id 配置主id,默认为1,越小优先级越高log-bin=huiserver-id=1## 重启mysql,使配置文件生效service mysqld restart## 2、在从数据库中,修改my.conf文件,加入一个配置## server-id 与主数据库中id不能重复,并且id要比主数据库中的id要大server-i

2021-09-10 10:33:13 267

原创 Zookeeper环境搭建

一、准备工作准备三台虚拟机,修改主机名,修改hosts文件,使其可以用主机名进行ping通# 修改主机名vi /etc/hostname# 修改hosts文件vi /etc/hosts下载zookeeper的安装包: https://zookeeper.apache.org/releases.html二、安装zookeeper# 1.解压安装包tar -zxvf zookeeper-...# 2.将解压后的文件夹移动到/usr/local下mv zookeeper-...

2021-09-06 09:06:59 169

原创 Java使用OSS进行上传

参考文档:https://help.aliyun.com/document_detail/84781.html一、准备工作1、在阿里云中申请OSS存储,创建一个bucket,一个bucket代表一个项目的存储路径2、申请AccessKey二、使用OSS存储根据阿里云OSS的帮助文档,获取相关的jar包,然后进行配置即可使用以上传网络流为例...

2021-08-22 23:06:04 292

原创 Java使用FastDFS

一、加载FastDFS的jar包<dependency> <groupId>com.github.tobato</groupId> <artifactId>fastdfs-client</artifactId> <version>1.26.7</version></dependency>二、编写配置文件fdfs: connect-timeout: 30 # 连接的超时时间

2021-08-22 23:03:42 3641 2

原创 FastDFS的安装

一、安装前的准备工作下载fastdfs相关的文件:https://github.com/happyfish100准备安装环境# 因为fastdfs是用C语言开发的,所以需要安装c语言环境yum install -y gcc gcc-c++# 安装libeventyum -y install libevent#解压libfastcommon压缩文件,然后进入解压后的文件夹,运行make.shtar -zxvf libfastcommon.... #...省略版本cd lib

2021-08-22 10:54:20 420

原创 logstash的安装和使用

一、logstash的安装注:在将数据库中数据存储到es中,可以将数据库查询出来,然后使用代码进行一条条的插入第二种方法就是可以使用logstich自动的将数据库数据插入到ES中下载logstash:https://www.elastic.co/cn/downloads/logstash注意logstash的版本需要与elasticsearch的版本保持一致# 安装完成后解压logstash,即可安装成功tar -zxvf logstash...二、同步数据的准备工作# 在logs

2021-08-21 17:53:56 2529

原创 ES的一些概述

一、ES的一些概念与数据库中的概念进行比较ES数据库说明索引(index)表ES中索引对照数据库中的表映射(mappings)表的结构mappings可以看做数据库中的建表数据,指定字段的各个类型文档(Document)表的一行文档代表数据库中的一行数据字段(Field)表的一列字段代表表中的一列注:在ES老版本中存在type类型,但是新版本已经废弃,统一使用_doc二、ES使用RESTfulAPI进行操作,即post/put/get/d

2021-08-21 17:20:13 355

原创 ES的一些操作

存有ES操作的文件:https://download.youkuaiyun.com/download/HueyLong/21418738?spm=1001.2014.3001.5501此文件可以使用Postman进行查看

2021-08-21 17:19:51 78

原创 ElasticSearch安装

一、下载ElasticSearchhttps://www.elastic.co/cn/elasticsearch/二、在Linux下安装ElasticSearch# 解压安装包tar -zxvf elastic....三、修改配置文件之前的准备工作# 进入解压后的文件夹 创建一个data文件 用来存放es的数据mkdir data# 然后进入config文件夹,修改elasticsearch.yml文件cd configvi elasticsearch.yml四、修改配置文件

2021-08-21 17:17:25 135

原创 搭建ES集群

一、需要创建三个存在ES环境的虚拟机我们只需创建一个,然后使用虚拟机中的克隆技术就可以,主要在克隆虚拟机时,需要修改虚拟机的mac地址二、修改config文件下elasticsearch.yml的文件,进行虚拟机的关联配置# 集群的名称 各个节点一样cluster.name: hui-es-cluster# 节点名称,各个节点不一样node.name: es-node1path.data: /usr/local/elasticsearch-7.4.2/datapath.logs: /usr/

2021-08-21 16:45:39 1045

原创 Nginx安装

一、安装依赖环境1、安装gcc环境yum install gcc-c++2、安装PCRE库,用于解析正则表达式yum install -y pcre pcre-devel3、zlib压缩和解压缩依赖yum install -y zlib zlib-devel4、SSL安全的加密的套接字协议层,用于HTTP安全传输,也就是httpsyum install -y openssl openssl-devel二、安装1、解压安装包,解压后得到的是源码,需要编译后才能安装tar -zxv

2021-08-15 16:29:49 114

原创 使用Hibernate的校验规则

在我们从前端向后端发送数据时,都会在前端进行一些数据的校验,来统一输入的形式,防止攻击我们的系统,但是我们也需要防止攻击者绕过页面,通过使用某种工具来进行请求访问(例如:PostMan),因此我们需要在后端也要进行校验数据。当数据不过多时,我们可以手写校验规则。当传入的数据过多时,我们就需要使用Hibernate提供的一种校验框架来进行校验。在后端接收数据时,我们一般使用bean的方式进行接收,所以我们可以为需要校验数据的字段加上校验注解,来实现第一步校验的配置以新增学生为例第一步 为字段添加校.

2021-08-08 17:07:06 333

原创 如何确认RabbitMq发送消息的可靠性

如何确认RabbitMq发送消息的可靠性消息真的发出去了吗?消息发送后,发送端不知道RabbitMQ是否真的收到了消息,如果RabbitM异常,那么消息丢失后,业务流程就停止,发生异常,所以我们需要使用RabbitMq发送端确认机制,确认消息发送消息确认机制分为:单条同步确认机制,多条同步确认机制和异步确认机制我们需要使用channel开启消息确认机制//开启消息确认机制channel.confirmSelect();/**单条和多条同步确认机制都是使用此方法,返回true或false

2021-08-08 16:13:22 290

转载 gin学习

gin模板渲染//创建一个默认的路由引擎r := gin.Default()//指定模板的位置r.LoadHTMLGlob("templates/**/*")//使用get函数r.GET("/posts/index", func(c *gin.Context) { /** 第一个参数 状态码 第二个参数 文件的名称,如果未设定则使用文件名称,使用{{define "文件名称"}} {{end}} 第三个参数 要渲染的模板中定义的key */

2021-07-11 23:03:03 277

原创 JVM内存结构

一、整体架构二、程序计数器程序计数器(PC)是一个中央处理器中的寄存器,用于指示下一条将要执行的指令的地址。特点线程私有每个线程都拥有着自己的程序计数器,在现在的操作系统中,多个线程都是按照时间片轮转的方式交替进行执行,当一个线程返回cpu进行运行时,就会查找属于他的程序计数器,继续执行操作程序技数器不会出现内存溢出的情况三、虚拟机栈每个线程都拥有着自己的内存空间,又叫虚拟机栈。虚拟机栈又包括着一个个的栈帧,这一个个的栈帧对应每次调用的方法所用的内存每个线程只有一

2021-07-11 21:37:40 158

原创 Java代码操作RabbitMq

Java代码操作RabbitMq使用Java代码创建交换机,队列以及绑定关系/**创建connection,根据connection创建channel,这样就形成了代码与RabbitMq的会话通道*/ConnectionFactory connectionFactory = new ConnectionFactory();connectionFactory.setHost(主机Ip);/**创建连接后,要将连接关闭,因为Connection,Channel都实现了java.lang.Aut

2021-07-11 21:36:23 419

原创 如何确认RabbitMq发送消息的可靠性

如何确认RabbitMq发送消息的可靠性消息真的发出去了吗?消息发送后,发送端不知道RabbitMQ是否真的收到了消息,如果RabbitM异常,那么消息丢失后,业务流程就停止,发生异常,所以我们需要使用RabbitMq发送端确认机制,确认消息发送消息确认机制分为:单条同步确认机制,多条同步确认机制和异步确认机制我们需要使用channel开启消息确认机制//开启消息确认机制channel.confirmSelect();/**单条和多条同步确认机制都是使用此方法,返回true或false

2021-07-11 21:25:15 189

原创 Java代码操作RabbitMq

Java代码操作RabbitMq使用Java代码创建交换机,队列以及绑定关系/**创建connection,根据connection创建channel,这样就形成了代码与RabbitMq的会话通道*/ConnectionFactory connectionFactory = new ConnectionFactory();connectionFactory.setHost(主机Ip);/**创建连接后,要将连接关闭,因为Connection,Channel都实现了java.lang.Aut

2021-07-11 20:51:14 227

原创 RabbitMQ的管理页面

RabbitMQ的管理页面当安装完RabbitMq,访问安装主机Ip:15672即可进入管理界面,初始密码为guest/guest主界面ExchangeQueueAdmin

2021-07-11 17:12:16 2764

原创 初始RabbitMQ

初识RabbitMqAMQP定义:AMQP是具有现代特征的二进制协议。是一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开发标准,为面向消息的中间件设计AMQP协议结构图各个结构的概念**Publisher:**生产者**Routing:**exchange与queue建立的绑定关系**Connection:**生产者或消费者与Broker(RabbitMq)建立的连接关系**Channel:**生产者或消费者与Broker(RabbitMq)建立的会话通道,通过会

2021-07-11 17:05:30 111

原创 go基础-变量、数组、切片、流程控制、map

声明变量var 变量名 变量类型变量名 := 值var 变量名 = 值数组//数组声明var 数组名 [数组长度]数组类型var 数组名 = [数组长度]数组类型{数组值}数组名 := [数组长度]数组类型{数组值}切片slice//与数组的区别 不带数组长度var 切片名 []类型切片名 := make([]类型,切片长度,切片容量)流程控制if语句//与java区别 不带括号if 条件{ }else if 条件 { }else {

2021-06-27 15:56:02 83

原创 自定义全局异常

自定义全局异常基础类@Data@NoArgsConstructorpublic class Result { //操作结果 private boolean success; //返回编码 private Integer code; //响应信息 private String message; //返回结果中携带的数据 private Object data; //只返回结果,不响应数据 public Result(R

2021-06-27 15:29:55 228

原创 使用SpringBoot+axios+hutool进行Excel的导出工作,并且在前端响应字符串的问题处理

SpringBoot与hutool工具进行结合的情况不需要进行介绍,可以通过以下链接去查看hutool文档进行了解https://www.hutool.cn/docs/#/poi/Excel%E7%94%9F%E6%88%90-ExcelWriter在这里,我根据上面的描述都完成了,可是在使用axios进行交互的时候,发现无法进行下载,只会生成一系列的字符串。通过查资料了解axios只会返回json的字符串,所以需要在前端进行处理一下,因此我加入了以下前端代码。 //导出excel exp

2021-05-23 12:51:30 341

原创 JVM简介

一、什么是JVM定义:英文Java Virtual Machine,一种能够运行java bytecode的虚拟机,以堆栈结构机器来进行实做。最早由Sun微系统所研发并实现第一个实现版本,是Java平台的一部分,能够运行以Java语言写作的软件程序。(维基百科)二、好处1、一次编写,导出运行,java的字节码文件是运行在jvm上,只要符合jvm的运行标准,就可以跨平台进行运行2、自动内存管理,垃圾回收机制3、数组下标越界检查三、JVM JRE JDK的区别JRE JDK的区别...

2021-05-21 15:47:20 150

原创 适配器模式

阅读文章:https://refactoringguru.cn/design-patterns/adapter一、解决了什么问题适配器模式是一种结构型设计模式,它能使接口不兼容的对象能够相互合作[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3ufxKdbz-1620269582413)(F:\2笔记整理\images\image-20210506101111572.png)]二、不使用此设计模式会出现什么情况无法将不兼容的对象进行相互合作三、符合什么原则1、.

2021-05-06 10:53:38 198

原创 前后端分离开发

要掌握的知识点为SpringBoot+vue遇到的一些问题vue前端的端口为8080SpringBoot的端口为8181vue使用axios访问后端[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SZbrQomp-1618031064702)(F:\2笔记整理\images\image-20210410130103086.png)]需要解决跨域问题使用后端代码解决跨域问题@Configurationpublic class CrosConfig implem

2021-04-10 13:05:25 151 1

ElasticSearch.postman_collection.json

存储ES的操作,便于后期查看

2021-08-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除