自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(44)
  • 资源 (6)
  • 问答 (1)
  • 收藏
  • 关注

原创 一张图搞定Eureka服务端接收注册及Peer同步流程

Eureka 注册时,服务端接收信息,并通过异步方式同步到各个Peer节点的流程

2020-07-09 10:12:02 482

原创 一张图搞定Eureka Client启动、注册、心跳流程

Eureka Client启动流程图注册流程图心跳流程图

2020-07-02 15:01:39 1046

原创 调用链监控对比

简介Zipkin是Twitter开源的调用链分析工具,目前基于springcloud sleuth得到了广泛的使用,特点是轻量,使用部署简单。Pinpoint是韩国人开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI功能强大,接入端无代码侵入。SkyWalking是本土开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI功能较强,接入端无代码侵入。目前已加入Apache孵化器。CAT是大众点评开源的基于编码和配置的调用链分析,应用监控分析,日

2020-06-21 22:23:18 778

原创 git 清空所有历史记录

## 先clone 项目到本地目录git clone https://e.coding.net/Ethan3/study-sample.git## 进入仓库目录,拉一个分支,比如名为 master_1 git checkout --orphan master_1## 添加所有文件到上述分支 (Optional) git add -A## 提交一次 git commit -am 'init commit'## 删除 master 分支 git branch -D master## 删除 m

2020-06-21 22:19:40 442

原创 一文搞定supervisor守护进程

进程管理工具(Supervisor) 简介Supervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。不使用守护进程会出现的三个问题:ASP.NET Core应用程序运行在sh

2020-06-21 22:18:11 369

原创 通过PS1设置命令行提示符

通过PS1变量,设置Linux Shell提示符显示当设置为:if [ $(whoami) = 'root' ]; then export PS1=`whoami`@`hostname`:'$PWD#'else export PS1=`whoami`@`hostname`:'$PWD>'fi显示为:root@DDP-QX-J1205:/root### 或uniyun@DDP-QX-J1205:/home/uniyun#设置为:export PS1='[\u@\h \W]\$'

2020-06-21 22:16:20 1472 1

原创 代理服务器sock5安装与配置

步骤1:下载wget https://nchc.dl.sourceforge.net/project/ss5/ss5/3.8.9-8/ss5-3.8.9-8.tar.gz步骤2:安装依赖组件yum -y install pam-devel openldap-devel openssl-devel步骤3:安装依赖组件# tar -zxvf ss5-3.8.9-8.tar.gz# cd ss5-3.8.9-8# ./configure # make && make insta

2020-06-17 11:25:59 1773

原创 Eureka 集群注册

集群注册方式一:通过hostname注册,适用于多机或单机搭建标识每个启动节点的hostname, 通过eureka.instance.hostname 设置配置eureka.client.register-with-eureka 保持默认值true, eureka.client.fetch-registry 保持默认值true配置eureka.instance.prefer-ip-address 保持默认值 false保持统一eureka.instance.appname配

2020-06-16 23:29:00 423

原创 NIO网络编程底层逻辑分析

背景最近在复习Java NIO的网络编程部分,针对NIO的多路复用,产生了以下疑问:ServerSocketChannel如何被创建的Selector是如何创建的Channel注册到Selector上的背后,执行了哪些操作;注册的SelectionKey.OP_ACCEPT在哪里起到作用的selector.select()为什么会阻塞selector的selectKeys是如何被赋值的SocketChannel是如何被创建的基于以上疑问,写了一个Demo,单步调试详细了解NIO的网络编程

2020-06-12 14:49:17 427

原创 Java对象布局解析与实战

背景对于了解Java内存布局的Coder来说,Java对象内存布局主要由头信息+对象变量(引用或原生类型)+对齐组成,而对于数组会添加一个数组长度字段,主要由头信息+对象变量(引用或原生类型)+对齐组成。而对于对象头信息,包含了众多信息,包括synchronized的锁信息、类指针信息等,下面内容主要针对Java对象头信息,做详细的分析。对象头信息针对不同的操作系统,会有不同的对象头信息,下面分页32位操作系统和64位操作系统的不同布局32位虚拟机|------------------------

2020-06-04 17:30:36 213

原创 Netty中FastThreadLocal为什么比ThreadLocal快

背景近期在看netty源码,发现有个叫做FastThreadLocal的类,代码doc中写明此类的用途和ThreadLocal一样,都是维持线程独有的变量,但是速度会更快。于是产生了疑问:FastThreadLocal为什么比ThreadLocal更快?快在哪?基于这个疑问,对此做了性能测试,并基于此,分析了源码,找寻原因。性能测试在JDK中ThreadLocal主要用于多线程环境获取当前线程维护变量数据,用户不需要关心多线程的问题,因此用户在多线程的环境下也可以方便的使用它。以下测试内容基于考虑两种

2020-06-03 18:03:20 515

原创 基于JMH对Java NIO 零拷贝进行基准测试

背景Java NIO中引入了零拷贝的API,本文测试零拷贝与传统IO的性能差异,通过借助基准测试工具JMH进行测试测试用例简单些了一个JMH的实例,迭代100次,计算每次的平均时间import org.openjdk.jmh.annotations.*;import org.openjdk.jmh.runner.Runner;import org.openjdk.jmh.runner.RunnerException;import org.openjdk.jmh.runner.options.O

2020-06-01 17:55:23 215

原创 零拷贝详解

背景在程序开发中,将文件磁盘发送到另一个网络端是很常见的场景,通过代码实现也很简单,比如Java中,可以使用Inputsteam分块读取文件(通常我们将缓存区设置为8KB),然后将缓存区数据输出到Outputstream中。更好一点的方式,是通过PipedInputStream实例,让它自己去管理缓存区。然而如果为了性能考虑,这种先读取文件在发送文件的方式,在操作系统层面对资源是有极大的损耗。为什么这么说呢,下面一张图说明了这个原因。JVM 执行read() 系统调用操作系统从用户态,切换到内核

2020-06-01 17:54:24 503

原创 使用NIO编写服务端代码,客户端关闭后,服务端无限循环获取读事件

问题描述服务端代码如下:package com.ethan.nio;import lombok.extern.slf4j.Slf4j;import java.io.IOException;import java.net.InetSocketAddress;import java.net.ServerSocket;import java.nio.ByteBuffer;import java.nio.channels.*;import java.nio.channels.spi.Selec

2020-05-27 13:50:24 790 1

原创 Spring-security 登录后重定向地址参数丢失

问题描述开发Spring Security OAuth应用时,输入认证登录地址:http://localhost:20200/auth/oauth/authorize?response_type=token&client_id=client&redirect_uri=http://localhost:20100/api/userservice/user/info?a=3&b=4时,登录后跳转地址为:http://localhost:20100/api/userservice/

2020-05-11 18:45:54 2703 1

原创 HashTable、HashMap、Synchronized、ConcurrentHashMap性能测试分析

目的本文目的是为了对HashTable、HashMap、SynchronizedMap、ConcurrentHashMap做一个性能测试,以比较理论与实践的差距方法首先我准备了一个Junit测试类,可以配置不同线程并发数,以及插入到Map中的数据量大小。具体代码如下:package com.ethan.juc.container;import org.junit.BeforeClass...

2020-03-31 02:11:30 365

原创 一文搞定Spring容器初始化方法栈调用栈

背景大家都知道Spring容器启动时,主要通过调用org.springframework.context.support.AbstractApplicationContext#refresh 方法,但是在调用过程中,有很多的调用链,分析起来很麻烦,出于这个目的,我打算写个小插件,Spring容器初始化的调用堆栈。思路有了这个背景后,就要思考怎么能打印出来调用的堆栈信息,接触的有两种方式通...

2020-03-18 16:43:40 391

原创 MySQL异常问题:ERROR 1 (HY000): Can't create/write to file '/var/tmp/#sql_1ea62_0.MAI' (Errcode: 28)

问题一:ERROR 1 (HY000): Can’t create/write to file ‘/var/tmp/#sql_1ea62_0.MAI’ (Errcode: 28)1. 查看是否磁盘已满,通过以下命令排除## 查看磁盘是否已满> df -h2. 确定磁盘已满后,查询具体文件夹占用大小## 查看指定文件夹/var/lib/mysql中每个文件夹的大小> du...

2020-03-16 11:18:21 2585

原创 深入剖析 SpringApplication

本文将以Spring Boot启动类SpringApplication为切入点,深入剖析SpringBoot的整个启动过程,本文内容包括使用方式原理剖析总结使用方式在Spring Boot官方文档里,有个简单的实例,import org.springframework.boot.*;import org.springframework.boot.autoconfigure.*...

2020-01-21 15:26:25 191

原创 Spring定义Bean类(四) 自动装配 spring.factories

本文介绍Spring中关于自动装配META-INF/spring.factories文件的使用使用方式实现原理内容延伸总结使用方式在SpringBoot中,有一种自动装配的过程,是通过在文件classpath:/META-INF/spring.factories 中添加配置org.springframework.boot.autoconfigure.EnableAutoConf...

2020-01-19 17:09:06 7432 1

原创 Spring定义Bean类(三) 条件装配 @ConditionalOn*

本文介绍Spring中以@ConditionalOn* 开头的注解是如何使用的,以及解析其原理,主要有以下内容使用方式实现原理扩展总结使用方式对于@ConditionalOn* 注解,很多都是是在SpringBoot中添加的,有以下内容:org.springframework.boot.autoconfigure.condition.ConditionalOnBeanorg...

2020-01-17 17:05:17 396

原创 Spring定义Bean类(二) Enable*注解装配

本文介绍Spring中以Enable* 开头的注解是如何使用的,以及解析其原理,主要有以下内容使用方式实现原理扩展总结使用方式Spring中可以通过使用Enable* 注解,开启一项功能,比如@EnableScheduling 、 @EnableAsync 、@EnableCache 、 @EnableWebMvc 等,这样使用的好处不言而喻,可以大大减少相关配置的引入,简化了...

2020-01-16 15:28:36 227

原创 Spring定义Bean类(一) @Component 派生性

本文主要讨论Spring通过注解@Component及派生注解配置类的方式,主要有以下内容使用方式原理扩展总结使用方式注解@Component 是标注在类上,使得类成为Spring容器管理的对象,@Repository @Service @Controller 类都是@Component 的派生注解,拥有和@Component 相同的功能,目前只是作为某一类型的说明。例如,@C...

2020-01-08 17:40:47 894

原创 解决html文件在Firefox中访问会自动弹出下载框

问题描述在使用minio时,将静态html文件存储在minio上。通过minio的public权限设置可以通过http方式直接访问,不需要认证。当使用Firefox访问minio上的html时,出现自动下载框,而不显示html页面。问题分析对比普通的html页面响应头信息,发现此请求的content-type为application/octet-stream,针对响应头content-t...

2019-12-27 17:30:18 2040

原创 第一周ARTS 打卡

每周完成一个ARTS:(也就是 Algorithm、Review、Tip、Share 简称ARTS)1.每周至少做一个 leetcode 的算法题2.阅读并点评至少一篇英文技术文章3.学习至少一个技术技巧4.分享一篇有观点和思考的技术文章Algorithm1.Two SumGiven an array of integers, returnindicesof the...

2019-03-18 11:32:34 406

原创 Java 线程池之 DelayedWorkQueue 使用及源码分析

参考:https://www.imooc.com/article/340831. 前言上一篇文章,我们详细的讲解了ScheduledThreadPoolExecutor,并给出了它与ThreadPoolExecutor的关系。ScheduledThreadPoolExecutor中有一个重点我们没有详细的介绍,那就是DelayedWorkQueue类,这个类实现了从队列中延迟取节点,...

2019-03-13 18:54:57 5849 1

原创 Java 线程池之 ScheduledThreadPoolExecutor 使用及源码分析

上一篇文章Java 线程池之 ThreadPoolExecutor 源码分析介绍了Java线程池的基本实现ThreadPoolExecutor是如何实现的,主要是通过将Runnable或Callable实现类,包装成FutureTask,然后在维护的workers线程池集合中某一线程中运行run()方法,启动线程。这里只是大致说下原理,具体可参考上篇文章中的分析。我们本篇是对线程池的续集,解说...

2019-03-04 14:07:07 659

原创 Java 线程池之 ThreadPoolExecutor 源码分析

Java 线程池源码分析(基于JDK1.8):ThreadPoolExecutor 是Java最常用的线程池,今天来分享下源码分析,以下是ThreadPoolExecutor具体类继承关系,以及方法详情我们看到ExecutorService接口,提供了submit(Runnable)、submit(Runnable,T)、submit(Callable<T>)三个接口方法,...

2019-02-26 11:46:01 315 1

原创 Java 线程池提交任务流程

Java 线程池ThreadPoolExecutor提交任务流程如下:流程解释为:当线程池新加入一个线程时,首先判断当前线程数,是否小于coreSize,如果小于,则执行步骤2,否则执行3 创建新线程添加到线程池中,跳转结束 判断当前线程池等待队列是否已满,若已满,则跳转至步骤5 加入等待队列,等待线程池空闲,跳转结束 判断当前线程数是否已达到maximumPoolSize,若...

2019-02-25 17:29:56 4010

原创 Minor GC VS Full GC触发条件

1. 首先编写基础代码,设置Java运行参数,打印出gc detail变化public class Main { public static void main(String[] args) throws Exception { }}运行Mainjava -verbose:gc -Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails...

2019-02-20 11:09:42 217

原创 Spring Conf配置中心

配置中心分为两部分,配置服务器和配置客户端 首先搭建配置服务器一、建立pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance...

2019-02-14 11:15:40 426

原创 MySQL设置锁、事务隔离级别的常用命令

锁1、查看表锁, Table_locks_waited较高表明锁争用比较严重show status like 'table%'2、查看行锁,Innodb_row_lock_waits和InnoDB_row_lock_time_avg较高表明锁争用比较严重show status like 'innodb_row_lock%'3、加写表锁(需手动unclock tables,用...

2019-02-14 10:59:30 523

原创 zookeeper环境搭建

单机版下载zookeeper创建文件conf/zoo.cfg内容如下:tickTime=2000dataDir=/var/lib/zookeeperclientPort=2181其中 tickTime: 发送心跳时间,最小session过期时间是tickTime的两倍 dataDir: 存储内存数据的快照 clientPort: 服务端监听的端口号启动服务器bin/zkServer.sh

2017-11-28 23:07:51 141

原创 Linux中用户管理

Linux中用户管理,不说废话,直接上命令:1. 添加用户:useradd(选项)(参数)-c:加上备注文字。备注文字会保存在passwd的备注栏位中; -d:指定用户登入时的启始目录; -D:变更预设值; -e:指定帐号的有效期限; -f:指定在密码过期后多少天即关闭该帐号; -g:指定用户所属的群组; -G:指定用户所

2017-04-18 23:31:12 224

原创 Mysql存储引擎对比

下述存储引擎是最常用的:·         MyISAM:默认的MySQL插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。注意,通过更改STORAGE_ENGINE配置变量,能够方便地更改MySQL服务器的默认存储引擎。·         InnoDB:用于事务处理应用程序,具有众多特性,包括ACID事务支持。·         BDB:可替代InnoDB

2017-04-15 19:12:29 179

原创 MySql分区类型以及建分区语句

Mysql分区主要分四类

2017-04-15 19:07:15 1429

原创 firewall常用操作

1. 查看firewall 状态systemctl status firewallsystemctl stop firewallsystemctl start firewallsystemctl restart firewall2. 修改firewall增删查端口信息## 添加端口3306firewall-cmd --zone=public --

2017-04-15 19:05:53 242

原创 同步文件rsync

rsync实现文件同步的方式包括SSH方式是使用系统上的用户通过SSH进行同步操作。daemon方式是rsync服务器会开一个873端口,等待客户端去连接,连接是进行验证,通过后进行同步。

2016-12-25 23:31:52 288

原创 Linux同步时间服务器

在集群中同步时间,可以使用ntpd服务器

2016-12-23 22:53:07 364

原创 Springboot集成dubbo

Dubbo可以通过一个Spring容器来启动,同样的,SpringBoot也会启动一个容器,那么如何将这两个容器整合成一个容器,是SpringBoot集成dubbo的关键,以下是我不断尝试的过程 第一步:建立三个module,分别为tripo-service-api,tripo-service,tripo-web这三个子module,tripo-service-api提供了接口定义,tri...

2016-12-14 23:43:36 1605 1

Mac 版本远程控制

Mac版本远程控制,可以直接连接到windows服务器,可以使用mac无缝的访问window服务器,使用流程,避免安装windows虚拟机远程访问windows

2017-09-15

SQL复合语句

各种oracle复合类型的实例,创建一张表,即可直接运行代码,可以将部分注释去除,以显示输出结果

2012-11-24

经典SQL语句

各种sql语句,各种控制语句、查询语句、存储过程等,还有条件判断的例子

2012-11-21

pl/sql控制语句

各种存储过程的控制语句,包括for、while、loop、if、mark、exception等

2012-11-21

快捷键大全(包含window所以快捷键)

这里包含window全部快键键 CTRL(Control)组合键    Ctrl + A(All)全选   Ctrl + C(Copy)复制   仅窗口响应 Ctrl + B 整理收藏夹   Ctrl + E\ F(Search\Find)搜索助理   Ctrl + H(History)历史记录   F1-F12(Function)键    F1 帮助(Help)   F2 重命名(Rename)   F3 搜索助理(Search)   F5 刷新(Refresh)   F6 在窗口或桌面上循环切换子菜单   F8 Windows 启动选项

2011-03-06

学校教材定购系统之进销系统

学校教材定购系统,此文档涵盖了学校定购的进销的过程

2010-09-11

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

TA关注的人

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