- 博客(44)
- 收藏
- 关注
原创 Mysql事务隔离级别
事务及其ACID属性事务是由一组SQL语句组成的逻辑处理单元,事务具有以下4个属性,通常简称为事务的ACID属性。原子性(Atomicity) :事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行。一致性(Consistent) :在事务开始和完成时,数据都必须保持一致状态。这意味着所有相关的数据规则都必须应用于事务的修改,以保持数据的完整性。隔离性(Isolation) :数据库系统提供一定的隔离机制,保证事务在不受外部并发操作影响的“独立”环境执行。这意味着事务处理过程中的中间
2022-05-18 11:07:19
226
原创 Explain详解
Explain工具介绍使用EXPLAIN关键字可以模拟优化器执行SQL语句,分析你的查询语句或是结构的性能瓶颈在 select 语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,执行查询会返回执行计划的信息,而不是执行这条SQLexplain中的列接下来我们将展示 explain 中每个列的信息。id列id列的编号是 select 的序列号,有几个 select 就有几个id,并且id的顺序是按 select 出现的顺序增长的。id列越大执行优先级越高,id相同则从上往
2022-05-18 09:56:17
570
原创 mysql中索引的数据结构
索引的本质索引是帮助MySQL高效获取数据的排好序的数据结构。注意是排好序的数据结构,索引也相当于我们一般书的目录,能够快速的查找需要的内容。索引存储在哪?对于不同的存储引擎,索引所存储的位置是不同的。在mysql中,主要有两种存储引擎: Myisam和InnodbMyisam存储引擎的数据表中,有三种文件格式,分别是以frm为后缀的表结构文件、以MYD为后缀的数据文件,以MYI为后缀的索引文件;Innodb存储引擎的数据表中,有两种文件格式,以.frm为后缀的表结构文件、以ibd为后缀的索引与
2022-05-18 09:32:35
1457
原创 JAVA导出CSV文件出现中文乱码
今天公司项目出现一个csv文件导出乱码问题,各种编码都试过了,就是不行但是输出流设置一下BM标识就可以了上代码 oOutput = oResponse.getOutputStream(); oOutput.write(0xef);//设置这个 oOutput.write(0xbb);//设置这个 oOutput.write(0xbf);//设置这个 oOutput.write(outData);
2022-03-09 20:08:38
1923
原创 JAVA项目中对配置文件敏感信息进行加密
背景介绍:在我们的配置文件中有一些信息比较敏感,明文显示,安全性就比较低一些,比如数据库的用户名与密码,对此本文我们以SpringBoot项目为例将对用户名与密码进行加密!案例引入包<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId>
2022-02-26 15:59:19
2583
2
原创 JAVA基础学习之常量与变量
一、首先先认识标识符1.什么标识符标识符(identifier)是指用来标识某个实体的一个符号,在不同的应用环境下有不同的含义。在计算机编程语言中,标识符是用户编程时使用的名字,用于给变量、常量、函数、语句块等命名,以建立起名称与使用之间的关系。标识符通常由字母和数字以及其它字符构成。2.标识符的命名规则• 标识符可以由字母、数字、下划线(_)和美元符($)组成,不 能以数字开头• 标识符严格区分大小写• 标识符不能是Java关键字和保留字(后续讲解)• 标识符的命名最好能反映出
2022-02-25 14:54:24
263
原创 remote: invalid credentials fatal: Authentication failed
解决办法:执行如下命令,重置权限验证信息git config --system --unset credential.helper可以了
2021-11-23 11:04:24
2233
原创 Java使用aop+反射实现自定义注解
什么是注解注解用来给类声明附加额外信息,可以标注在类、字段、方法等上面,编译器、JVM以及开发人员等都可以通过反射拿到注解信息,进而做一些相关处理常用注解@Override 只能标注在子类覆盖父类的方法上面,有提示的作用@Deprecated 标注在过时的方法或类上面,有提示的作用@SuppressWarnings(“unchecked”) 标注在编译器认为有问题的类、方法等上面,用来取消编译器的警告提示,警告类型有serial、unchecked、unused、all
2021-07-14 17:31:07
768
1
原创 Kafka海量日志收集
一、安装Kafkakafka下载地址:http://kafka.apache.org/downloads.htmlkafka需要zk,此处省略zk安装kafka安装步骤1.解压kafka2.进入kafak解压文件的conf目录修改配置文件 server.propertieslisteners=PLAINTEXT://172.17.0.15:9092 #本机ip地址zookeeper.connect=172.17.0.15:2181 #zk的地址3.如果是云服务器有内网外网ip的情况,修改
2021-07-13 16:23:59
425
原创 java反射常用操作
什么是反射Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。本质是JVM得到class对象之后,再通过class对象进行反编译,从而获取对象的各种信息。Java属于先编译再运行的语言,程序中对象的类型在编译期就确定下来了,而当程序在运行时可能需要动态加载某些类,这些类因为之前用不到,所以没有被加载到JVM。通过反射,可以在运行时动态地创建对象并调用其属性,不需要提前在编译期知道运行的对象是谁使用反射机制可以动态获取当前class的信息 比如方法的信
2021-07-13 16:22:58
181
原创 could not find java; set JAVA_HOME or ensure java is in PATH
搭建elk环境的时候出现could not find java; set JAVA_HOME or ensure java is in PATH,我的解决方法Java -vesion 看看是否有javar环境变量如果有如下export JAVA_HOME=/usr/jdkexport JRE_HOME=$JAVA_HOME/jreexport CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATHexport PATH=$JAVA_HOME/b
2021-06-29 14:07:09
840
原创 腾讯云发布Apollo项目时 注册中心为内网ip 本地无法访问解决办法
找到demo.sh文件进行编辑加入-Deureka.instance.ip-address=外网ip地址 即可如图
2021-06-02 15:26:04
857
原创 Docker安装步骤 基于Docker搭建Maven私服 Docker部署GitLab环境搭建
介绍Docker 是一个开源的商业产品,有两个版本:社区版(Community Edition,缩写为 CE)和企业版(Enterprise Edition,缩写为 EE)。企业版包含了一些收费服务,个人开发者一般用不到安装步骤Docker 要求 CentOS 系统的内核版本在 3.10以上 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。通过 uname -r 命令查看你当前的内核版本uname -r使用 root 权限登录 Centos。确保 yum 包更
2021-05-29 00:52:40
157
原创 spring框架基础学习之路
一、IoC控制反转IoC控制反转,全称Inverse of Control,是一种设计理念由代理人来创建与管理对象,消费者通过代理人来获取对象IoC的目的是降低程序与程序之间直接耦合加入IoC容器将对象统一管理,让对象关联变为弱耦合二、DI依赖注入IoC是设计理念,是现代程序设计遵循的标准,是宏观目标DI(Dependency Injection)是具体技术实现,是微观实现DI在Java中利用反射技术实现对象注入(Injection)三、Spring的含义Spring可从狭义与
2021-05-22 16:11:52
226
原创 SpringCloud微服务学习之Feign-服务间通信与调用
服务间的调用现有的服务调用方式Erueka:http://ip:port/pathRibbon:http://serviceName/pathFeign解决了什么问题:简化远程调用Feign的调用方式:@FeignClient(“service-name”)创建Feign的消费实列1.创建项目feign-consumer修改pom.xml文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="ht
2021-05-22 16:10:13
449
原创 SpringCloud微服务学习之Ribbon-负载均衡
什么是负载均衡学微服务了,应该都知道吧,我这不解释了!走进Ribbon一个HttpRequest发过来,先被转发到Eureka上。此时Eureka仍然通过服务发现获取了所有服务节点的物理地址,但问题是他不知道该调用哪一个,只好把请求转到了Ribbon手里。 IPing IPing是Ribbon的一套healthcheck机制,故名思议,就是要Ping一下目标机器看是否还在线,一般情况下IPing并不会主动向服务节点发起healthcheck请求,Ribbon后台通过静默处理返回true默认表
2021-05-21 15:22:53
115
原创 SpringCloud微服务学习之Eureka服务治理
一、微服务的优点1.快速响应变更:单一职责,独立部署2.精粒度业务控制:降级熔断,局部限流3.独立扩展:边界清晰,不过度受制于技术栈4.面向业务/领域模型:不依赖数据模型,易于抽象二、微服务的缺点1.部署结构复杂:模块众多,一堆额外组件2.依赖平台支撑:依赖微服务组件,研发成本3.分布式问题:一致性,异常补偿4.拆分水平:粒度过程/过细...
2021-05-19 09:05:21
486
原创 MyBatis学习之MyBatis进阶
一、MyBatis日志管理什么是日志a. 日志文件是用于记录系统操作事件的记录文件或文件集合b. 日志保存历史数据,是诊断问题以及理解系统活动的重要依据实现 1. 首先引入依赖 <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId>
2021-03-29 22:11:50
138
原创 Mybatis学习之Mybatis基础入门学习
一、什么是MyBatisMyBatis是优秀的持久层框架MyBatis使用XML将SQL与程序解耦,便于维护MyBatis学习简单,执行高效,是JDBC的延伸二、MyBatis开发流程引入MyBatis依赖创建核心配置文件创建实体(Entity)类创建Mapper映射文件初始化SessionFactory利用SqlSession对象操作数据...
2021-03-27 17:58:02
162
原创 JS使用Base64加密算法对密码进行加密传输到后台JAVA进行解密 前端密码加密传输
1.需要jquery.base64.js文件,如需文件请私聊或者自己下载2.JS代码 <script type="text/javascript"> /* 加密方法。没有过滤首尾空格,即没有trim. 加密可以加密N次,对应解密N次就可以获取明文 */ function encodeBase64(mingwen,times){ var code=""; var num=1; if(typeof times=='undefined'||t
2021-01-26 20:21:21
1666
1
原创 如何实现分布式锁 分布式锁的解决方案
一、什么是超卖举例:某件商品库存数量10件,结果卖出了15件二、超卖现象一系统中库存为1,但是产生了两笔订单解决方法扣减库存不在程序中进行,而是通过数据库向数据库传递库存增量,扣减1个库存,增量为-1xian - 在数据库update语句计算库存,通过update行锁解决并发三、超卖现象二系统中库存变为 -1产生原因:并发检验库存,造成库存充足的假象,update更新库存,导致库存为负数解决方法:校验库存、扣减库存统一加锁,使之成为原子性的操作,并发时只有获得锁的
2020-09-24 18:08:25
257
原创 分布式搜索引擎Elasticsearch之linux环境下安装Elasticsearch详细步骤 Elasticsearch中文分词器 Logstash数据同步
一、将下载好的Elasticsearch包上传到Linux的目录,通过tar -zvxf 文件名解压二、将解压好的文件复制到自己喜欢的目录(可以省略)mv elasticsearch-7.4.2 /usr/local/三、进入 elasticsearch-7.4.2 目录创建一个data目录,作为数据目录cd elasticsearch-7.4.2/makdir data四、进入config目录对elasticsearch.yml 核心文件进行修改(当前在elasticsearch-7.
2020-09-18 11:43:38
203
原创 Redis实现分布式会话 使用Token实现登录注册 分布式会话拦截器 Token实现请求拦截 SpringBoot整合拦截器
1.用户注册时生成Token@ApiOperation(value = "用户注册", notes = "用户注册", httpMethod = "POST") @PostMapping("/regist") public IMOOCJSONResult regist(@RequestBody UserBO userBO, HttpServletRequest request,
2020-09-17 10:06:01
716
原创 threw exception [Request processing failed; nested exception is org.springframework.data.redis.Redis
1.连接服务器查看redis情况发现该redis为从节点,没有写的权限。2.info replication
2020-09-16 22:43:56
5311
原创 The server time zone value ‘Öйú±ê׼ʱ¼ä‘ is unrecognized or represents more than one time zone. You
连接时后面加上serverTimezone=UTCspring: datasource: # 数据源的相关配置 url: jdbc:mysql://localhost:3306/foodie-shop-dev?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=UTC password
2020-09-16 22:39:39
79
原创 java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempt
1.maven引入的驱动jar包版本的问题,因为我本来安装的数据库版本高报错时引入的jar <!-- mysql驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.41</version> </dependency>
2020-09-16 21:46:06
471
原创 SpringBoot整合Redis及Redis如何实现缓存功能 SpringBoot整合Redis哨兵 Redis缓存穿透的解决方案 缓存雪崩
一、修改pom文件 <!-- 引入 redis 依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>二、修改yml文件spring: redis: # Redis
2020-09-14 10:40:15
228
原创 redis主从架构 哨兵模式
一、主从复制1.主从架构就是读写分离2.主从原理:就是全量的数据复制,主节点的RDB文件从内网传输,传给从节点,从节点下载然后写入3.修改redis.conf文件配置主从复制# replicaof <masterip> <masterport>行下加入replicaof 192.168.152.138 6379# masterauth <master-password>行下加入masterauth 123456注释:192.168.152.138为主节
2020-09-11 16:58:39
91
原创 Redis的安装 什么是分布式架构 分布式架构优点 分布式架构缺点
一、什么是分布式架构1.不同的业务(功能模块)分散部署在不同的服务器2.每个子系统负责一个或者多个不同的业务模块3.服务之间可以相互交互与通信4.分布式设计对用户透明5.可以发展为集群分布式系统架构(微服务架构是分布式系统中的一种)二、分布式架构优点1.业务解耦2.系统模块化,可重用化3.提升系统并发量4.优化运维部署效率三、分布式架构缺点1.架构复杂2.部署多个子系统复杂3.系统之间通信耗时4.新人融入团队缓慢5.调试复杂四、设计原则1.异步解耦2.幂等一致性3.拆
2020-09-09 11:28:09
337
原创 Nginx实现高可用之Nginx集群负载均衡 Nginx构建Tomcat集群 upstream 指令参数
一、四层负载均衡1.F5硬负载均衡2.LVS四层负载均衡3.Haproxy四层负载均衡4.Nginx四层负载均衡二、七层负载均衡1.Nginx七层负载均衡2.Haproxy七层负载均衡3.apache七层负载均衡七层负载均衡基本处理http协议的用于web服务器如tomcat,四层负载均衡主要处理tcp,udp协议。三、DNS地域负载均衡根据服务器ip,就近原则,提高访问速度...
2020-09-03 18:29:07
345
原创 Nginx实现高可用之Keepalived双机主备原理 Keepalived+nginx实现高可用
首先需要两台服务器,虚拟机即可一、Keepalived概念1.解决单点故障2.组件免费3.可以实现高可用HA机制4.基于VRRP协议,解决内网单机故障的路由协议,可以构建多个路由器二、Keepalived的安装1.将Keepalived上传到服务器的指定目录然后解压2.进入解压后的目录为Keepalived做一个配置a步骤./configure --prefix=/usr/local/keepalived --sysconf=/etc解释:/usr/local/为安装目录 --s
2020-07-21 14:58:41
495
原创 Nginx实现高可用之nginx解决跨域问题 nginx配置资源防盗链
一、解决跨域问题配置在nginx.conf的server中加入以下配置#允许跨域请求的域,*代表所有add_header 'Access-Control-Allow-Origin' *;#允许带上cookie请求add_header 'Access-Control-Allow-Credentials' 'true';#允许请求的方法,比如 GET/POST/PUT/DELETEadd_header 'Access-Control-Allow-Methods' *;#允许请求的headera
2020-07-17 10:55:54
180
原创 Nginx实现高可用之nginx日志切割(手动,定时)nginx日志定时获取nginx日志手动获取
一、手动1.安装好nginx,nginx的安装请看我主页2.进入nginx的sbin目录创建一个shell可执行文件:cut_my_log.sha.vim cut_my_log.shb.输入以下指令#!/bin/bashLOG_PATH="/var/log/nginx/"RECORD_TIME=$(date -d "yesterday" +%Y-%m-%d+%H:%M)PID=/var/run/nginx/nginx.pidmv ${LOG_PATH}/access.log ${LOG_P
2020-07-16 17:40:31
247
原创 nginx: [e: No such file or directory)rror] open() “/var/run/nginx/nginx.pid“ failed (2: No such file
执行./nginx -s reload命令的时候出现了以下错误:nginx: [error] open() “/var/run/nginx/nginx.pid” failed (2: No such file or directory)表示nginx.pid找不到分析了一下主要有两个原因:1.可能目录不存,输入以下命令看是否有这个目录cd /var/run/nginx如果没有这个目录则创建一个mkdir /var/run/nginx2.文件创建时候再次输入命令./nginx -s reloa
2020-07-16 16:39:13
267
原创 Nginx实现高可用之Nginx首页加载解析过程 nginx常用命令 与Nginx进程Nginx的nginx.conf配置文件
一、首页加载解析过程1.当浏览器访问http://192.168.12.92:80/时,/表示根目录,80表示端口2.请求来到服务器,服务器会监听80端口,当监听到的时候会将相应请求给某个特定的server,然后server映射路由找到html页面。进入conf目录查看 nginx.conf文件 server { listen 80; server_name localhost; #access_log logs/host.access
2020-07-15 22:22:33
306
原创 Nginx实现高可用之Nginx安装与运行 Linux环境下安装并运行Nginx详细步骤
一、安装Nginx1.去官网http://nginx.org/下载对应的nginx包也可以使用我的:2.上传nginx到Linux系统3.安装环境依赖a.安装gcc环境yum install gcc-c++b.安装PCRE库,用于解析正则表达式yum install -y pcre pcre-develc. zlib压缩和解压缩依赖,yum install -y zlib zlib-develd.SSL安全的加密的套接字协议层,用于HTTP安全传输,也就是httpsyum i
2020-07-15 17:45:45
1899
2
原创 用js获取表格td中input标签的值
修改一个功能时发现表格td中的input是动态加载的,js无法直接通过id直接获取input中的值<td class="tableFormInput" width="45%" id="QueryCondition"></td>td中无input页面加载时如图:想要获取input中的值用以下代码:document.getElementById("QueryCondition").getElementsByTagName("input")[0].value;先获取表格t
2020-07-15 16:04:19
4273
原创 SpringBoot部署项目到服务器之SpringBoot打war包详细步骤
一、打包方式jar包:服务化的概念,后续接触springcloud,所有的服务打包都是以jar的形式存在war包: 应用程序的概念,也可以向外提供服务和接口二、步骤修改pom.xml文件1.修改packaging<packaging>war</packaging>2.移除自带内置tomcat<exclusions> <exclusion> <artifactId>spring-boot-starter-tomcat&
2020-07-14 15:18:11
704
原创 SpringBoot部署项目到服务器之SpirngBoot项目多环境部署
一、环境1.开发环境 dev2.测试环境 test3.生产环境 prod二、profile 提供多环境支持1.application.yml -> 主环境2.application-{name}.yml -> 环境配置(挂件)3.激活多环境 -> spring.profiles.active:{name}三、如何使用1.在application.yml 放入以下代码spring: profiles: active: dev 2.创建a
2020-07-14 14:56:36
329
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人