自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一个天蝎座的程序猿

情怀,信仰,使命;低调,谦虚,不骄不躁;心比天高,脚踏实地。观察Amazon,追踪FaceBook,跟紧Google,偷瞄Microsoft,朝向Silicon Valley。本博主做事,从来都是走心...

  • 博客(106)
  • 资源 (1)
  • 收藏
  • 关注

原创 K8S系列二:实战入门

官方文档中介绍kubectl是:Kubectl 是一个命令行接口,用于对 Kubernetes集群运行命令。Kubectl的配置文件在$HOME/.kube目录。我们可以通过设置KUBECONFIG环境变量或设置命令参数–kubeconfig来指定其他位置的kubeconfig文件。也就是说,可以通过kubectl来操作K8S集群,官方文档中介绍其基本语法:就如何使用kubectl而言,官方文档已经说得非常清楚。

2023-08-14 18:04:26 1241

原创 K8S系列一:概念入门

试想下传统的后端部署办法:把程序包(包括可执行二进制文件、配置文件等)放到服务器上,接着运行启动脚本把程序跑起来,同时启动守护脚本定期检查程序运行状态、必要的话重新拉起程序。有问题吗?显然有!如果服务的请求量上来,已部署的服务响应不过来怎么办?传统的做法往往是,如果请求量、内存、CPU超过阈值做了告警,运维马上再加几台服务器,部署好服务之后,接入负载均衡来分担已有服务的压力。问题出现了:从监控告警到部署服务,中间需要人力介入!那么,有没有办法自动完成服务的部署、更新、卸载和扩容、缩容呢?

2023-08-14 17:27:29 1161

原创 PO、VO、DAO、BO、DTO、POJO 能分清吗?

实际就是普通JavaBeans,使用POJO名称是为了避免和EJB混淆起来, 而且简称比较直接.其中有一些属性及其getter、setter方法的类,有时可以作为value object或dto(Data Transform Object)来使用.当然,如果你有一个简单的运算属性也是可以的,但不允许有业务方法,也不能携带有connection之类的方法。J2EE开发人员使用数据访问对象(DAO)设计模式把底层的数据访问逻辑和高层的商务逻辑分开.实现DAO模式能够更加专注于编写数据访问代码.

2023-08-11 10:48:31 164

原创 禁止别人调试自己的前端页面代码

前端页面防止调试的方法主要是通过不断 debugger 来疯狂输出断点,因为 debugger 在控制台被打开的时候就会执行。并且添加条件,当窗口外部宽高和内部宽高的差值大于一定的值 ,我把 body 里的内容换成指定内容。由于程序被 debugger 阻止,所以无法进行断点调试,所以网页的请求也是看不到的。为了让自己写出来的代码更加的晦涩难懂,需要对上面的代码再优化一下。当然使用的时候,为了更加的安全,最好使用加密后的脚本。当然使用的时候,为了更加的安全,最好加密后再使用。

2023-08-11 10:25:00 195

原创 【SpringBoot】SpringBoot中后端服务的国际化

国际化

2023-02-06 11:25:46 1255 1

原创 AsyncAPI通过yaml生成html文档

asyncAPI文档

2022-12-01 15:28:28 1013 1

转载 一篇文章从了解到入门 shell

shell 俗称叫做壳,计算机的壳层,和内核是相对的,用于和用户交互,接收用户指令,调用相应的程序。

2022-09-09 15:12:22 507

原创 如何获取IP归属地

IP归属地

2022-08-12 14:47:00 2848

原创 Nginx 面试 40 连问,顶不顶得住~~

Nginx

2022-08-12 11:24:51 297

原创 【SpringBoot】SpringBoot 启动时自动执行代码的几种方式

一、java自身的启动时加载方式static代码块static静态代码块,在类加载的时候即自动执行。构造方法在对象初始化时执行。执行顺序在static静态代码块之后。二、Spring启动时加载方式@PostConstruct注解PostConstruct注解使用在方法上,这个方法在对象依赖注入初始化之后执行。ApplicationRunner和CommandLineRunnerSpringBoot提供了两个接口来实现Spring容器启动完成后执行的功能,两个接口分别为CommandLine

2022-04-25 19:44:06 6943

原创 项目中常用的19条SQL优化宝典

我们开发项目上线初期,由于业务数据量相对较少,一些SQL的执行效率对程序运行效率的影响不太明显,而开发和运维人员也无法判断SQL对程序的运行效率有多大,故很少针对SQL进行专门的优化,而随着时间的积累,业务数据量的增多,SQL的执行效率对程序的运行效率的影响逐渐增大,此时对SQL的优化就很有必要。一、EXPLAIN做MySQL优化,我们要善用 EXPLAIN 查看SQL执行计划。下面来个简单的示例,标注(1,2,3,4,5)我们要重点关注的数据type列,连接类型。一个好的sql语句至少要达.

2022-04-06 13:37:41 475

原创 在IDEA中如何使用tomcat部署项目

文章目录一、IDEA打开tomcat项目二、项目设置2.1 设置项目使用的jdk版本2.2 添加模块(web和spring)2.3 设置web.xml路径和资源目录2.4 添加spring相关的配置文件2.5 添加项目依赖的jar包2.6 添加工件三、配置tomcat与部署工件3.1 添加tomcat配置3.2 部署工件四、启动tomcat进行访问一、IDEA打开tomcat项目二、项目设置2.1 设置项目使用的jdk版本2.2 添加模块(web和spring)2.3 设置web.xml路径

2022-03-24 13:19:09 19918 1

原创 分布式锁之Redis实现

在Java中,关于锁我想大家都很熟悉。在并发编程中,我们通过锁,来避免由于竞争而造成的数据不一致问题。通常,我们以synchronized 、Lock来使用它。但是Java中的锁,只能保证在同一个JVM进程内中执行。如果在分布式集群环境下呢?一、分布式锁分布式锁,是一种思想,它的实现方式有很多。比如,我们将沙滩当做分布式锁的组件,那么它看起来应该是这样的:加锁在沙滩上踩一脚,留下自己的脚印,就对应了加锁操作。其他进程或者线程,看到沙滩上已经有脚印,证明锁已被别人持有,则等待。解锁把脚印从沙.

2022-02-26 11:26:50 512

原创 swagger生成redoc文档

一、安装工具npm install -g redoc-cli二、生成文档redoc-cli bundle -o index.html swagger.json{ "openapi": "3.0.2", "info": { "title": "Workflow", "description": "API to access AnyShare\r\n\r\n如有任何疑问,可到开发者社区提问:https://developers.aishu.cn\r\n# Authentic

2022-02-26 10:48:27 14101

原创 【Java】封装OkHttp3工具类

一、准备工作Maven项目在pom文件中引入jar包<dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>3.10.0</version></dependency><dependency> <groupId>com.a

2021-08-13 11:44:02 4948

原创 【SpringBoot】SpringBoot 过滤器、监听器、拦截器、AOP 比较

前言在后端项目开发中,会有一些需要基于全局处理的程序。传统基于Servlet容器的程序中,我们可以使用过滤器和监听器,在Java 框架中还可以使用拦截器,而面向切面编程AOP更是作为Spring框架中的核心思想被大家所关注。本文一方面从概念上讲解Filter、Listener、Interceptor和aop的区别,另一方面更是从代码层面讲解如何在SpringBoot中应用开发。它们的执行顺序如下(@ControllerAdvice本文暂不做介绍):拦截顺序:ServletContextListene

2021-08-06 18:03:10 2252 1

原创 vue封装axios的request请求

一、封装axiosimport axios from 'axios'import { getToken } from '@/utils/auth'// 创建axios实例const request= axios.create({ baseURL: process.env.NODE_ENV === 'production' ? process.env.VUE_APP_BASE_API : '/', // api 的 base_url timeout: 12000 // 请求超时时间})

2021-08-06 15:13:04 3082

原创 12个开源的后台端管理系统

1.D2admin开源地址:https://github.com/d2-projects/d2-admin文档地址:https://d2.pub/zh/doc/d2-admin/效果预览:https://d2.pub/d2-admin/preview/#/index开源协议:MIT2.vue-element-admin开源地址:https://github.com/PanJiaChen/vue-element-admin文档地址:https://panjiachen.github.io/vu

2021-04-20 13:47:59 4950

原创 Docker介绍与安装

一、Docker的基本组成Docker的架构图镜像(image):Docker 镜像(Image)就是一个只读的模板。镜像可以用来创建 Docker 容器,一个镜像可以创建很 多容器。 就好似 Java 中的 类和对象,类就是镜像,容器就是对象!容器(container):Docker 利用容器(Container)独立运行的一个或一组应用。容器是用镜像创建的运行实例。 它可以被启动、开始、停止、删除。每个容器都是相互隔离的,保证安全的平台。 可以把容器看做是一个简易版的 Linux 环境

2021-03-26 10:01:26 300

原创 vue使用jsMind思维导图类库

效果展现一、安装npm install vue-jsmind二、在main.js中引入import jm from 'vue-jsmind'Vue.use(jm)if (window.jsMind) { console.log('wind') Vue.prototype.jsMind = window.jsMind}三、使用<template> <div> <div class="header"> <div st

2021-03-23 14:43:10 9254 12

原创 mysql数据库常用命令

1、显示当前数据库服务器中的数据库列表:  mysql> show databases;2、创建数据库:  mysql> create database item character set utf8mb4;3、创建用户:  mysql> create user item@'%' identified by 'Item@2021';4、给用户授所有权限:  mysql> grant all privileges on item.* to item@'%' wit

2021-03-15 21:27:43 167 1

原创 mysql数据库备份、压缩、远程传输及保留7天备份数据

一、数据库备份脚本(备份、压缩、远程传输)#!/bin/bash#备份保存路径backup_dir=/home/backup/数据库名-db-backup#日期dd=`date +%Y-%m-%d`#备份工具tool=/opt/lampp/bin/mysqldump#用户名username=用户名#密码password=密码(复杂密码需用单引号)#将要备份的数据库database_name=数据库名#如果文件夹不存在则创建if [ ! -d $backup_dir ];t

2021-03-15 21:15:30 618 1

原创 在vue使用clipboard.js进行一键复制文本

一、安装npm install clipboard --save二、引入在mian.js中引入,当然我们也可以在用到的.vue中引入,因为我不止一个地方用到了复制,所以直接在main.js里面引入了。import clipboard from 'clipboard';//注册到vue原型上Vue.prototype.clipboard = clipboard;三、使用//dom···<div class="sn Lfll Lmr20">订单编号: <span

2021-03-15 19:58:13 637

原创 通过highlight.js在vue中实现代码高亮

在 vue-cli3 项目中,通过highlight.js,实现页面中代码高亮。请先了解highlight.js官网中的使用说明。一、安装npm install highlight.js --save二、封装成vue插件官方文档—自定义插件官方文档—自定义指令新建highlight.js文件,并添加:// src/utils/highlight.js 文件路径,纯属自定义// highlight.js 代码高亮指令import Hljs from 'highlight.js';i

2021-03-15 19:53:05 1058

原创 还在用分页?太Low !试试 MyBatis 流式查询,真心强大!

基本概念流式查询指的是查询成功后不是返回一个集合而是返回一个迭代器,应用每次从迭代器取一条查询结果。流式查询的好处是能够降低内存使用。如果没有流式查询,我们想要从数据库取 1000万条记录而又没有足够的内存时,就不得不分页查询,而分页查询效率取决于表设计,如果设计的不好,就无法执行高效的分页查询。因此流式查询是一个数据库访问框架必须具备的功能。流式查询的过程当中,数据库连接是保持打开状态的,因此要注意的是:执行一个流式查询后,数据库访问框架就不负责关闭数据库连接了,需要应用在取完数据后自己关闭。

2021-01-18 09:53:32 284 1

原创 52条SQL语句,性能优化,干货必收藏

本文会提到 52 条 SQL 语句性能优化策略。1、对查询进行优化,应尽量避免全表扫描,首先应考虑在 WHERE 及 ORDER BY 涉及的列上建立索引。2、应尽量避免在 WHERE 子句中对字段进行 NULL 值判断,创建表时 NULL 是默认值,但大多数时候应该使用 NOT NULL,或者使用一个特殊的值,如 0,-1 作为默认值。3、应尽量避免在 WHERE 子句中使用 != 或 <> 操作符。MySQL 只有对以下操作符才使用索引:<,<=,=,>,>=,

2021-01-18 09:30:52 273 1

原创 【Java】拥抱 Java 8 并行流:执行速度飞起 !

在 Java7 之前,如果想要并行处理一个集合,我们需要以下几步手动分成几部分为每部分创建线程在适当的时候合并。并且还需要关注多个线程之间共享变量的修改问题。而 Java8 为我们提供了并行流,可以一键开启并行模式。是不是很酷呢?让我们来看看吧认识和开启并行流什么是并行流: 并行流就是将一个流的内容分成多个数据块,并用不同的线程分别处理每个不同数据块的流。例如有这么一个需求:有一个 List 集合,而 list 中每个 apple 对象只有重量,我们也知道 apple 的单价是 5元/kg,

2021-01-11 11:22:41 192

原创 GET 和 POST请求的本质区别是什么?

GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。当你在面试中被问到这个问题,你的内心充满了自信和喜悦。你轻轻松松的给出了一个“标准答案”:GET在浏览器回退时是无害的,而POST会再次提交请求。GET产生的URL地址可以被Bookmark,.

2021-01-11 10:58:59 196 1

原创 除了负载均衡,Nginx 能做的真是太强大了!

Nginx应该是现在最火的web和反向代理服务器,没有之一。她是一款诞生于俄罗斯的高性能web服务器,尤其在高并发情况下,相较Apache,有优异的表现。那除了负载均衡,她还有什么其他的用途呢,下面我们来看下。一、静态代理Nginx擅长处理静态文件,是非常好的图片、文件服务器。把所有的静态资源的放到nginx上,可以使应用动静分离,性能更好。二、负载均衡Nginx通过反向代理可以实现服务的负载均衡,避免了服务器单节点故障,把请求按照一定的策略转发到不同的服务器上,达到负载的效果。常用的负载均衡策略.

2021-01-11 09:13:06 246 1

原创 mybatis-plus 判断参数是否为空并作为查询条件

方式一、在配置文件中加上全局配置mybatis-plus.global-config.db-config.field-strategy=not_empty方式二、对某一字段单独进行判断非空QueryWrapper<BillCust> queryWrapper = new QueryWrapper<BillCust>(BeanUtil.mapToBean(params, BillCust.class, false));queryWrapper.lambda().eq(Obje

2020-12-28 17:18:47 22977 4

原创 ETL工具阿里DataX与DataX-Web的安装部署

一、下载tar包github地址:https://github.com/alibaba/DataX下载tar包地址:http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz二、上传tar包解压并安装上传至服务器/opt/下并解压 tar -xzvf datax.tar.gz三、上传解压datax-web链接: https://pan.baidu.com/s/1B8bb_KeyIYvpbI5s3IwCjA 提取码: 3

2020-11-11 10:58:40 2774 1

原创 【Linux】Linux Shell & scp实现文件传输

安装expectexpect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。sudo yum install expect编写脚本#! /bin/sh#这里演示的是从备份数据库服务器上的sql文件传输到当前服务器的/home/backup下#复制前先清空当前服务器保存的历史备份文件 find /home/backup-type f -exec rm {} \;#开始交互传输expect -c " spawn scp root@47

2020-08-14 14:54:07 1201 1

原创 【Linux】Linux备份mysql数据库及数据还原

创建备份文件夹mkdir /home/backup创建shell脚本文件vim backup.sh写入内容#!/bin/bash#保存备份个数,备份7天数据number=7#备份保存路径backup_dir=/home/backup#日期dd=`date +%Y-%m-%d-%H-%M`#备份工具tool=/opt/lampp/bin/mysqldump#用户名username=root#密码password=123456#将要备份的数据库database_name

2020-08-14 14:41:57 849 1

原创 【Linux】Linux环境下安装Jenkins

安装之前,linux中必须安装好了JDK和Maven,如果还没有安装过,请参考我以下两篇博客:Linux环境安装JDK:https://blog.csdn.net/qq_38566465/article/details/107376298Linux环境安装Maven:https://blog.csdn.net/qq_38566465/article/details/107375937确认JDk和Maven安装没有问题之后,我们来开始安装Jenkins一、在根目录下创建文件夹二、下载linux j

2020-07-16 10:38:32 929 1

原创 【Linux】Linux环境下安装JDK

安装jdk有两种方法:手动安装 yum安装。yum安装如下:1、查询要安装jdk的版本:yum -y list java*2、安装jdk1.8yum install -y java-1.8.0-openjdk.x86_643、查询jdk版本java -version这样就安装成功了。默认给安装到usr/lib/jvm/ 。手动安装如下:1、先去官网找到jdk1.8:https://www.oracle.com/java/technologies/javase/javase-jdk

2020-07-16 09:57:22 576 1

原创 【Linux】Linux环境下安装maven

一、下载maven压缩包官网地址: http://maven.apache.org/download.cgi二、上传到Linux的usr/local目录cd /usr/local可以使用rz目录上传三、解压压缩包tar -zxvf apache-maven-3.6.1-bin.tar.gz四、配置环境变量vi /etc/profileexport MAVEN_HOME=/usr/local/apache-maven-3.6.1export PATH=$MAVEN_HOME/bin

2020-07-16 09:35:36 677 1

原创 【Linux】Linux下安装SVN服务端

一、安装使用yum安装非常简单:yum install subversion二、配置2.1. 创建仓库我们这里在/home下建立一个名为svn的仓库(repository),以后所有代码都放在这个下面,创建成功后在svn下面多了几个文件夹。[root@localhost /]# cd /home[root@localhost home]# mkdir svn[root@localhost home]# svnadmin create /home/svn[root@localhost ho

2020-07-16 09:28:07 329 1

原创 【Linux】Linux环境下安装Nginx

一、首先去官网下载Nginx的tar包Nginx官方网站地址:http://nginx.org/en/download.html下载完成之后,把它上传到服务器上,我这里上传到服务器的/usr/local这个位置上二、开始安装Nginx1、进入到/usr/local 使用命令 tar -zxvf nginx-1.14.2.tar.gz 进行解压nginx 得到解压后进入到nginx文件夹内 cd nginx-1.14.22、接下来命令: ./configure --prefix=/

2020-07-15 11:26:08 351 1

原创 【Linux】Linux常用命令

一、cd:切换目录(Change directory)(1)cd ~ 和 cd:返回用户目录[root@izwz94jtz9hbdq165vpxpxz app1]# cd ~[root@izwz94jtz9hbdq165vpxpxz ~]# [root@izwz94jtz9hbdq165vpxpxz app1]# cd[root@izwz94jtz9hbdq165vpxpxz ~]# (2)cd .:停留在当前目录[root@izwz94jtz9hbdq165vpxpxz app1]#.

2020-07-14 15:43:17 19633 1

原创 【Linux】Linux目录结构与功能

在Linux中,一切皆文件。所以,Linux和Windows目录有很大的不同,它没有明确的盘符,它的目录就像一棵大树一样,顶层目录就是根目录:/ ,然后下面又有很多个分支,分支可以再分,从而形成一个庞大的文件系统,就像这样:在Linux中,特定的颜色表示不同类型的文件蓝色 :表示目录红色:表示压缩文件绿色:表示可执行文件浅蓝色:表示链接文件黄色:表示设备文件白色:表示其他文件在根目录下使用 ls 命令可以查看二级目录然后说一下根目录下的一些主要二级目录的作用:目录作用说明

2020-07-14 14:39:15 346 1

pmp项目管理认证-敏捷文档

pmp项目管理认证-敏捷文档

2024-04-30

整理的一个技术栈思维导图

整理的一个技术栈思维导图

2024-04-28

datax-web-2.1.2.zip

datax-web-2.1.2.zip

2021-08-14

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

TA关注的人

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