自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【无标题】

SSH.Net上传过程中遇到actively refused问题问题排查问题解决问题排查遇到这个问题的时候首先想到排查网络是不是通的,对方SFTP是个域名,通过telnet该域名发现对方22端口是能连通的。于是就陷入沉思了,是网络环境不是很好,导致当时连接不成功,于是找到系统工程师写了脚本,平均每30秒telnet一次,经过一晚上下来都是成功的,但是这个refused的问题依旧存在,并且时好时坏。发现我们应用的VB项目是个报表项目,某些情况下会不停的开启数据库,我认为会不会是频繁开启关闭数据库,导

2024-03-15 10:37:39 368

原创 JVM系列:GC垃圾回收算法与垃圾回收器

如何判断一个对象已死?引用计数器法在对象中添加一个引用计数器,一旦该对象被另一个地方引用时,引用计数器+1,失去引用时-1。没有引用的对象即可被回收无法解决循环引用等问题可达性分析算法通过一系列称为“GC Roots”的根对象作为起始节点集,从这些节点开始,根据引用关系向下搜索,搜索过程所走过的路径称为“引用链”(Reference Chain),如果某个对象到GCRoots间没有任何引用链相连,或者用图论的话来说就是从GC Roots到这个对象不可达时,则证明此对象是不可能再被使.

2020-08-14 10:43:34 171

原创 JVM系列:.class类文件结构

class文件是以一组以8个字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在文件之中,中间没有添加任何分隔符,这使得整个Class文件中存储的内容几乎全部是程序运行的必要数据,没有空隙存在。当遇到需要占用8个字节以上空间的数据项时,则会按照高位在前[插图]的方式分割成若干个8个字节进行存储。Class文件格式采用一种类似于C语言结构体的伪结构来存储数据,这种伪结构中只有两种数据类型:“无符号数”和“表”。无符号数:属于基本的数据类型,以u1、u2、u4、u8来分别代表1个字节、2个字节、4

2020-08-14 10:39:50 160

原创 Dubbo Spring启动流程

启动入口以Dubbo官方示例为例,当配置文件类中加入注解@EnableDubbo,即完成开启Dubbopackage org.apache.dubbo.demo.provider;import org.apache.dubbo.config.RegistryConfig;import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;import org.springframework.context.annotati.

2020-08-12 15:32:52 679

原创 Spring Boot源码分析之自动配置原理

Spring Boot自动配置的原理在于@SpringBootApplication注解下的@EnableAutoConfiguration,因此我们从这个配置类开始分析,主要分析过程都写在代码中了。@EnableAutoConfiguration这个注解是Spring Boot自动配置的关键,其中Import了另一个DefferedImportSelector的实现类AutoConfigurationImportSelector@Target(ElementType.TYPE)@Retent

2020-08-12 14:45:14 470

原创 Spring集成Mybatis源码分析(四)-Mapper方法调用流程

接第二篇中MapperProxy方法的invoke方法讲起MapperProxy这个类是每一个Mapper的动态代理对象对应的InvocationHandler,当调用代理对象的方法时,都会调用到该方法的invoke方法,并传入代理对象,方法,参数。首先判断当前方法是不是继承自Object的方法,如果是,直接执行原方法。否则生成一个MapperMethod对象,用来执行代理方法。而这个类就是执行增删改查的关键类。@Overridepublic Object invoke(Object proxy,

2020-08-11 09:22:40 344

原创 Spring集成Mybatis源码分析(三)-配置文件初始化及XML解析

本节主要讲解Mybatis的XML配置以及Mapper配置启动入口首先我们还是看启动入口,一般情况下涉及到远程访问的,都需要拿到Session,mybatis-spring提供了SqlSessionFactoryBean,将该工厂bean注入到容器中,在Spring启动过程中会去调用该类的的afterPropertiesSet方法和getObject方法获取session@Autowired@Value("classpath*:com/test/mapper/**/*.xml")private

2020-08-11 09:21:02 210

原创 Spring源码分析之bean工厂后置处理器(二)

执行入口上一节说过了bean工厂后置处理器的执行顺序,这里我们着重讲解ConfigurationClassPostProcessor的执行过程,因为这个后置处理器是Spring中最重要的Bean工厂后置处理器,它负责了扫描所有的配置类,配置文件,并将符合条件的类注册成了BeanDefinition。下面来看该类的入口:即上节中讲到的postProcessBeanDefinitionRegistry方法,判断当前的对应的容器是否已经执行过。@Overridepublic void postProce

2020-05-22 08:44:28 302

原创 Spring源码分析之Bean工厂后置处理器(一)

引言Spring在我们目前的开发中基本上必不可少,绝大多数的公司都使用Spring框架作为开发的基础架构,那么我们有必要了解Spring是怎么工作的,以及如何在工作中使用并扩展Spring。今天我们就先来讲解Spring中一个非常重要的概念:后置处理器。Spring中有两种非常重要的后置处理器:bean工厂后置处理器bean后置处理器其中Bean工厂后置处理器就是本节要讲的,它们会在Spring启动过程中,在实例化bean之前执行,它们主要用来扫描出后续需要进行实例化的bean,并注册成Bea

2020-05-19 14:09:19 1011

原创 JDK1.8之HashMap源码分析一

一. 插入1.1 主流程解析public static void main(String[] args) { HashMap<Object, Object> map = new HashMap<Object, Object>(); // 重写Entity的hashCode方法,返回传入的数值 map.put(new Entity(97), "2"...

2020-05-07 12:22:26 150

原创 并发编程之JUC(二):ReentrantLock的源码分析二

一. 锁的释放上一节中,我们讲完了加锁的过程,本节我们先来讲锁是如何释放的,还是以我们上节的那个最简单的例子,使用unlock解锁,这里有一个常识,unlock需要在finally语句块中,不然抛异常了,就会导致死锁。public class Test { private static ReentrantLock reentrantLock = new ReentrantLock()...

2020-04-14 12:05:30 155

原创 并发编程之JUC(一):ReentrantLock的源码分析一

一. JUC简介JUC是jdk从1.5版本之后开始提供的一套用于并发编程的API包,全称为java.util.concurrent,这个包下面提供了我们非常熟悉的ThreadPoolExecutor,ConcurrentHashMap,ReentrantLock等工具,本节我们开始讲解该包下一个子包中关于锁的实现类:ReentrantLock二. AQS要说ReentrantLock就必须先...

2020-04-13 11:07:23 183

原创 Spring Cloud微服务(二) - 负载均衡Ribbon + RestTemplate

一. 初识Ribbon首先,Ribbon是一种客户端负载均衡的实现,什么是客户端负载均衡呢?简单来说就是在调用的时候客户端通过自己的负载均衡算法,实现调用不同的服务端地址上的服务。而服务端负载均衡比如nginx,客户端在调用服务端时,先调用到服务端的nginx上,nginx再通过自身的负载均衡算法将请求转发到真实的服务端应用上,大家看下下面这个图就可以明白了。二. Ribbon的使用rib...

2020-04-03 16:50:41 201

原创 Spring Cloud微服务(一) - 微服务搭建

一. Spring Cloud简介Spring Cloud为开发者提供了一套快速构建分布式系统的工具,比如配置中心,服务发现,服务发现,熔断器,智能路由,分布式session,集群状态管理等。使用Spring Cloud开发可以快速搭建你所需要的服务或应用。他可以在不同的分布式环境中运行,包括用户的个人电脑,公司的内网环境,以及这种云服务器中。目前官方文档中,已经推出了以下版本的Spring ...

2020-04-03 13:28:02 207

原创 Spring集成Mybatis源码分析(二)

一. 初始化SqlSessionFactory使用过mybatis的人都知道,mybatis中要操作需要开启SqlSession,而mybatis采用了工厂模式来生成SqlSession,要将mybatis继承到spring中,首先我们需要初始化SqlSessionFactory// 数据源配置,采用dbcp2连接池@Beanpublic BasicDataSource dataSourc...

2020-01-10 16:19:04 196

原创 redis(一):搭建redis高可用集群

一. 搭建环境操作系统:CentOS7内存:2GB核心数:单核redis版本:5.0.7集群结构:3主3从二. redis安装# 解压redistar -xzvf redis-5.0.7.tar.gzcd redis-5.0.7# 编译并且安装make && make install# 启动redis,查看是否安装成功/usr/local/bin/red...

2020-01-09 17:11:59 138

原创 K8S(一)--集群搭建

前言环境介绍搭建环境为CentOS7,并且预先安装了docker,安装docker的过程参考博文Docker(一)–Docker的基本用法,CPU为2核,硬盘20G。节点说明主机名IP角色k8s-master192.168.252.24masterk8s-node1192.168.252.25node本次集群搭建采用一台master + 一台nod...

2020-01-09 12:34:03 673

原创 Docker(三)--Docker-Compose编排容器

将本地镜像发布到阿里云有时候需要共享镜像或者习惯使用自己定义的镜像,可以注册私有仓库,国内推荐使用阿里云步骤:1.登录阿里云容器镜像服务:https://cr.console.aliyun.com/cn-hangzhou/instances/repositories2.将镜像推送到阿里云# 登录阿里云的docker仓库$ sudo docker login --username=[用户...

2020-01-08 15:46:08 275

原创 Docker(二)--使用Dockerfile生成镜像运行容器

Docker生成镜像的两种方式有时候从Docker镜像仓库中下载的镜像不能满足要求,我们可以基于一个基础镜像构建一个自己的镜像两种方式:更新镜像:使用docker commit命令构建镜像:使用docker build命令,需要创建Dockerfile文件更新镜像先使用基础镜像创建一个容器,然后对容器内容进行更改,然后使用docker commit命令提交为一个新的镜像(以tomc...

2019-12-25 23:26:51 1815

原创 Docker(一)--Docker的基本用法

Docker 安装Docker 提供了两个版本:社区版 (CE) 和企业版 (EE)。 操作系统要求以Centos7为例,且Docker 要求操作系统必须为64位,且centos内核版本为3.1及以上。查看系统内核版本信息:uname -r一、准备卸载旧版本:yum remove docker docker-common docker-selinux docker-engine y...

2019-11-13 10:08:04 106

原创 Spring集成Mybatis源码分析(一)

Mybatis作为目前主流的数据库查询框架,他是如何集成在Spring当中的,可以给以后开发Spring扩展插件提供一个思路。最近在学习Mybatis的源码,因此记录一下,以便以后再次学习。首先Spring作为最流行的开发框架,所有程序员都可以去扩展,Mybatis就是利用了Spring的这些扩展点。这里我就大致描述下Spring的执行过程AnnotationConfigAppl...

2019-11-11 17:09:22 302

转载 Filebeat +Redis+ELK处理Nginx日志系统

一)简述:filebeat:具有日志收集功能,是下一代的Logstash收集器,但是filebeat更轻量,占用资源更少,适合客户端使用。redis:Redis 服务器通常都是用作 NoSQL 数据库,不过 logstash 只是用来做消息队列。logstash:主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主...

2019-04-25 10:08:36 820

转载 使用LVS实现负载均衡原理及安装配置详解

使用LVS实现负载均衡原理及安装配置详解负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群。常用的负载均衡开源软件有nginx、lvs、haproxy,商业的硬件负载均衡设备F5、Netscale。这里主要是学习 LVS 并对其进行了详细的总结记录。一、负载均衡LVS基本介绍LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分发到Director Ser...

2018-12-26 09:59:56 126

空空如也

空空如也

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

TA关注的人

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