自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 centos8安装Nginx1.19.6并配置多域名反向代理

centos8安装Nginx1.19.6Nginx是什么?为什么要使用Nginx?安装Nginx1.19.6安装依赖包创建目录下载解压编译安装测试Nginx配置文件是否正常启动Nginx用户和组属组和属主Nginx的其他命令加入systemctl管理并设置开机自启动将Nginx加入systemctl管理创建nginx.service服务文件重新加载服务列表启动服务将Nginx设置为开机自启动Nginx配置反向代理本机配置域名配置反向代理反向代理promethues反向代理grafana反向代理elastic

2020-12-25 14:14:57 5625 4

原创 Centos8搭建服务监控prometheus+node_export+grafana

Centos8搭建服务监控prometheus+node_export+grafana简单介绍prometheus什么是prometheus?prometheus的特点基本原理服务过程三大套件Grafana什么是GrafanaGrafana的特点node_exportnode_export是什么搭建过程prometheus的安装使用用户和组创建目录下载解压为prometheus创建配置文件目录和存放数据目录并赋权限将prometheus配置文件拷贝到/etc/prometheus目录下将prometheus

2020-12-09 00:04:20 5214 16

原创 RBAC基于角色的权限访问控制

数据权限是指用户是否能够看到某些数据。说的通俗点就是设置用户只能查看哪些数据,这就是数据权限,主要应用在数据有保密要求或数据量大或数据非常敏感的,需按用户或角色来进行区分时,例如:财务主管在后台可以看到公司所有人的工资流水,但普通员工只能看到自己的工资流水。在这里可能有的同学或许认为:既然我们的权限是跟角色关联,为什么“查看工资流水”这个权限精确到每个用户了呢?

2023-04-04 10:06:29 1082 1

原创 Vertx入门学习(含代码)

github: https://github.com/vert-x3官网:http://vertx.io/Vert.x诞生于2011年,当时叫node.x,不过后来因为某些原因改名为Vert.x,目前官网最新版本是4.4.0,官网上介绍Vert.x是一个用于在JVM上构建高效应用程序的工具包,是JVM上的Reative开发套件。说白了,Vert.x就是一堆的jar包,提供了一系列的编程API接口,通过这些API可以实现异步编程。Vert.x目前是我见过功能最强大、对第三方库依赖最少的Java框架,是一

2023-03-17 15:01:24 4625 4

原创 一道面试题:JVM老年代空间担保机制

JVM老年代空间担保机制

2022-11-24 17:48:06 2108

原创 【MySQL面试题】建立a,b,c三个字段的联合索引,判断下列语句是否使用到索引?用到了哪些索引?(通过explain的key_len来判断)

通过explain执行计划的key_len判断使用到的索引

2022-11-04 16:27:10 2088 2

原创 面试必问JVM篇

简单介绍JVM体系结构以及各个结构的作用,从Java源码文件编译成class字节码文件,再把class字节码文件编译成机器码,最后由执行引擎来执行,中间包含了字节码文件内容介绍以及类加载器将其加载到JVM运行时数据区中的方法区等,以一己之力希望能有所收获。

2022-10-27 17:36:30 685 2

原创 rocketmq在golang的使用

本文主要是演示golang操作rocketmq。go get 命令可以借助代码管理工具通过远程拉取或更新代码包及其依赖包,并自动完成编译和安装。整个过程就像安装一个 App 一样简单。这个命令在内部实际上分成了两步操作:第一步是下载源码包,第二步是执行 go install。所以我们执行如下命令进行下载安装:执行过程如图:rocketmq客户端安装完成。后面我们才能使用rocketmq包提供的命令进行编码。其实在实际项目开发中的使用方式:在go mod文件中添加:编写代码运行结果我们运行代码

2022-06-29 15:34:24 5635 1

原创 Go语言指针介绍

Go语言为程序员提供了控制数据结构指针的能力,但是,并不能进行指针运算。

2022-06-29 14:42:26 435

原创 Goland常用快捷键设置

Goland常用快捷键设置

2022-06-29 11:56:38 1408

原创 Go常用命令

Go语言自带有一套完整的命令操作工具,你可以通过在命令行中执行go来查看它们:这些命令对于我们平时编写的代码非常有用,接下来就让我们了解一些常用的命令。这个命令主要用于编译代码。这是命令的详细信息,意思是在包的编译过程中,若有必要,会同时编译与之相关联的包,也就是说依赖包也会编译。如果是普通包,当你执行go build之后,它不会产生任何文件。如果你需要在$GOPATH/pkg下生成相应的文件,那就得执行go install。如果是main包,当你执行go build之后,它就会在当前目录下生成一个可执

2022-06-29 11:36:58 1446

原创 编写并运行第一个Go语言程序

在Go项目目录结构介绍这篇文章里面,我们已经初步认识了Go项目的结构,那么我们下面开始编写第一个Go语言程序——在控制台输出“Hello World!”。下面我们详细的介绍一下这几行代码的含义。Go语言以“包”作为管理单位,每个 Go 源文件必须先声明它所属的包,所以我们会看到每个 Go 源文件的开头都是一个 package 声明,格式如下:其中 package 是声明包名的关键字,name 为包的名字。Go语言的包与文件夹是一一对应的,它具有以下几点特性:在包声明之后,是 import 语句,用于导

2022-06-28 16:49:10 357

原创 Go项目目录结构介绍

一般的编程语言往往对工程(项目)的目录结构是没有什么规定的,但是Go语言却在这方面做了相关规定,下面我们就来聊聊Go语言在工程结构方面的有关知识。在安装Go语言开发工具这篇文章里面我们提到了GOPATH这个环境变量,是一个路径,用来存放开发中需要用到的代码包,项目的构建主要是靠它来实现的,换而言之,如果想要构建一个项目,就需要将这个项目的目录添加到GOPATH中,多个项目直接可以使用分隔,如果不配置GOPATH,即便是处于同一目录,代码之间也无法通过绝对路径相互调用。在进行Go语言开发的时候,我们的代码总

2022-06-28 14:46:30 3587

原创 安装Go语言开发工具

在Go语言官网:https://golang.google.cn/dl/ 下载Windows系统下的Go语言开发包,如下图所示:这里我们下载的是64位的开发包,如果你的电脑是32为系统的话,则需要下载32位的开发包。安装Go语言开发包双击我们下载好的Go语言开发包即可启动安装程序,按照提示步骤操作即可,这里不再一一展示了。开发包安装好之后,在正式编程开始之前,我们需要设置一些环境变量。GOPATH:是一个路径,用来存放开发中需要用到的代码包。如图:我们点击添加,设置对应的目录即可。其他的环境变

2022-06-28 11:56:25 2107

翻译 微信客服介绍和使用指引(4.19)

微信客服是微信官方新提供的临时会话能力,企业可以在微信内、外各个场景中接入,用户免加好友即可发起咨询,企业可在企业微信或通过API收发消息,并且还能邀请微信用户添加企业微信,升级为专属服务。不仅可以用于满足企业常规的客服场景,还可帮企业覆盖更多接触客户的场景(如视频号)、提升潜客转化和添加更多客户为好友。注:可在企业微信工作台“微信客服”应用处或微信客服官网(https://work.weixin.qq.com/kf)查看和使用微信客服。目前虽然大家可以通过各种方式来提供客服服务,但是会遇到以下这些问题

2022-06-16 14:03:16 4790

原创 河南高考VS天津高考(2008年-2021年)

又是一年高考季。作为一个河南人,每到这个时候,心里总是会出现一些复杂的心情,为那些莘莘学子即将鲤鱼跳龙门而感到高兴,又为那些可能会落榜的感到痛苦,也会为自己的亲朋好友中即将参加高考或者已经在高考中的人进行祷告,期望能有超常发挥的成绩出现。想到这些,就会下意识的想到河南人高考 vs 天津人高考。...

2022-06-08 15:36:40 2688

原创 Docker搭建Sentinel并将Spring Cloud Alibaba和Sentinel进行整合

springcloud快速接入sentinel

2022-05-23 10:59:36 741

原创 2022年JAVA学习/复习大纲

本文以JAVA学习/复习大纲图的形式展现出来,更加便于大家对自己的知识进行查漏补缺,后续我会对核心技术点进行挨个展开,感兴趣的可以关注我。

2022-05-18 09:16:10 357

原创 请做好随时失业的心理准备

在疫情的笼罩之下,终于还是打破了之前『金三银四』『金九银十』的经典规律。其实早在2020年年初,疫情刚发生的时候,大家应该隐约就能感觉到以后不会再有所谓的『金三银四』『金九银十』了,因为在当时大家就已经感觉到了大环境在走下坡路,企业经营状况不是特别好的,可能工资都发不齐,甚至拖延工资,都会出现,在那时候,比较敏感的同学可能就会有压迫感、紧张感以及焦虑感,总之就是惶恐不安。2022年春节过后,随之而来的是各种大厂的裁员消息,比如滴滴、阿里、百度、腾讯、贝壳、字节跳动、京东、有赞、小米、B 站、快手、58

2022-05-10 11:51:05 234

原创 【实战】本机用docker搭建elk环境并接入frostmourne,实现监控报警效果

本篇文章着重的是实战方面,基于本机使用docker来搭建elk环境,然后接入frostmourne来实现监控、报警、分析系统,后续会再发文来介绍如何将此监控报警发布到生产环境。本机用docker搭建elk环境并接入frostmourne,实现监控报警效果前言一、ELK是什么?二、搭建ELK1.部署elasticsearch查找elasticsearch镜像拉取镜像查看elasticsearch镜像是否已加载创建挂载目录并赋予权限运行elasticsearch2.部署kibana查找kibana镜像拉取.

2022-05-08 20:39:24 1494 2

原创 prometheus监控JAVA应用(JVM等)并自定义监控指标

prometheus监控JAVA应用(JVM等)并自定义监控指标主体思路将Nacos伪装成Consul快速开始在Spring Cloud Gateway引入jar包Prometheus配置在每个Spring Cloud实例中的配置引入Prometheus监控包暴露每个应用的指标接口查看Prometheus中监控到的服务配置grafana并展示一些监控界面自定义监控指标并展示到 Grafana监控所有API请求次数在使用docker搭建服务监控prometheus+node_export+grafana的过

2022-05-04 00:09:36 12624 7

原创 使用docker搭建服务监控prometheus+node_export+grafana的过程详解

使用docker搭建服务监控prometheus+node_export+grafana的过程详解关于prometheus、node_export和grafana的基本概念介绍使用docker搭建并配置node_export下载镜像包启动node-exporter检查端口是否正常查看docker容器通过访问地址来验收一下效果使用docker搭建并配置prometheus下载镜像包创建prometheus.yml启动prometheus检查端口是否正常查看docker容器通过访问地址来验收一下效果访问grap

2022-04-30 17:02:31 2279 1

原创 spring cloud gateway自定义负载均衡实现路由策略,获取的总是同一个服务

根据业务需求,我需要自定义负载均衡规则,获取相应的服务,然后返回。代码如下:当调用this.getLoadBalancer()时,返回的总是上一次正确的服务,举例来说我有A、B、C三个服务,当第一次请求A服务的时候正常返回,第二次B服务请求的时候,this.getLoadBalancer()返回的对象信息是A服务的信息;解决办法:加上@Scope(value=“prototype”)即可。原因:线程安全问题导致的。因为iloadbalance是成员变量,而spring默认是到单例的,所以有线程安全

2021-12-16 22:01:04 2000

原创 通过Nginx的proxy_set_header设置请求头无效

nginx header参数无效

2021-12-15 23:33:19 5405

原创 使用shell脚本快速定位Linux服务器CPU突然飙高问题

CPU飙高问题分析脚本

2021-12-08 18:22:48 1586 1

原创 JAVA图片处理ImageIo.read(URL)返回Null

ImageIo.read(url)返回Null

2021-12-07 13:09:22 2593 2

原创 idea实现多人远程编程code with me(2020.2.1及以上版本)

看到idea支持多人协作开发的功能,忍不住就想尝尝鲜~前置条件主机必需:IntelliJ IDEA 2020.2.1及更高版本,已下载并启用Code With Me插件访客必需:无需下载IDEA,只需要下载一个code with me程序(600kb左右)使用步骤主机开启邀请链接安装并启用Code With Me插件,在主工具栏上,单击code with me 图标。在“code with me”对话框中,配置访问者的访问权限。Read-only:为访客选择此权限,以对文件,终端和运行

2021-12-06 13:41:05 5455 1

原创 SpringBoot项目引入字体库Font报错:java.awt.FontFormatException: bad table, tag=xxxxxx

SpringBoot项目引入字体库Font报错

2021-12-02 21:33:01 2642 2

原创 MySQL:explain结果中Extra:Impossible WHERE noticed after reading const tables

MySQL查询语句explain时出现Impossible WHERE noticed after reading const tables

2021-12-02 21:17:14 11465

原创 【干货】线程池大小如何设定?结合并发进行分析,顺便了解一下线程上下文切换流程

关于线程数大小如何设定的问题,是一个高频面试题,不管是初级、中级还是高级…都可能会被问到,这个问题回答好了,会加分的哦~线程池大小如何设定?『IO密集型的给2*N个线程,N是CPU的核数;计算密集型的给N+1个线程』,如果你还给告诉面试官这样的答案,那么恭喜你,这篇文章给你一个不一样的答案,会让你受益匪浅。废话不多说,直接上图:里面的距离参数是自己想的,也就是为了便于理解,大家可以忽略~其实我们在实际工作当中,仅仅知道上面的还不够,还得结合自身的业务进行具体分析,比如混合型的任务,那么就需要考虑是否

2021-09-10 11:30:01 211 1

原创 JAVA五种线程池、特点及其使用场景

newFixedThreadPoolnewSingleThreadExecutornewCachedThreadPoolnewScheduledThreadPoolnewWorkStealingPool特点1.核心线程数等于最大线程数,也就是说全部都是核心线程数;2.不受keepAliveTime的限制,没有超时机制;3.队列没有大小限制1.核心线程数等于最大线程数等于1,也就是只有一个线程且是核心线程;2.没有超时机制;1.核心线程数为0;2.最大线程数为Integer最...

2021-09-09 19:09:31 988

原创 JAVA的内存泄漏(Memory Leak)&内存溢出(Out Of Memory)

JAVA的内存泄漏&内存溢出JAVA的内存泄漏内存泄漏的分类内存泄漏的常见原因以及解决办法如何防止发生内存泄漏JAVA的内存溢出内存溢出的常见原因以及解决办法解决办法:如何分析内存溢出防止发生内存溢出JAVA的内存泄漏&内存溢出的联系与区别联系区别JAVA的内存泄漏内存泄漏(Memory Leak):说白了就是程序向系统申请了内存,但是用完了却不释放。假如一台服务器内存总共有1024M,分配的512M内存一直没有被回收,那么可用内存就只有512M,就好像有一部分内存被泄漏了一样。这样说来

2021-08-12 19:33:22 2060 1

原创 端着JAVA语言开发的饭碗,却不知道JVM工作原理,你该“挨打“了!!!

端着JAVA语言开发的饭碗,却不知道JVM工作原理,你该"挨打"了!!!什么是JVM跨平台JVM体系结构详解JVM工作机制JVM基于栈设计的理由执行引擎的架构设计执行引擎的执行过程什么是JVMJVM的全称是Java Virtual Machine(Java虚拟机),它通过模拟一个计算机来达到计算机所具有的计算功能。实际上就是用来执行java字节码(二进制的形式)的虚拟计算机。它运行在操作系统之上,与硬件没有任何关系。跨平台『一次编译,到处运行』相信这句话大家并不陌生,可能经常还会犹然在耳,这句话就充

2021-08-12 12:45:18 154 1

转载 MySQL-Innodb的行锁的实现原理

MySQL-Innodb的行锁的实现原理一、InnoDB行锁实现方式二、案例分析转载:https://blog.csdn.net/qq_34614236/article/details/117741555一、InnoDB行锁实现方式MySQL InnoDB 行锁是通过给索引上的索引项加锁来实现的。Oracle 是通过在数据块中对相应数据行加锁来实现的。MySQL InnoDB这种行锁实现特点意味着:只有通过索引条件检索数据,InnoDB才使用行级锁,否则,InnoDB将使用表锁!二、案例分析

2021-08-11 18:33:30 5379 2

原创 VMware扩展虚拟机Centos8磁盘分区

VMware扩展虚拟机Centos8磁盘分区背景扩展磁盘修改指定最大虚拟磁盘大小开启此虚拟机并进行分区设置查看磁盘占用情况创建新分区查看磁盘情况重启系统查看已有卷组名为新分配的空间创建一个新的物理卷使用新的物理卷来扩展 LVM 的 VolGroup扩展 LVM 的逻辑卷调整逻辑卷的大小检查分区结果背景因为是个人资源,用来学习、做测试用的,所以刚开始创建虚拟机的时候分配的硬盘空间是20G,不大,后面安装了个MySQL,磁盘空间就频频的『告急』,各种服务都起不来,也影响了其他应用,因此只能扩展磁盘了。扩展

2020-12-30 16:41:19 1869 2

原创 分布式任务调度框架xxljob2.2.0详细安装使用教程

centos8安装配置xxljob2.2.0简介概述特性总体设计源码目录介绍“调度数据库”配置架构设计设计思想系统组成架构图安装环境创建目录下载解压简介概述XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。特性简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手。动态:支持动态修改任务状态、启动/停止任务,以及终止运行中任务,即时生效。调度中心HA(中心式):调度采用中心式设计,“调度

2020-12-30 14:30:04 6265 3

原创 mysql error :1114 - The table ‘XXX‘ is full

背景因为本地测试库的一张表数据不需要了,想要使用truncate进行删除。执行操作:TRUNCATE shop.user; 时提示:1114 - The table ‘user’ is full, Time: 0.008000s原因根据上面提示信息解释为:表user已经满了。其实是因为删除操作,磁盘可用空间需要大于表本身占据的空间(比如当前操作的表占据 2 GB,那么要求磁盘可用空间必须大于 2 GB)。我们先来查看一下磁盘空间情况:[root@dxm22 ~]# df -h找到了执行tru

2020-12-28 10:33:47 5586 3

原创 git error: src refspec dev does not match any

背景我是先在本地垒代码的,因为我是developer角色,所以没有权限把代码直接上传到公司的group下,只能暂时上传到自己的个人group下,所以才有了后面的从已有git资源转移到公司git资源的操作。操作过程以下是具体的操作步骤:# cd到项目路径下cd existing_folder# 查看项目目录下文件ls -lha # 删除原来的.git文件rm -rf .git# 在本地创建一个新的空的.git文件git init# 把远程的git信息加到上面创建的那个新的.gi

2020-12-26 18:57:16 8184

原创 Centos8安装Nacos1.4.0并配置开机自启动

Centos8安装Nacos并配置开机自启动什么是Nacos?Nacos的一些基本概念什么是Nacos?Nacos 主要用于服务的发现、配置和管理。Nacos 提供了一组简单易用的特性集,帮助快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 可以做到更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。Nacos 的关键特性包括:服务发现和服务健康监测。Nacos 支持基于DNS和基于RPC的

2020-12-26 15:58:05 1423

原创 centos8安装idea的图文详细步骤

centos8安装idea的图文详细步骤创建目录下载解压安装配置jdk配置maven创建目录[root@dxm28 bat]# mkdir -p /data/idea[root@dxm28 bat]# cd /data/idea下载[root@dxm28 idea]# wget https://download.jetbrains.com/idea/ideaIU-2020.3.tar.gz[root@dxm28 idea]# ll -h我这里下载用了5分钟。这里我上传到百度网盘,有需

2020-12-25 10:17:03 4231

空空如也

空空如也

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

TA关注的人

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