自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 收藏
  • 关注

原创 定时自动清理日志文件shell脚本配置

每隔一段时间服务器磁盘空间总会被应用输出日志打满,故而需要配置自动清理日志文件脚本,配合crond定时任务实现自动化执行。执行创建文件命令touch shell.sh,并编辑输入以下脚本:#!/bin/bash# 日志文件存放路径logPath=/data/logs# 截取根目录磁盘的占用率disk=$(df -h|grep "/$"|awk '{print int($5)}')if [ $disk -gt 85 ]; then for i in `/usr/bin/ls -thr $

2021-12-25 16:05:04 4731

原创 MySQL8.0主从复制的配置

数据库主从复制,就是通过配置把数据(指新写入的数据,旧的数据不会复制)从主数据库复制到从数据库,使得数据保持一致性!配置主从复制,可以防止数据的丢失以及可实现读写分离提高效率!前提:数据库版本需要一致!表结构一致详细介绍可以查看[官方文档]!(https://dev.mysql.com/doc/refman/8.0/en/replication.html)阅读官方文档可知,我们有两种方法配置主从复制,一种是传统的基于二进制日志文件的方法(需要配置同步日志文件及其位置),另外一种是基于全局事务标识符

2020-08-06 10:43:43 8843 7

原创 docker-compose部署Vue项目

本文说下怎么使用 docker-compose 部署 Vue 项目!(一)打包 Vue 项目,并上传至服务器解压在前端 Vue 工程项目中执行打包命令:>npm run build然后可看到在工程项目中生成了一个zip包:在 Linux 服务器上使用sz命令上传该zip包,之后执行解压命令:unzip -o dise.zip -d dist/说明:-o 表示覆盖存在的文件-d 表示解压到指定该路径下(二)编辑 Nginx 配置文件以及 docker-compose 文件

2020-07-21 01:57:34 6353

原创 docker-compose编排ELK+Filebeat

ELK+Filebeat主要用于日志系统,主要包括四大组件:Elasticsearch、Logstash、Kibana以及Filebeat,也统称为Elastic Stack。下面详细介绍docker-compose安装的过程(单机版)!(一)创建相关目录路径创建一个elk目录: mkdir elk切换到elk目录下,然后在其下分别创建elasticsearch、logstash、kibana、filebeat目录以及各目录相关的需要挂载到容器中的配置文件:...

2020-07-19 18:24:11 3034 1

原创 Ubuntu18.04安装Docker以及docker-compose

Docker安装,可以参考官网的安装步骤!下面采用的是使用官方安装脚本自动安装。(一)先卸载可能存在的旧版本sudo apt-get remove docker docker-engine docker.io containerd runc(二)安装命令curl -fsSL https://get.docker.com -o get-docker.shsudo sh get-docker.sh最后通过查看Docker版本号验证是否成功安装:docker -version(三)安装d

2020-07-18 19:14:48 854

原创 spring-cloud-alibaba(三):Sentinel分布式系统的流量防卫兵

Sentinel是什么?在之前Spring Cloud低版本中,处理服务降级与熔断时,我们会用到Hystrix断路器,但与Eureka服务注册中心一样,由于社区停止了维护,所以开发者在寻求替代品,除了Spring官方推荐的Resilience4J外,Sentinel就是我们的又一选择。需要了解更多介绍,可以看github项目文档下面快速讲解怎么使用!maven依赖版本:依赖版本号JDK1.8spring-boot-starter-parent2.3.0.RELEASE

2020-07-17 16:34:51 4786 2

原创 使用Dockerfile构建镜像(以构建sentinel-dashboard镜像为例)

开发中,有时候需要我们使用Dockerfile自定义构建镜像,下面以构建sentinel-dashboard镜像为例进行说明!(一)下载sentinel-dashboard的jar包本人使用的是Ubuntu服务器,进入到自己所创建的路径中下载jar包:wget https://github.com/alibaba/Sentinel/releases/download/1.7.2/sentinel-dashboard-1.7.2.jar(二)编写Dockerfile文件在jar包所在路径下,先创

2020-07-14 13:33:56 1588 4

原创 MySQL数据库索引的类型、命名规范、建立原则以及索引失效的情况

本篇中记录下数据库索引相关的知识点!索引是什么?举个例子;大家去图书馆借书时,会先在电脑检索书名或作者等关键字信息,查询出该本书对应的一个图书索引后,紧接着就可以拿着这个图书索引去精确定位存放该索引范围内的书架并找到这本书!所以数据库索引也是这个作用,通过在表的一列或多个列上建立索引对象,用于加快数据的检索。(一)索引的类型唯一索引索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。主键索引是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值。一般是在建表设置

2020-07-12 19:05:23 19029 3

原创 读懂MySQL的explain

关于MySQL的优化,我们可以查看官方文档!这里就explain查看MySQL优化器的执行计划作简单的分析,可以据此做SQL优化!首先看一个简单例子:可看到执行explain后会返回很多字段信息,以下为所返回的字段信息对应的解释:字段内容解释idselect查询的序列号;id相同,执行顺序由上至下;id不同,id的序号会递增,id值越大优先级越高,越先被执行select_type查询的类型table当前访问的数据表名partitions匹配的分区

2020-07-12 14:07:39 219

原创 关于Ubuntu服务器开启Docker远程访问后,出现自动下载镜像并启动容器的问题

怎么开启Docker远程访问,请查看该篇文章!出现的奇怪问题:在一直开启远程访问后,服务器会不定时下载Ubuntu镜像或者busybox镜像并启动相应的容器(会启动多个),以致最后可能出现服务器运行内存被消耗尽,影响其他服务进程。然后在网上也看到网友有相同的提问:最后解决办法: 每次构建完Dockerfile文件后,关闭远程访问即可!...

2020-07-11 15:18:15 917 2

原创 Ubuntu服务器开启Docker远程访问

在使用Idea直接构建Dokcerfile文件时,我们需要打开Docker的远程访问!(一)开启Docker远程访问Docker的启动配置文件在Ubuntu18.04系统的路径为/lib/systemd/system/docker.service进入到/lib/systemd/system路径下,然后编辑docker.service配置文件:vim /lib/systemd/system/docker.service找到ExecStart所对应的行,修改为(Docker的远程访问接口为2

2020-07-11 14:58:00 4196

原创 spring-cloud-alibaba(二):Nacos的持久化

我们平常学习或者简单使用时,习惯于直接在Nacos控制台写入配置文件,这是单节点且非持久化的standalone模式。但应用于实际生产时,我们不应只配置一个单点,为了保证高可用,需要做到Nacos集群,这样即便一个节点宕机了,其他节点也可持续提供服务;而Nacos持久化是为了防止配置文件数据的丢失以及保证多个节点能共用一份配置文件,这就是持久化的cluster模式。...

2020-06-27 20:26:51 547

原创 Go的Gin框架整合Swagger

最近在研究Go的Gin框架,本文简单记录怎么整合Swagger。版本信息:gin v1.6.3swag v1.6.7首先下载安装Gin以及Swagger依赖包:go get -u github.com/gin-gonic/gingo get -u github.com/swaggo/swag/cmd/swag若报以下错:go get github.com/gin-gonic/gin: module github.com/gin-gonic/gin: Get "https://proxy.

2020-06-11 14:39:09 8054 3

原创 Spring Cloud Gateway聚合Swagger2文档(初始版)

在spring Cloud架构下,由于各个微服务拥有独立的Swagger接口文档,但我们不可能每次零散地通过各个服务的端口去访问需要查看的服务接口文档,所以为了能更加直观方便得查看,我们可以在Spring Cloud Gateway网关模块聚合各微服务的Swagger接口文档。依赖版本:依赖版本Spring Boot2.3.0.RELEASESpring CloudHoxton.SR4springfox-swagger22.8.0springfox-swagg

2020-06-02 22:20:29 3473 7

原创 Spring Boot整合Swagger2.9.2版本出现的小问题

访问接口文档地址时,单个应用能正常访问swagger-ui.html页面,但F12看到请求接口有报错:但因为在gateway网关进行了各个服务的接口文档聚合,所以在gateway访问时一直报错,因此最后只能降版本,讲到Swagger2.8.0版本。然后请求时相比2.9.2版本少了两个请求:这算是2.9.x版本的一个小问题吧,可以看github提交的问题...

2020-04-13 18:26:07 3434

原创 Docker下载MySQL8.0镜像并运行

MySQL8.0与MySQL5.7版本有稍微差别。首先到dockerhub搜索需要下载的MySQL镜像版本,这里下载的是8.0.18拉取镜像docker pull mysql:8.0.18创建挂载文件(把MySQL配置文件以及数据库文件挂载到容器外,即宿主机路径下)为什么需要挂载?便于修改数据库配置文件,以及确保数据的不丢失;因为停掉并删掉容器,然后再新开一个时,在没有挂载的前提下...

2019-11-19 22:14:09 2708 2

原创 MyBatis的批量操作

在涉及可以批量操作的时候,假如每次逐条操作,则会每次与数据库建立连接,消耗资源,效率低下。以下简单说说mybatis的批量操作。先送上mybatis官网文档,但文档只说到了批量插入。准备:mysql8.0创建一张teacher表:CREATE TABLE `teacher` ( `tid` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',...

2019-10-09 19:03:28 204

原创 MyBatis手动SQL分页

不少人在使用mybatis时,涉及分页会使用PageHelper分页工具。在只对单表或者一对一的情况下,PageHelper确实挺简单方便的,但在一对多的多表联表查询时,却会出现某些问题,可以查看这篇文章。相比使用PageHelper分页工具,我们可以采取更加保险的原始分页(虽然相对会麻烦点,但却是最靠谱的)。关于分页,其实最关键是获取选取页的数据以及总记录数。代码(只贴关键部分):...

2019-10-07 22:57:05 3571

原创 使用PageHelper遇到的问题

在mybatis结合PageHelper分页工具使用时,可以节省很多代码与时间,但也有可能碰到一些问题。以下会记录使用时遇到的坑。(一)在mybatis使用collection映射一对多关系的结果集时,PageInfo返回的total总数错误案例(只贴关键部分代码):@Servicepublic class TeaherService { @Resource Teache...

2019-10-07 00:57:54 821

原创 Go语言学习前言

本人现在做Java开发,有感于近一两年的竞争激烈,因此想新学一门具有投资前景,未来可快速套现的语言。 综合各版本的编程语言市场占有率排行榜,Java可以忽略,虽占有率高,但从业人数也是巨庞大,夸张点说五个背双肩包穿格子衫的路人有三个从事着Java开发;再看C语言,老牌编程语言但不适合我这种年轻人;接着看排第三的Python,大有超英赶美趋势;再往下看前二十名之内的C++、Objective-C...

2019-08-14 00:20:04 109

转载 kubernates简介

学习了Docker,那么不可避免也得学习Kubernates。以下内容为本人目前接触到的最棒的介绍指南,故在此转载记录下!插画版Kubernates指南(小孩子也能看懂的kubernetes教程)是根据一个视频翻译过来的,比较形象故事简介:Matt Butcher 是 Deis 的平台架构师,热爱哲学,咖啡和精雕细琢的代码。有一天女儿走进书房问他什么是 Kubernetes,于是就有了这本插...

2019-07-24 10:35:47 429

原创 SpringCloud学习(十)Spring Cloud Gateway服务网关

在SpringBoot2.x版本后,spring出了自己的Spring Cloud Gateway服务网关以替代停止开发进入维护的以及性能不算很好的Zuul。(一)创建一个gateway-server服务网关子工程新建工程后,在pom.xml文件中引入以下依赖:<dependencies> <dependency> <gr...

2019-07-16 17:48:09 588

原创 SpringCloud学习(九)Zuul服务网关

在生产环境中,不同的微服务可能会有不同的网络地址,那么引入Zuul,通过它根据用户请求转发到具体的服务中去。另外还能统一在Zuul对请求路由前进行一些操作,比如权限控制、限流等,而不用在每个微服务中都存在同样的一套代码。由于Zuul1.0进入维护阶段以及性能相对来说不算很好,Spring官方提供了一个自己的API网关——Spring Cloud Gateway,以代替Zuul。但我们还是需要了解...

2019-07-16 15:09:19 150

原创 SpringCloud学习(八)Spring Cloud Bus消息总线

在上一篇中,虽然实现了分布式配置中心,但也存在明显的缺陷,假如我修改了配置文件想去刷新读取配置,那么只能通过重启服务去实现,在项目已经上线的情况,这种方式是不可取的。因此本篇介绍Spring Cloud Bus组件,能够实现在不重启服务的前提下通过请求接口去实时刷新配置信息。(一)对config-client工程进行改进要使用Spring Cloud Bus消息总线,需要引入spring-cl...

2019-07-11 19:09:35 163

原创 SpringCloud学习(七)Spring Cloud Config分布式配置中心

鉴于每个微服务基本对应着一个配置文件,假如每次更新逐个去修改配置文件,会给开发人员以及后期维护带来极大的不便,同时还容易出错,因此在Spring Cloud中引入了分布式配置中心组件——Spring Cloud Config。它的实现方式有三种,分别为本地,数据库以及git。本篇介绍的是git的实现方式。(一)创建一个config-server配置中心服务器创建完之后,在子pom.xml中引...

2019-07-09 18:09:37 150

原创 SpringCloud学习(六)Hystrix的Turbine监控数据聚合

上一篇涨介绍了Hystrix的Dashboard来展示单个实例的监测数据,但实际情况中,我们会部署N个微服务,那么不可能再用这种方式一个接着一个输入查看,基于这种场景,Hystrix可以利用Turbine实现数据聚合。对于老司机而言,Turbine这个单词不会陌生,中文意思为涡轮机,所以顾名思义,用来描述聚合很形象。(一)创建一个hystrix-turbine监控数据聚合新建工程后,子pom....

2019-07-06 19:22:50 1192 2

原创 SpringCloud学习(五)Hystrix的Dashboard监控面板

上一篇中我们在Ribbon以及Feign中引入了Hystrix,同时Hystrix提供了监控面板来观察各项详细指标数据。(一)创建一个hystrix-dashboard监控面板子工程新建工程后,需要在子pom.xml引入以下依赖: <!-- dashboard监控面板 --> <dependencies> <dependency&g...

2019-07-06 14:09:05 336

原创 SpringCloud学习(四)熔断器Hystrix的使用

hystrix 当某个服务单元发生故障(类似用电器发生短路)之后,通过断路器的故障监控(类似熔断保险丝),直接切断原来的主逻辑调用,可实现服务降级(服务容错保护),线程隔离,断路器等功能。服务降级(服务容错保护)与线程隔离是绑在一起的,当调用服务超时时,会触发服务降级;而让断路器发挥作用则需满足以下三个参数之一:是否强制开启熔断、请求总数下限、错误百分比下限。断路器未打开之前,对于工程中示例的...

2019-07-03 19:08:30 495

原创 SpringCloud学习(三)Feign声明式调用服务

在上一篇中说到了SpringCloud各服务间接口调用有两种调用方式,在这一篇中将介绍另外一种调用方式——Feign。Spring Cloud Feign整合了Ribbon和Eureka来提供均衡负载的HTTP客户端实现;与Ribbon不同的是,通过Feign只需要定义服务绑定接口且以声明式的方法,优雅而简单的实现了服务调用。(一)创建一个feign-consumer服务消费子工程新建工程后...

2019-07-03 17:38:03 173

原创 SpringCloud学习(二)Ribbon负载均衡器调用服务

在第一篇中,服务注册之后,是利用DiscoveryClient或者LoadBalancerClient 获取注册实例信息拼接需要调用的url去调用接口。虽然效果达到到了,但过程很繁琐,在Spring Cloud中有两种服务调用方式,一种是下面将介绍的Ribbon+RestTemplate调用方式,另一种则是下一篇介绍的在实际项目中用的比较多的Feign调用方式。(一)创建一个ribbon-con...

2019-07-03 13:50:20 103

原创 SpringCloud学习(一)Eureka服务注册与发现

SpringCloud作为微服务架构的集大成者,包含一系列组件,以下内容为本人对其集成的各组件的简单介绍与运用的记录。本学习案例的框架版本:SpringBoot (2.1.4.RELEASE) Spring Cloud (Greenwich.RELEASE)(一)创建父工程新建一个maven父工程,然后在pom.xml文件引入相应的依赖pom.xml文件:<?xml ve...

2019-07-03 01:30:47 262

原创 项目引入jar包,Tomcat8.5报错StackOverflowError

项目中引入第三方开发jar包时,运行tomcat报错:[2019-06-24 01:31:20,114] Artifact jszhst:war: Artifact is being deployed, please wait...24-Jun-2019 13:31:28.184 严重 [RMI TCP Connection(5)-127.0.0.1] org.apache.catalina....

2019-06-24 14:54:35 805

原创 mybatis-generator 整合lombok

使用Lombok工具可以在生成实体类时省掉getter/setter以及构造方法等等代码,使得代码整体更加简洁优雅。在使用MyBatis时,可以利用generator映射数据库反向生成相对应得实体类以及mapper接口和mapper.xml文件。这实现过程的关键时需要自己继承接口自定义一个插件实现类。代码:pom.xml文件(引入org.mybatis.generator依赖以及配置插件,这...

2019-06-10 23:56:10 9048 1

原创 Spring-Cloud-Alibaba(一):Nacos服务注册与配置中心

nacos用来做服务注册中心以及配置中心,相当于springCloud的eureka或者zookeeper服务注册中心,以及spring cloud config配置中心。nacos安装搭建省略,自行百度!(一)创建一个maven父工程,引入spring-cloud以及spring-cloud-alibaba版本依赖<dependencies> <!-- h...

2019-04-28 00:11:10 19719 6

原创 Docker下载MySQL5.7镜像并运行

本地安装了MySQL8.0版本,由于新增了不少特性,且版本驱动也跟旧版本不一致,故只能docker下载一个5.7旧版本了。(一)搜索MySQL5.7镜像并拉取搜索:docker search mysql:5.7拉取镜像:docker pull mysql:5.7(二)查看下载成功的MySQL镜像并启动容器查看拉取的镜像:docker images启动一个MySQL5.7容器:do...

2019-04-21 16:26:15 7929

原创 RabbitMQ应用场景——订单自动过期取消

场景描述:当用户下单后,状态为待支付,假如在规定的过期时间内尚未支付金额,那么就应该设置订单状态为取消。在不用MQ的情况下,我们可以设置一个定时器,每秒轮询数据库查找超出过期时间且未支付的订单,然后修改状态,但是这种方式会占用很多资源,所以在这里我们可以利用RabbitMQ的死信队列。死信队列与普通队列一样,在以下情况下会变成死信队列:消息被拒绝(basic.reject/ basic.na...

2019-04-14 16:41:50 4714 17

原创 RabbitMQ简单理解

消息队列中间件很多,比如ActiveMQ、Kafka 等,这里介绍的是RabbitMQ。(一)基本概念RabbitMQ消息模型图所有消息队列产品的基本服务流程就是消费者(publisher)订阅某个队列,生产者(producer)创建消息,然后发布到队列(queue)中,最后将消息发送到监听的消费者。但RabbitMQ加入了一个Exchange交换器的概念,可以使得生产者先发消息到Exch...

2019-04-14 15:20:41 253

原创 RabbitMQ安装--基于Docker

最近项目用到了RabbitMQ消息队列中间件,因此需要接触学习。本篇主要讲述基于docker下载RabbitMQ镜像,并运行容器(假如不了解docker,请移步docker学习),若要本地安装则移步RabbitMQ官网下载安装包。本人用的是Windows10系统,所以跑的是Docker for Windows。(一)搜索并拉取rabbitmq镜像(docker官网仓库的镜像)搜索镜像(带w...

2019-04-13 13:49:20 292

原创 Docker(二:基本命令行)

下面简单介绍下docker的一些命令操作(本人用的是基于linux内核的ubuntu系统)。前言:在不了解该输入哪个命令时,可以输入docker --help获取全部命令信息,或者进一步筛选docker run --help获取run命令的信息:(一)镜像的搜索 拉取与查看这是docker的官方仓库,我们镜像一般是都是直接从上面拉取。1.搜索docker search [OPTIONS...

2019-03-31 14:32:05 310

原创 Docker(一:Docker概念以及安装)

本系列记录学习docker容器的过程。docker到现在已经发展好几年,且企业应用越来越普遍,所以作为一名技术开发,很有必要去接触学习它。(一)docker三大核心概念docker的三大核心概念是镜像、容器、仓库。容器的启动需要依赖于镜像,镜像需要自定义或者到仓库(类似于git仓库)中下载,打个比喻:镜像相当于面向对象语言中的类,而容器则为类的实例。(二)docker安装(windows1...

2019-03-30 21:04:33 154

空空如也

空空如也

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

TA关注的人

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