自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

方亚军的博客

学习积累在点滴之间

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

原创 生产redis client 链接报:ERR max number of clients reached 含义: 达到最大客户端数错误

redis 连接满问题解决

2023-02-28 18:05:23 762 1

原创 Docker 安装kong konga

原文

2022-08-16 11:08:13 526 1

原创 kubernetes的一些命令

Service是一种抽象,它允许Pod死亡并在Kubernetes中复制,而不会影响应用程序。在依赖的Pod(如应用程序中的前端和后端组件)之间进行发现和路由是由KubernetesService处理的。提供访问Pod的方式。我们发布的Deployment只创建了一个Pod来运行我们的应用程序。,它们是允许对Kubernetes中的对象进行逻辑操作的一种分组原语。-查看pod中的容器的打印日志(和命令dockerlogs类似)-显示有关资源的详细信息。...

2022-07-29 19:48:34 232

原创 Jenkins CI CD

进行任务配置—>流水线—定义(选SCM)-->SCM(选git)—>添加git仓库地址-->有git仓库密码配密码---->脚本路径(Jenkinsfile)项目根目录下要配置一个Jenkinsfile文件,用来编写Jenkins流水线脚本。回到Dashboard-->BlueOcean-->运行(新建任务—>输入任务名称---->选中流水线—>确定。安装推荐的插件---->创建第一个管理员用户。.........

2022-07-22 21:48:26 501 1

原创 深入Dockerfile 与 项目打包镜像示例

WORKDIR指令为Dockerfile中跟随它的所有RUN,CMD,ENTRYPOINT,COPY,ADD指令设置工作目录。如果WORKDIR不存在,即使以后的Dockerfile指令中未使用它也将被创建。如果提供了相对路径,则它将相对于上一个WORKDIR指令的路径。FROM指定基础镜像,最好挑一些apline,slim之类的基础小镜像.同COPY用法,不过ADD拥有自动下载远程文件和解压的功能。src代表的是宿主机的文件目录。dest指的是容器的目录,CMD作为命令的参数。......

2022-07-17 16:24:09 1054

原创 Docker 文件挂载与卷挂载(volume)

存储在主机文件系统的一部分中,该文件系统由Docker管理(在Linux上是“/var/lib/docker/volumes/”)。Docker主机或Docker容器上的非Docker进程可以随时对其进行修改。-v不以斜杆(/)开头的路径Docker容器内部绝对路径叫绑定(docker会自动管理,docker不会把他当成目录,而把它当成卷)#docker将创建出名为nginx的卷,并保存容器/etc/nginx下面的内容。可以把数据挂载到内存中。......

2022-07-14 20:52:20 5915

原创 docker 命令(总结和图解)

Images镜像相关的命令Container容器相关的命令镜像和容器之间转换的命令docker的主要命令图解:docker pull redis : 等价docker pull redis:latest, 下载镜像docker rmi -f: 删除镜像docker images -aq: 删除全部镜像docker image prune #移除游离镜像 dangling:游离镜像(没有镜像名字的)docker tag 原镜像:标签 新镜像名:标签 #重命名docker create [OPTION

2022-07-12 21:44:25 1039

原创 kubernetes急速安装

前置准备准备3台服务器,三台机器设置自己的hostname# 修改 hostname; k8s-01要变为自己的hostnamehostnamectl set-hostname k8s-01# 设置 hostname 解析echo "127.0.0.1 $(hostname)" >> /etc/hosts关闭所有机器的防火墙k8s集群安装docker安装安装k8s集群,必须给每一台服务器预先安装好docker环境参考文章:docker安装k8s安装脚本安装好d

2022-04-06 19:16:53 1351

原创 kubernetes简介(kubernetes优点)

部署方式的变迁传统部署时代:在物理服务器上运行应用程序无法为应用程序定义资源边界导致资源分配问题例如,如果在物理服务器上运行多个应用程序,则可能会出现一个应用程序占用大部分资源的情况, 结果可能导致其他应用程序的性能下降。 一种解决方案是在不同的物理服务器上运行每个应用程序,但是由于资源利用不足而无法扩展, 并且维护许多物理服务器的成本很高。虚拟化部署时代:作为解决方案,引入了虚拟化虚拟化技术允许你在单个物理服务器的 CPU 上运行多个虚拟机(VM)虚拟化允许应用程序在

2022-03-06 16:32:24 1039

原创 Docker安装单机版和集群版nacos

拉取nacos镜像不带版本号默认是拉取最新版本的nacos# 拉取镜像docker pull nacos/nacos-server单机版部署单机版部署很多简单,直接一条命令即可完成,通过 MODE 来设置使用单机模式;注意如果是多网卡的话需要配置NACOS_SERVER_IP参数来指定IP,否则可能会导致外网无法访问;docker run -d --name nacos -p 8848:8848 --env MODE=standalone --env NACOS_SERVER_IP=xxxx

2021-10-14 21:46:24 246

原创 centos下安装docker

1、移除以前docker相关包sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-log

2021-10-14 21:03:55 118

原创 Linux 系统 epoll 函数解析

Linux 系统 epoll 函数解析linux的epoll函数被我们许多程序,框架大量的使用,如java 的NIO,netty, nginx,dubbo,rocketMQ等,epoll 底层3个函数我们先来了解下epoll底层的3个函数是干什么,然后在分析其原理epoll_create(int size)epoll_create()会在内存中开辟一块空间,用来存放epoll中fd(文件描述符,即socket连接)的数据结构,参数size并不是限制了epoll所能监听的描述符最大个数,只是对

2021-09-15 16:46:47 359

原创 类的加载器 和 双亲委派机制详解

类的加载器 ClassLoader类加载器是 JVM 执行类加载机制的前提,ClassLoader是Java的核心组件,所有的Class都是由ClassLoader进行加载的ClassLoader负责通过各种方式将Class信息的二进制数据流读入JVM内部,转换为一个与目标类对应的java.lang.Class对象实例。然后交给Java虚拟机进行链接、初始化等操作因此,ClassLoader在整个装载阶段,只能影响到类的加载,而无法通过ClassLoader去改变类的链接和初始化行为。至于它是否可以运

2021-09-05 19:04:08 1295 1

原创 类加载的过程(生命周期)详情分析

class的加载分为好几个阶段 分为 Loading,Linking过程一:Loading(装载)阶段所谓装载,简而言之就是将Java类的字节码文件加载到机器内存中,并在内存中构建出Java类的原型——类模板对象。装载完成的操作装载阶段,简言之,查找并加载类的二进制数据,生成Class的实例。在加载类时,Java虚拟机必须完成以下3件事情:通过类的全名,获取类的二进制数据流。解析类的二进制数据流为方法区内的数据结构(Java类模型)创建java.lang.Class类的实例,表示该类型。

2021-09-05 15:03:58 499

原创 kubernetes 的Deployment(部署),Service概念,动态扩缩容

Deployment(部署)在k8s中,通过发布 Deployment,可以创建应用程序 (docker image) 的实例 (docker container),这个实例会被包含在称为 Pod 的概念中,Pod 是 k8s 中最小可管理单元。在 k8s 集群中发布 Deployment 后,Deployment 将指示 k8s 如何创建和更新应用程序的实例,master 节点将应用程序实例调度到集群中的具体的节点上。创建应用程序实例后,Kubernetes Deployment Con

2021-08-25 11:00:22 1226

原创 kubernetes简介和架构及其原理

kubernetes 简介Kubernetes 是一个自动化的容器编排平台,它负责应用的部署、应用的弹性伸缩以及应用的管理。它可以提供许多功能, 通俗的讲kubernetes是一个容器云管家,它来管理和编排容器,kubernetes可以提供以下这些功能:服务发现和负载均衡Kubernetes 可以使用 DNS 名称或自己的 IP 地址公开容器,如果进入容器的流量很大, Kubernetes 可以负载均衡并分配网络流量,从而使部署稳定存储编排Kubernetes 允许你自动挂载你选择的存储系统

2021-08-24 12:29:57 615

原创 tomcat架构,启动流程,IO模型,请求处理,源码解析

tomcat架构在说tomcat架构前,我们先看tomcat的配置文件,<?xml version="1.0" encoding="UTF-8"?><Server port="8005" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.startup.VersionLoggerListener" /> <Listener className="org.apache.catali

2021-08-16 16:11:12 319

原创 Spring 事件机制 - 源码深入解析

Spring事件监听机制简介和demoSpring

2021-08-11 10:38:24 290

原创 深入源码解析 Spring AOP

Spring AOP概述及使用AOP指的是:在程序运行期间动态地将某段代码切入到指定方法指定位置进行运行的编程方式,相关设计模式为动态代理模式。AOP是Spring的核心重要功能,本文将深入spring核心源码分析spring AOP的运行原理。在阅读本文前你需要理解spring的生命周期BeanPostProcess(后置处理器)工作时机。下面我来体验下Spring AOP, 本文是把github上Spring源码拉到本地运行测试,这样做方便在源码上注释(也可以启用springBoot项

2021-08-10 14:25:57 458

原创 SPI(Service Provider Interface)机制及SPI在springMVC的应用

什么是SPISPI ,全称为 Service Provider Interface,是一种服务发现机制。它通过在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类, 整体机制如下图:Java SPI 实际上是“基于接口的编程+策略模式+配置文件”组合实现的动态加载机制,服务的接口标准的定义,然后服务接口的实现通过SPI机制在META-INF/services暴露自己的接口的实现。使用介绍要使用Java SPI,需要遵循如下约定:1、当服务提供

2021-07-29 15:18:01 478

原创 分组后返回每组中的最后一条记录 GROUP_CONCAT用法

group_contat语法group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])问题描述如下表:按name分组后返回每组最后一条数据Id Name Other_Columns-------------------------1 A A_data_12 A A_data_23 A A_data_34 B B_data

2021-05-27 11:59:43 1318

原创 查看git分支从哪个源分支拉的

步骤先切换到需要查看的分支执行命令:git reflog --date=local | grep 当前分支名步骤:进入项目的根目录,用git命令窗口执行如下命令执行命令后的最下面的输出就代码源分支(本示例的源分支是:1.4.8-20210315)...

2021-03-25 18:18:52 10053 5

原创 git删除远程分支和本地分支

删除远程分支:命令:git push origin :1.4.5-20210126删除本地分支:git branch -d 1.4.5-20210126

2021-01-26 14:23:48 322

原创 记录一次线上严重事故(变更表结构导致商城系统宕机)

事故一事件:早上 7点左右 ,商城表更新了价格字段精度(500万级),导致商城系统系统不可用影响:商城系统从 7点到11点间不可用 (严重级)报表系统整天不可用 (严重级)事故解决过程:早上9:30 点左右,商城表重新建立索引,商城系统恢复报表系统同步一直到12点发现还一直卡着,然后找阿里云技术解决,一直到20:00 才ok技术原因分析:刷表结构导致商城系统不可用原因: 刷表结构后,表的所有索引需要重建,而polardb数据库创建从库建立索引失效,price 表

2020-11-26 20:02:18 322

原创 微服务 单点登录解决方案(Jwt + 认证中心redis + 多系统redis)

Jwt + 认证中心redis + 多系统redis1.用户去认证中心登录,认证中心生成jwt,保存到redis并返回给客户端。 2.客户端携带jwt去多个系统认证 3.多系统(比如系统A)收到jwt,A解析并取出用户信息,先判断自己的A的redis中有没有jwt。 3.1 如果有,就合法,a系统可以继续执行业务逻辑。 3.2 如果没有就拿着jwt去认证中心验证。 3.2.1 如果通过,a系统就把这个jwt保存到自己的redis,并设置对应的失

2020-10-11 19:04:47 2425

原创 Linux Centos7 防火墙配置 和 查询、开放、关闭端口

1、查看firewall服务状态命令:systemctl status firewalld2、查看firewall的状态命令:firewall-cmd --state3、开启、重启、关闭、firewalld.service服务# 开启service firewalld start# 重启service firewalld restart# 关闭service firewalld stop4、查看防火墙规则5、查询、开放、关闭端口# 查询端口是否开放firewall-cmd

2020-09-01 19:27:58 722

原创 阿里云docker安装mysql8.0版本 远程连接 授权及密码等问题解决

docker 安装mysql下拉镜像docker pull mysql:8.0.20启动镜像docker run -p 3306:3306 --name mysql --privileged=true --restart unless-stopped -v /opt/mysql_docker/mysql:/etc/mysql -v /opt/mysql_docker/logs:/logs -v /opt/mysql_docker/data:/var/lib/mysql -v /opt/my

2020-08-21 15:12:57 1474

原创 git 合并某次(或多次)提交到当前分支,还原正在的解决冲突的合并

git 合并某一次提交找到需要合并的提交记录,复制其id切换到需要合并的分支,命令: git cherry-pick 提交id如:git cherry-pick 62099aef4e3cf825b7b271c68574d877a93f1418还原正在的解决冲突的合并如果合并出现冲突 我们需要解决冲突,有时候冲突解决一半,我们想恢复到合并前状态,命令:git reset --mergegit reset --merge...

2020-08-13 17:34:02 1263

原创 MySQL为什么选择B+树做索引

B树 与 B+树 的区别B树B Tree的基本概念:所有的叶子节点的高度都是一样,这个保证了每次查询数据的时候都是稳定的查询效率,不会因为运气的影响B Tree中其实每个非叶子节点内的小节点内其实都是一个二元组[key, data],key其实就是下图的那个25这种的,然后这个data其实对应的就是数据库中id等于25这条完整的数据记录的内存地址(因为在Myisam中他是数据和索引数据是分开的)B树的特点:首先B Tree的每一个节点上其实是有date的,这个date其实就是要查找的数据

2020-07-30 10:26:07 216

原创 MySQL分页查询优化

利用延迟关联或者子查询优化超多分页场景。说明:MySQL 并不是跳过 offset 行,而是取 offset+N 行,然后返回放弃前 offset 行,返回 N 行,那当offset 特别大的时候,效率就非常的低下,要么控制返回的总页数,要么对超过特定阈值的页数进行 SQL优化前sql:SELECT * FROM table1 where 条件 limit 100000,20;优化后sql:SELECT a.* FROM 表 1 a, (select id from 表 1 where 条件

2020-07-21 16:50:47 182

原创 vscode IDEA git新建远程分支后看不到(新建分支更新)

vscode新建远程分支后看不到更新新的分支 命令如下:git remote update origin --prune

2020-07-17 19:04:07 7591 2

原创 Spring 容器创建 源码分析

Spring 容器的创建主要是 refresh()源码如下:@Override public void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMonitor) { // Prepare this context for refreshing. prepareRefresh(); // Tell the subclass to refre

2020-06-12 18:30:19 156

原创 Spring 拓展原理 (BeanFactoryPostProcessor、BeanDefinitionRegistryPostProcessor、ApplicationListener)

BeanFactoryPostProcessor执行时机:beanFactory的后置处理器;在BeanFactory标准初始化之后调用,来定制和修改BeanFactory的内容;所有的bean定义已经保存加载到beanFactory,但是bean的实例还未创建BeanFactoryPostProcessor原理:代码示例: 执行 实际@Componentpublic class MyBeanFactoryPostProcessor implements BeanFactoryPostPr

2020-06-12 11:01:17 189

原创 Spring AOP 源码分析 详解

Spring AOP HelloWorld (注解版)1、导入依赖aop依赖<dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>4.3.12.RELEASE</version></dependency>2、 定义业务逻辑类 ;在业

2020-06-11 16:07:51 205

原创 MySQL锁机制 (行锁和表锁)

表锁(偏读)特点:案例分析:总结行锁(偏写)特点:无索引 (索引失效)导致 行锁升级为表锁在有索引的列操作,导致索引失效,那么行锁就会升级为表锁间隙锁的危害如何锁定一行行锁分析总结...

2020-06-06 10:49:43 292

原创 MySQL 数据库事务

事务的ACID并发事务带来的问题更新丢失(Lost Update)脏读(Dity Reads)不可重复读(Non-Repeatable Reads)幻读(Phanton Reads)事务隔离级别

2020-06-06 09:29:02 145

原创 MySql 优化之 Show Profile进行SQL分析

Show Profile是什么分析步骤1、查看当前mysql版本是否支持2、开启功能,默认是关闭,使用前需要开启3、运行sql 4、 查看结果, show profiles;5、 诊断SQL查询参数日常开发需要注意的结论...

2020-06-05 20:15:53 173

原创 MySQL优化之 慢查询日志

慢查询日志是什么慢查询日志开启查看当前慢sql 记录 的时间查看当前系统中有多少条慢查询记录日志分析工具 mysqldumpslow工作常用参考:

2020-06-05 19:28:56 107

原创 MySQL优化之Order by 和 Group By 优化

SQL 调优思路查询优化永远小表驱动大表Order by 关键字优化order by子句,尽量使用Index方式排序,避免使用FileSort方式排序尽可能在索引列上完成排序操作 ,遵照索引建的最佳左前缀如果不在索引列上,filesort有两种算法:mysql就要启动双路排序和单路排序双路排序:单路排序:单路排序的问题:优化策略order by 总结Group by 关键字优化...

2020-06-05 18:56:36 559

原创 MySql 索引优化 和 避免索引失效

建表和索引索引优化法则全值匹配案例:最佳左前缀法则:如果中间断了,那么只部分使用了索引,只有前面的的字段使用了索引不在索引列上做任何操作(计算,函数,…)索引中范围条件右边的列全失效尽量使用覆盖索引覆盖索引,直接去索引中取数据,不去表中取数据,大大提高效率mysql 在使用不等于(!= 或者 <>)的时候无法使用索引导致全表扫描is null , not null 也无法使用索引like以通配符开头(‘%abc…’) mysql索引失效会变成全表扫描案

2020-06-05 17:11:02 397

阿里云故障处理

阿里云故障。佛挡杀佛撒的发生大范德萨发生大幅上大夫撒地方撒地方撒发生的发生的撒地方撒地方送达方式打发斯蒂芬送达方式大法师的

2017-09-09

空空如也

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

TA关注的人

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