自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Eureka Client启动源码分析(2)

Eureka Client启动源码分析(2)上篇文章主要分析了Eureka Client启动的启动流程最终都是调用EurekaHttpClient接口的方法。可以理解为Eureka Client为Server层,调用EurekaHttpClient(dao层的方法),进行发送HTTP请求。下面来分析EurekaHttpClient的实现细节EurekaHttpClientpublic ...

2019-07-06 15:39:01 410

原创 Eureka Client启动源码分析(1)

Eureka Client启动源码1.我们从@EnableDiscoveryClient出发,找到注释Annotation to enable a DiscoveryClient implementation2.找到DiscoveryClient接口及其实现类,发现有三个方法public interface DiscoveryClient { //获取描述 String desc...

2019-07-06 14:55:23 638

原创 Eureka Server源码分析(1)从@EnableEurekaServer注解开始分析

Eureka启动源码分析我们从@EnableEurekaServer注解开始分析1.Eureka Server启动分析1.1找到@EnableEurekaServer的实现类 EurekaServerAutoConfiguration1.2分析EurekaServerInitializerConfiguration(eureka配置的加载类)//标识为配置文件@Configuratio...

2019-06-29 15:49:45 884

原创 springboot源码解析详细版

springboot源码解析(转)Spring Boot 的入口类@SpringBootApplicationpublic class StartupApplication { public static void main(String[] args) { SpringApplication.run(StartupApplication.class, args)...

2019-05-30 20:58:59 8354 4

原创 Eureka Server启动源码分析(2)

Eureka启动源码分析我们从@EnableEurekaServer注解开始分析1.Eureka Server启动分析1.1找到@EnableEurekaServer的实现类 EurekaServerAutoConfiguration1.2分析EurekaServerInitializerConfiguration(eureka配置的加载类)//标识为配置文件@Configuratio...

2019-03-21 11:52:44 621

原创 java将多个文件(Excel)压缩成zip,并发送给页面

java将多个文件(Excel)压缩成zip,并发送给页面方案将多个文件夹中的文件,放入一个临时文件夹,并将临时文件夹进行压缩打包,发回给页面。转移文件类import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;/**...

2019-03-04 18:52:04 6114

原创 mapper.xml报错导致控制台不断刷日志

mapper.xml报错导致控制台不断刷日志用户mybatis的xml文件错误,在spring配置文件中将SqlSessionFactoryBean类改成该类的路径import java.io.IOException;import org.apache.ibatis.executor.ErrorContext;import org.apache.ibatis.session.SqlSes...

2019-02-26 19:30:14 371

原创 quartz的job实现类无法注入Service类

quartz的job实现类无法注入Service类原因Job是在quartz的框架中实例化的,service是在spring容器中创建出来的。所以Job实现类不受spring管理,即导致注入失败。解决方案使用Quartz提供了JobFactory接口,就可以自定义实现创建Job的逻辑,并将jobFactory交给spring容器管理代码MyJobFactory类public cla...

2019-02-25 16:31:49 2029 4

转载 innodb存储引擎 索引的类型和使用

索引的类型和使用1.索引的类型及其特点1.1类型普通索引唯一索引全文索引(FULLTEXT)

2019-02-19 08:50:32 3400 1

原创 CountDownLatch和CyclicBarrier的区别

CountDownLatch和CyclicBarrier的区别  从字面上理解,CountDown表示减法计数,Latch表示门闩的意思,计数为0的时候就可以打开门闩了。Cyclic Barrier表示循环的障碍物。两个类都含有这一个意思:对应的线程都完成工作之后再进行下一步动作,也就是大家都准备好之后再进行下一步。然而两者最大的区别是,进行下一步动作的动作实施者是不一样的。这里的“动作实施者”...

2019-02-14 14:33:59 278

原创 3.2kafka基础配置,整合springboot

kafka基础配置github网址:https://github.com/Plumblumpb/messageQueue-.gitkafka基础(可以先看):https://blog.csdn.net/c_royi/article/details/86648910 项目maven文件<dependency> <groupId>org.apache.kafka...

2019-01-29 15:41:30 472

原创 2.3rabbitMq整合springboot

rabbitMq整合springbootgithub地址:https://github.com/Plumblumpb/messageQueue-.gitrabbitmq(可以先看这两篇文章):https://blog.csdn.net/c_royi/article/details/86630777https://blog.csdn.net/c_royi/article/details/86...

2019-01-29 15:24:02 397

原创 2.2rabbitMq基础操作

rabbitMq基础操作 并整合 springbootgithub:https://github.com/Plumblumpb/messageQueue-.gitrabbitMq文章(可以先观看):https://blog.csdn.net/c_royi/article/details/86630777 rabbitMq基础操作pom.xml文件<dependency> ...

2019-01-29 15:02:18 229

转载 3.1kafka基础解析,运行原理.

1.基础概念Broker:消息中间件处理结点,一个Kafka节点就是一个broker。Topic:主题,一个主题一般会有多个消息的订阅者Partition:topic物理上的分组,一个topic可以分为多个partition,每个partition是一个有序的队列,用于记录每个消费者消费的消息队列。Segment:partition物理上由多个segment组成,存储消息,每个segm...

2019-01-25 16:58:11 259

原创 java 通过服务器ip以及snmp协议读取cpu使用率,和内存使用率

java 通过服务器ip以及snmp协议读取cpu使用率,和内存使用率**github地址:**https://github.com/Plumblumpb/snmp-demo.git环境配置window环境配置:https://jingyan.baidu.com/article/7f766dafe17d394101e1d0f9.htmllinux环境配置:https://blog.csdn...

2019-01-25 11:40:42 16958 9

原创 linux系统配置snmp

linux系统配置snmp  最近公司需要在监控一下各项目地的服务器运行状况,查找资料发现可以直接通过SNMP服务实现,于是打算测试一下在RedHat Linux系统中安装和配置snmp服务检查系统是否安装snmp服务# rpm -qa|grep snmpnet-snmp-5.3.2.2-17.el5net-snmp-perl-5.3.2.2-17.el5net-snmp-devel-...

2019-01-25 11:20:25 2440

原创 2.1rabbitMq基础概念,解决消息丢失问题

rabbitMq基础概念为啥使用rabbitmq  如果使用Socket,那么不同的模块的确可以部署到不同的机器上,但是还是有很多问题需要解决。比如:信息的发送者和接收者如何维持这个连接,如果一方的连接中断,这期间的数据是以什么方式丢失?如何降低发送者和接收者的耦合度?如何让Priority高的接收者先接到数据?如何做到Load Balance?有效均衡接收者的负载?如何有效的将...

2019-01-24 17:41:28 1484

原创 1.1activemq基础操作 并整合 springboot

activemq基础操作pom.xml文件<dependencies> <dependency> <groupId>org.apache.activemq</groupId> <artifactId

2019-01-24 15:43:04 140

原创 zookeeper Curator基础使用

zookeeper Curator基础使用为啥使用Curator包 zookeeper原生API有以下几个不足之处:超时重连,不支持自动,必须要手动实现;Watcher注册一次后只能使用一次;不支持递归创建节点;基础介绍1.1 watcher :只能监听绑定事件操作:getData、exists、getChildren。usingWatcher方法只调用一次,监听完毕后就会销...

2019-01-23 17:20:39 144

转载 zookeeper基础操作及其常用api

zookeeper基础操作及其常用apizookeeperzookeeper构造函数参数名称ProcessResult参数说明create参数说明delete参数说明getChild参数说明getdata参数说明setdata参数说明exist参数说明1.1zookeeper构造函数参数1.2 Process参数1.3create参数1.4Delete参数说明 ...

2019-01-23 14:31:13 238

转载 redis分布式锁机制,及其原理,及其实现

redis分布式锁机制,及其原理分布式系统加锁时的问题由于网络延迟,对锁的获取造成幂等性问题。当获得锁的服务崩溃,导致锁无法正常释放。加锁后,如何有效的防止锁被篡改解决方法使用setx幂等性操作,解决由于网络延时,造成value值的覆盖使用setx命令设置超时时间,如果服务崩溃,锁也能正常释放(如何控制过期时间的长短)...

2019-01-22 11:12:22 677 1

转载 java jdk动态代理和cglib动态代理对比,实现,区别

java jdk动态代理和cglib动态代理对比,实现,区别jdk动态代理和cglib动态代理对比jdk动态代理特点Interface:对于JDK Proxy,业务类是需要一个Interface的,这是一个缺陷;Proxy:Proxy类是动态产生的,这个类在调用Proxy.newProxyInstance()方法之后,产生一个Proxy类的实力。实际上,这个Proxy类也是存在的,不仅...

2019-01-18 14:49:42 15195 2

原创 java静态代理和动态代理实现代码

java静态代理和动态代理  java设计模式中,常说的代理模式使用的是静态代理模式。代理模式:为其他对象提供一个代理以控制对某个对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。静态代理:由创建代理类或特定工具自动生成源代码再对其编译。在程序运行前代理类的.class文件就已经存在了。动态代理:在程序运行时运用反射机制动态创建而成。...

2019-01-18 10:24:29 753

原创 java反射机制

java反射机制  反射机制:在Java环境中,反射机制允许程序在执行时获取某个类自身的定义信息,例如熟悉和方法等也可以实现动态创建;类的对象、变更属性的内容或执行特定的方法的功能。从而使Java具有动态语言的特性,增强了程序的灵活性和可移植性。作用在运行时判断任意一个对象所属的类型。在运行时构造任意一个类的对象。在运行时判断任意一个类所具有的成员变量和方法。在运行时调用任意一个对象...

2019-01-17 20:47:51 107

原创 java 回调函数例子,其原理,与代理模式的区别

java 回调函数例子,及其原理回调函数  应用程序(application program)会时常通过API调用库里所预先备好的函数。但是有些库函数(library function)却要求应用先传给它一个函数,好在合适的时候调用,以完成目标任务。这个被传入的、后又被调用的函数就称为回调函数(callback function)。作用: 可以把调用者与被调用者分开。调用者不关心谁是被调用者...

2019-01-17 17:21:41 17030 5

原创 BeanDefinition基础信息

public class BeanDefinitionHolder implements BeanMetadataElement { private final BeanDefinition beanDefinition; private final String beanName;//beanID @Nullable private final String[] ...

2019-01-17 16:08:11 418

原创 1.1springioc启动源码分析(ClassPathXmlApplicationContext)

spring启动源码分析(ClassPathXmlApplicationContext)Applicantioncontext uml图ClassPathXmlApplicationContext xml 配置文件项目中的路径FileSystemXmlApplicationContext xml 配置文件在系统中的路径AnnotationConfigApplicationConte...

2019-01-17 16:06:09 245

原创 oracle start with connect by prior用法

oracle start with connect by prior用法作用:显示树形表结构的信息测试脚本:create table a_test ( parentid varchar2(10), subid varchar2(10));insert into a_test values ( '1', '2' );insert into a_test values ...

2019-01-15 14:27:33 831

原创 OAuth基础知识

Third-party application:第三方应用程序,既需要认证的客户端HTTP service:HTTP服务提供商,既用户信息源Resource Owner:资源所有者User Agent:用户代理Authorization server:认证服务器,即服务提供商专门用来处理认证的服务器。Resource server:资源服务器,即服务提供商存放用户生成的资源的服务器。...

2019-01-14 15:10:25 276

转载 Session和cookie 机制详解

Session机制详解一、术语sessionsession:“一个浏览器会话期间,用户的一系列操作”,是指从一个浏览器窗口打开到关闭这个期间,用户的一系列动作(一般情况下是同某个具体目的相关的一系列动作)当session与网络协议相关联时,往往隐含了“面向连接”和/或“保持状态”这样两个含义,“面向连接”指的是在通信双方在通信之前要先建立一个通信的渠道,比如打电话,直到对方接了电话通信才...

2018-12-29 14:33:35 246

原创 oracle筛选出为数字的行

where length(translate(a,'.0123456789'||a,'.0123456789'))=length(groupNum)a为列名。

2018-12-20 20:27:19 1498

原创 voliate原理

volatile原理volatile当使用volatile关键字修饰共享变量(实例变量、静态变量)时,它将具备两个特性:可见性和禁止指令重排序优化1.可见性变量被修改后,会立即保存在主存中,并清除工作内存中的值。新值对于线程来说都是可见的。2.禁止指令重排序优化指令重排序是指CPU在正确处理指令依赖(数据依赖)并且保障程序执行得到正确结果的情况下,调整代码的执行顺序,允许将多...

2018-12-18 23:20:23 6957

原创 synchronized原理分析

synchronizedsynchronized可以保证方法或者代码块在运行时,同一时刻只有一个方法可以进入到临界区,同时它还可以保证共享变量的内存可见性synchronized同步的基础普通同步方法,锁是当前实例对象静态同步方法,锁是当前类的class对象同步方法块,锁是括号里面的对象public class SynchronizedTest { // 普通同步方法 ...

2018-12-17 16:52:50 154

原创 AbstractQueuedSynchronizer(1)源码解析(jdk1.8)

AbstractQueuedSynchronizer源码解析(简称AQS)#AQS的属性//Node类可以看成是线程static final class Node// 头结点,你直接把它当做 当前持有锁的线程 可能是最好理解的private transient volatile Node head;// 阻塞的尾节点,每个新的节点进来,都插入到最后,也就形成了一个隐视的链表p...

2018-12-11 13:41:43 219

原创 2.2jvm类加载

1.jvm类加载时机1.遇到new,getstatic,putstatic或者invokestatic这字节码指令时,会先触发初始化new new实例化对象getstatic 读取一个类的静态字段(使用static final修饰的除外)setstatic 设置一个类的静态字段(使用static final修饰的除外)invokestatic 调用一个类的静态方法2.当初始化...

2018-12-02 21:47:29 154

原创 forearch循环时,不能使用add和remove不然会报错

forearch循环注意事项不要在 foreach 循环里进行元素的 remove/add 操作。remove 元素请使用 Iterator 方式,如果并发操作,需要对 Iterator 对象加锁。

2018-11-29 10:52:30 569

原创 1.zookeeper基础知识,结构和运行流程,基础使用

zookeeper基础知识1.单个zookeeper结构zookeeper结构图每个节点都为znodeznode分为持久节点(客户端断开连接后,仍然存在),临时节点(断开连接,节点消失,不允许有子节点),顺序节点(持久或临时,编号用于锁定和同步中)每个znode维护一个stat(由版本号,操作控制列表,时间戳,数据长度组成)znode详解2.zookeeper集群结构zoo...

2018-11-14 11:30:05 428

原创 2.3四种线程连接池的配置和使用(和自定义线程池)

四种线程连接池的配置和使用最终调用类和方法{参数有 核心线程数目,最大线程数目,存活时间(当前线程执行完这个任务之后,等待下一个任务到来的最长等待时间。如果在这个时间内没有新的任务来到,那当前线程就会退出),时间单位,等待队列(用于存放待执行的任务)}public ThreadPoolExecutor(// 核心线程数目int corePoolSize,//最大线程数目int max...

2018-11-12 17:32:53 685

原创 2.2四种线程连接池的作用

四种线程连接池的作用及其使用线程池的作用:线程池作用就是限制系统中执行线程的数量。 根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排 队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有等待进程,线程池的这一资源处于等待。当一个新任务需要运行时,如果线程池 中有等待...

2018-11-12 15:35:13 310

原创 配置ehCache缓存策略@Cacheable,@CacheEvict,@CachePut

ehCache1.@Cacheable1.@CacheEvict1.@CachePut

2018-11-12 15:30:43 2829

空空如也

空空如也

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

TA关注的人

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