- 博客(71)
- 收藏
- 关注
原创 事务与分布式事务区别
Transaction Coordinator(TC):事务协调器,它是独立的中间件,需要独立部署运行,它维护全局事务的运行状态,接收 TM 指令发起全局事务的提交与回滚,负责与 RM 通信协调各各分支事务的提交或回滚。:依赖于数据库,能够很好的提供强一致性和强事务性,但相对来说延迟比较高,比较适合传统的单体应用,在同一个方法中存在跨库操作的情况,不适合高并发和高性能要求的场景。:锁资源:发送预提交请求,参与者开始提交操作,如果成功执行事务操作,则返回ACK响应,失败返回NO或者返回超时,则中断事务。
2024-01-04 13:56:08 942
原创 RabbitMQ
AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。Erlang中的实现有RabbitMQ等。**Broker(中间件-**消息队列服务器实体**)**:接收和分发消息的应用,RabbitMQ Server就是Message Broker。
2024-01-04 11:16:40 902 1
原创 Mysql8新特性-json函数
MySQL里的json分为json array和json object。表示整个json对象,在索引数据时用下标对于jsonarray,从0开始或键值对于jsonobject,含有特殊字符的key要用括起来,比如例如:[3, {“a”: [5, 6], “b”: 10}, [99, 100]],那么:$[0]:3$[1].b:10$[2][0]:99。
2024-01-04 11:12:40 582
原创 Mysql8.0新特性
(涉及写入缓存的点:redo log 8.0之前通过两个锁及队列的方式保证数据的一致性,8.0之后,去掉锁,采用了区间的方式,区间内的所有日志是原子性的,都是串行化执行,以此来提高性能)redo log是重做日志,提供前滚操作,他是innodb事务日志的一部分,另一部分是undo log,提供回滚操作。redo log是一种物理日志,记录的是数据页的物理修改,而undo是行记录。redo log分为两部分,一是写入内存的日志,二是从内存写入磁盘的日志。
2024-01-04 11:11:29 412
原创 WebSocket
tomcat/undertow/其他:如果存在多个会导致方法的实现类过多找不到对应的使用方法,websocket容器加载为null。如果使用undertow容器则需要排除spring-boot-start-web自带的tomcat容器。如果仍然解决不了则需要排查是否存在其余功能引入了tomcat,最简单的则是单独起websocket。
2024-01-03 09:34:20 569
原创 thumbnailator对图片进行各种处理
方法1.读入源图片可以批量处理,多个文件或者文件夹;2.设置大小,按比例或者拉伸3.剪裁4.旋转5.水印6.质量7.输出格式8.输出图片实现代码用JAVA读取图片的三种方式参考实现:参考地址:java读取图片方法实现代码
2024-01-03 09:31:38 353
原创 常用注解(Annotation)
Annotation型定义为@interface, 所有的Annotation会自动继承java.lang.Annotation这一接口,并且不能再去继承别的类或是接口.参数成员只能用public或默认(default)这两个访问权修饰参数成员只能用基本类型byte,short,char,int,long,float,double,boolean八种基本数据类型和String、Enum、Class、annotations等数据类型,以及这一些类型的数组.
2024-01-02 17:19:13 1667
原创 反射和invoke
1、Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。本质是JVM得到class对象之后,2、Java属于先编译再运行的语言,程序中对象的类型在编译期就确定下来了,而当程序在运行时可能需要动态加载某些类,这些类因为之前用不到,所以没有被加载到JVM。通过反射,可以在运行时动态地创建对象并调用其属性,
2023-12-19 09:17:47 914
原创 申请免费的二级域名全流程
EU.org是由Paul Mockapetris在1996年创建的免费域名服务,给没有资金买域名的个人或公司提供永久免费的域名。虽然是二级域名,但是已经被一些网络公司(当然是国外的)认定为顶级域名。
2023-08-01 14:29:14 3527
原创 Mycat安装及配置(基于Mysql)
1、下载安装包2、修改配置项:mycat\conf2.1 schema.xml-重点配置2.2 server.xml -可以不改动2.3 rule.xml -可以不改动3、启动项目:cd mycat/bin/4、查看日志:mycat/logs5、SpringBoot配置 :Mysql-8.06、Mycat--读写分离7、Mycat--分片-横向(水平)8、Mycat--分片-纵向-垂直分库分表9、Mycat--主从切换dataNode多个数据快捷方式;注意:1、Mysql密码加密
2023-07-19 11:30:58 974
原创 Mysql主从搭建
[mysqld]## 设置server_id,同一局域网中需要唯一server_id=100## 指定不需要同步的数据库名称binlog-ignore-db=mysql## 跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。## 1062错误指主键重复,1032错误是因为主从数据库数据不一致slave_skip_errors=1062
2023-07-19 08:36:58 133
原创 多线程-线程池
总体来说,线程池有如下的优势:(1)降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。(2)提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。(3)提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。
2023-06-26 06:00:00 221
原创 多线程-线程池-划重点后面要考
总体来说,线程池有如下的优势:(1)降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。(2)提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。(3)提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。
2023-06-07 15:05:40 691
原创 JDK9-JDK17新特性(重点)
jdk8(2014 年 3 月 18 日发布的)至今,已经将近十年时间,是长期稳定的,但是由于现在springboot3的发布,已经强制需要使用JDK17。
2023-06-07 14:28:03 800
原创 Docker镜像打包及解压(内外网)
*docker save **的应用场景:如果我们的应用是使用 docker-compose.yml 编排的多个镜像组合,但我们要部署的客户服务器并不能连外网。**docker export **的应用场景:主要用来制作基础镜像,比如我们从一个 ubuntu 镜像启动一个容器,然后安装一些软件和进行一些设置后,使用 docker export 保存为一个基础镜像。然后,把这个镜像分发给其他人使用,比如作为基础的开发环境。有两种方法,一种是通过容器,一种是通过镜像,其实本质是一样的,容器的实质就是镜像。
2023-05-31 10:08:38 3218
原创 容器化部署与传统部署区别(简洁版-一句话)
容器化部署:每一个启动的容器/镜像内部都有一个单独的服务器配置列表,与其他的容器互不干扰。进入容器:docker exec -it containerID /bin/bash。传统部署:一个服务器只会有一层目录,部署的项目只会基于这一层来做配置。
2023-04-27 10:04:36 650
原创 Docker前后端部署流程(后台三种-前台一种)
2、打包:docker save -o admin-ui.tar admin-ui(通过nginx部署的需要把nginx也打包放上去)docker.host:提供的docker环境 -> docker build 后会直接保存到这个服务器中。1、准备好需要打包的镜像及文件夹(参考外网部署流程第一步)将以下(除了nginx镜像)都放到一个新建的文件夹中。通过解压缩镜像命令 docker load
2023-04-26 14:18:56 1012
原创 Docker通过nginx部署VUE前端项目及镜像版本部署项目(内网及外网步骤)
2、打包:docker save -o admin-ui.tar admin-ui(通过nginx部署的需要把nginx也打包放上去)将以下(除了nginx镜像)都放到一个新建的文件夹中。通过解压缩镜像命令 docker load <1、准备好需要打包的镜像及文件夹。地址必须为写死的服务器地址。必须为nginx镜像名称。
2023-04-26 10:21:00 1817
原创 nginx 2023版最新详细介绍
down:https://nginx.org/en/download.htmlNginx 是一个 web 服务器,主要处理客户端和服务器的请求分发,是一个高性能的反向代理服务器。代理是在服务器和客户端之间假设的一层服务器,代理将接收客户端的请求并将它转发给服务器,然后将服务端的响应转发给客户端。正向代理,就是客户端将自己的请求率先发给代理服务器,通过代理服务器将请求转发给服务器。我们常用的VPN就是一种代理服务器,为了可以连上国外的网站,客户端需要使用一个可以连接外网的服务器作为代理,并且客户端能够连接
2023-04-17 15:24:10 456
原创 工作中遇到的问题-持续更新
原因:由于启动先后顺序导致,例如其他的服务启动前必须先启动mysql,reds等:补充启动条件:depends_on:- rabbitmq - redis 可添加多个,但是depends_on只判断容器是否进入run状态,而不会判断是否可以成功访问,导致没有ready(成功)便启动了,服务仍旧不能启动成功。
2023-02-10 15:39:26 342
原创 Hygieia搭建步骤
Hygieia搭建步骤了解hygieia基础 信息Hygieia.DOCX本地安装Hygieia开发用到技术栈Hygieia主要java开发的,使用了spring boot框架,前端使用angular.js开发前端相关:node、npm、bower(npm install -g bower)、gulp(npm install -g gulp)后端相关:java、spring boot、maven数据库:mongoDB其中数所有的据都是存储在mongoDB中从github上
2022-12-26 07:00:00 275
原创 jvm调优
jvm调优思路 jvm调优其实更多的是对GC的优化,尤其是尽量减少full GC。大多数情况下,对象在Eden区分配,当Eden区没有足够空间进行分配时,虚拟机将进行一次Minor GC ,可能有99%的对象被标记为垃圾被回收,剩余存活的对象会进入为空的survivor,下一次Eden区满了之后,又会触发minor gc,把Eden区和survivor区垃圾对象回收,把剩余存活的对象一次性挪动到另外一块为空.
2022-12-26 06:00:00 97
原创 elasticsearch基本操作之--QueryBuilders
es存储日志 是按照UTC时间格式存放,以@timestamp 作为时间范围查询条件,即from(Date1) to(Date2)Date1、Date2入参必须是标准的utc格式;
2022-12-23 11:25:07 2237
原创 java 集合Map循环遍历
map.forEach((key,value)->{ System.out.println("key"+key+",value"+value); });
2022-12-23 10:50:07 89
原创 Hygieia (Devops)开源-搭建步骤(一)
什么是HygieiaHygieia出现在两个独立的仪表板中-一个用于工程师,另一个用于高管-直观地描绘了CICD管道。本质上,Hygieia本身是一个聚合器,可从团队在其CICD管道中使用的各种DevOps工具中提取数据,从而使其易于在仪表板视图中进行消化。尽管它是一种易于操作的工具,但是Hygieia提供了以下方面的复杂见解:DevOps成熟度:它提供全自动CICD跟踪质量和流水线速度风险管理和投资:它将运营指标与发展指标联系在一起,全面了解投资地点,以改善流程,减少未来不必要的风险承担敏捷环境
2022-12-04 14:20:20 725
原创 vue-pdf、pdfjs-dist、window.open
如果功能简单,不需要自定义的数据,就选择window.open(url),不会有兼容、字体等问题,一步到位
2021-03-15 16:47:36 714
原创 Vue如何设置跨域
1、开发环境下,如何做好跨域配置首先跨域我们要配置的文件有:config下的index.js dev: { proxyTable: { '/api': { target: 'http://10.1.5.11:8080/',//设置你调用的接口域名和端口号 changeOrigin: true, //跨域 pathRew
2021-02-24 14:39:34 2725
转载 vue环境搭建及vue新建一个项目(最简洁版)
一、vue开发环境搭建1、安装nodejs步骤:在node官网(https://nodejs.org/en/download/ )选择跟自己的电脑匹配的版本进行下载,然后一步步的安装即可,在cmd控制台输入node -v,如果出现版本信息即表示安装成功。2、npm包管理器是集成在node中的,所以直接输入npm -v 就能查看到版本信息,若出现版本信息则表示npm能正常使用。3、输入npm install -g cnpm --registry=http://registry.npm.taobao.o
2020-12-16 20:28:13 6355
转载 使用github建立静态页面可视化效果(网址)
https://zhuanlan.zhihu.com/p/38480155?utm_source=qq
2020-12-16 16:51:17 214
原创 服务器的nodejs安装步骤-n管理器(内外网适用)
(内网环境)1、去官网下载和自己系统匹配的文件:英文网址:https://nodejs.org/en/download/通过 uname -a 命令查看到我的Linux系统位数是64位(备注:x86_64表示64位系统, i686 i386表示32位系统),如图2.下载下来的tar文件上传到服务器并且解压(任意位置并修改名称为端口号1.1.1),然后通过建立软连接变为全局;①ln -s /app/software/1.1.1/bin/npm /usr/local/bin/②ln -s /
2020-12-04 10:36:10 601
原创 服务器:bash:./xxx:无法执行二进制文件报错
三点原因:1.看服务器是linux还是mac,对比你的安装文件类型(我的坑)2.32位还是64位3.权限问题 sudo **.sh
2020-12-04 10:19:04 5560 3
转载 nvm安装及对node.js多版本控制(windows)
参考地址:点击进入一、介绍nvm是nodejs的版本管理工具,利用nvm可以在nodejs的不同版本间切换,同时可以安装、卸载特定版本的nodejs二、安装windows 地址:https://github.com/coreybutler/nvm-windows/releases下载最新版1.1.7三、使用查看系统环境变量可以看到在安装完成后已经把nvm安装地址和符号链接地址已经加到系统环境变量里了。查看用法命令在nvm的安装路径中配置settings.txt文件加入如下内
2020-12-03 11:18:19 107
转载 VMWare上安装的虚拟机CentOS 6.5忘记root密码的解决办法
参考环境:VMWare上安装的虚拟机CentOS 6.5方法:1.在开机启动的时候快速按键盘上的“E”键 或者“ESC”键(有的电脑是按E有些是按ESC),会进入如下界面。如果你的有多个操作系统就会出现多个内核,就会出现多个选项选择你忘记密码的内核,再次按“E”,出现下图,选择第二项,再次按“E”键,第二项的名称会根据个人的设置有些小差异,但是以kernel开头,一般选择第二项就是了经过第二步,这个画面可以编辑,在信息的最后加“空格”,直接输入数字的“1”(如图)或者 键入“single”
2020-12-03 09:37:44 515
转载 jar在linux下发布运行(.sh 命令)
一、打包生成jar,并将jar拷贝linux服务器上二、新增一个shell文件(test.sh)并将改文件放到jar同目录下test.sh 中包括 启动、关闭、重启,查看jar状态命令:具体内容如下:#!/bin/bash#进入当前目录 并自动或jar包cd `dirname $0`APP_HOME=`pwd`APP_NAME="`cd ${APP_HOME} && find -name '*.jar' `"#使用说明,用来提示输入参数usage() { echo
2020-12-02 14:41:00 849
数据库管理端-Apifox安装包
2023-02-10
Linux上部署项目的要求:1.参考相关资料,能够在Linux上成功部署项目即可 2.必须掌握Linux的基本命令
2022-12-29
linux-jdk安装包
2022-12-29
安装JDK安装JDK安装JDK
2022-12-29
kotlin-plugin-222-1.7.21-release-272-IJ4167.29 压缩包
2022-12-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人