- 博客(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
原创 使用流水线(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
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人