自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 maven项目搭建dubbo的消费者和生产者

生产者:  pom.xml需要依赖的: properties> spring.version>3.2.4.RELEASEspring.version> properties> dependencies> dependency>...

2017-08-04 22:24:52 2658 0

转载 linux下给mysql设置密码

一:下载并且上传安装包到linux系统上 1:下载地址:http://dev.mysql.com/downloads/mysql/   2:通过LeapFtp工具,将windows上的mysql安装包拷贝到linux系统上   二:安装mysql数据库...

2017-07-26 09:09:07 1522 0

转载 linux下安装mysql数据库

由于本人要在CentOS上部署一个Java项目,这个项目里面要对数据库进行操作,所以第一件事情就是安装数据库啦!现在本人将来带领你们一步一步实现MySQL数据库的安装。 首先,在CentOS下,我们可以直接通过yum命令来安装数据库。在安装数据库之前,我们应该先查看自己的CentOS上是否已...

2017-07-26 09:05:05 6547 0

转载 spring中多数据源配置

项目中我们经常会遇到多数据源的问题,尤其是数据同步或定时任务等项目更是如此。多数据源让人最头痛的,不是配置多个数据源,而是如何能灵活动态的切换数据源。例如在一个spring和hibernate的框架的项目中,我们在spring配置中往往是配置一个dataSource来连接数据库,然后绑定给sess...

2017-05-31 06:24:14 434 0

转载 Minor GC和FUllGC的区别

在Plumbr的工作过程中遇到GC间隙功能探测问题使我不得不关注相关文章,书籍,简报。自始至终,我不止一次迷惑于 Minor, Major and Full GC 的用法。为了搞清楚这些疑惑我写这篇博客。 这篇博客期望读者了解JVM 底层 GC机制。jvm heap区 分为 Eden,Sur...

2017-05-30 15:42:00 5770 0

转载 Redis集群搭建与简单使用

Redis集群搭建与简单使用 介绍安装环境与版本 用两台虚拟机模拟6个节点,一台机器3个节点,创建出3 master、3 salve 环境。 redis 采用 redis-3.2.4 版本。 两台虚拟机都是 CentOS ,一台 CentOS6.5 (IP:192.168.31.2...

2017-05-21 15:22:25 274 0

转载 springmvc+dubbo的maven项目

一、软件环境  1、zookeeper  下载地址:https://zookeeper.apache.org/releases.html 下载最新版的zookeeper,我这里使用的版本是 zookeeper-3.4.8(当前最新版3.5.1)  2、springMVC (maven方式引入...

2017-05-20 10:34:49 567 0

转载 java异步读取网络

简单的来说,Java NIO 提供了一种异步非阻塞模型,使得网络请求都可以并发执行。 服务器端采用这种模型,响应速度将大大提高,Apache,Nginx 都是这种模型。 本文介绍的是客户端如何采用这种模型来提高客户端访问网络的速度。 1. 使用范例 public static ...

2017-05-10 09:59:34 635 0

转载 全面理解java中NIO机制

本文简介: JDK 1.4 中引入的新输入输出 (NIO) 库在标准 Java 代码中提供了高速的、面向块的 I/O。本实用教程从高级概念到底层的编程细节,非常详细地介绍了 NIO 库。您将学到诸如缓冲区和通道这样的关键 I/O 元素的知识,并考察更新后的库中的标准 I/O 是如何工作的。您还将了...

2017-05-10 09:25:40 364 0

原创 使用zookeeper对进程进行加锁

/**  * 主要实现进程间的锁利用zookeeper的  *   * @author yc  *   */ public class MyLock { private CountDownLatch runFlag = new CountDownLatch(1); private ...

2017-05-10 08:33:52 523 0

转载 maven构建一个springmvc项目

1、新建一个Maven Project  2、选择工作空间  3、搭建Web工程,我们选择maven-archetype-webapp类型  4、填写项目参数,如图  5、以上步骤完成时的工程结构目录  6、可以查看或修改发布目...

2017-05-06 10:02:27 2915 0

转载 hadoop2.4.1集群搭建

hadoop2.0已经发布了稳定版本了,增加了很多特性,比如HDFS HA、YARN等。最新的hadoop-2.4.1又增加了YARN HA 注意:apache提供的hadoop-2.4.1的安装包是在32位操作系统编译的,因为hadoop依赖一些C++的本地库, 所以如果在64位的操作上安装...

2017-04-30 14:45:27 515 0

转载 Zookeeper搭建

1.上传zk安装包 2.解压 3.配置(先在一台节点上配置) 3.1添加一个zoo.cfg配置文件 $ZOOKEEPER/conf mv zoo_sample.cfg zoo.cfg 3.2修改配置文件(zoo.cfg) dataDir=/itcast/zooke...

2017-04-28 19:41:40 228 0

转载 ssh免密码登入

大家可以配置成密论认证的方式 首先生成密钥,用命令ssh-keygen –t rsa      运行后可以一直空格,生成密钥,id_rsa和id_rsa.pub文件 ,默认放在/root/.ssh/下,.ssh文件是隐藏的,要显示隐藏文件才看得到      在/home/admin下创建.ssh活...

2017-04-26 15:08:24 305 0

转载 HBase的配置

1.上传hbase安装包 2.解压 3.配置hbase集群,要修改3个文件(首先zk集群已经安装好了) 注意:要把hadoop的hdfs-site.xml和core-site.xml 放到hbase/conf下 3.1修改hbase-env.sh export JAV...

2017-04-25 19:14:18 348 0

转载 hive安装

Hive只在一个节点上安装即可 1.上传tar包 2.解压 tar -zxvf hive-0.9.0.tar.gz -C /cloud/ 3.配置mysql metastore(切换到root用户) 配置HIVE_HOME环境变量 rpm -qa | grep mysql rpm -e m...

2017-04-25 11:26:17 208 0

原创 如何在springcloud中使用feign 和hystrix使用时设置方法上面超时时间

springcloud中在方法中设置超时时间 maven依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-clou...

2020-05-11 22:33:41 142 0

原创 一次k8s容器云上某个服务cpu使用异常问题定位

问题简介 我们项目运行在k8s集群中,在运行期间出现存在一个服务的cpu使用比较异常相对其他服务的cpu使用要远远要高 问题定位及分析 通过容器外部执行top -Hp pid命令查看异常服务进程的线程使用情况 上面为找到明显的性能消耗线程,但是却总有10左右的线程消耗c...

2019-07-11 14:22:18 328 0

原创 ReentranLock源码分析

在上一章我们知道AQS中存在大量模板方法,让其子类实现。ReentranLock中的成员变量Sync有两中NofairSync,FairSync为AQS的实现类并且是ReentranLock的嵌套类 我们以ReentranLock中的非公平锁中的lock和unlock方法进行源码分析 上面...

2019-06-03 14:11:02 137 0

原创 AQS源码分析讲解

首先来一幅AQS整体数据结构源码 AQS中有很多重要的成员变量其中包括上面图中的Head,Tail。它们永远保存当前被阻塞住的线程按照顺序依次排列下去 上面Node中的成员变量Thread就是存放阻塞的线程变量 有了上面大概的信息我们开始进入源码分析, 1.AQS是如何让线程阻...

2019-06-03 11:36:13 195 0

原创 netty中添加处理器讲解

netty中我们会添加一些处理器,如果对其添加流程及内部结构不清楚经常会出现各种问题,我先给出一幅处理器整体排版图 addFist添加Handler是将Handler放在Head后面 addLast添加Handler是将Handler放在Tail的前面 消息接收时是从Head开始向Tai...

2019-05-31 10:57:04 450 0

原创 netty如何判断数据包是否结束

上一篇中分析netty会缓存不完整的数据包,那如何判断数据包是否结束了? 本章主要分析netty中常用判断tcp中数据包是否上传完毕。这里我还是用LengthFieldBasedFrameDecoder进行分析 其解析数据可以分为两个部分,head表示头用来记录数据长度 body表示存放的...

2019-05-30 19:35:16 1595 0

原创 tcp中非阻塞编程为啥出现粘包问题及netty如何解决

在网络编程中我们调用send方法只是将数据存放到sendbuf中由底层tcp进行发送包,这里发送包底层会进行一些优化,尽可能一次发送多的数据,但是数据大小不能太大如果太大会拆分多次进行发送。所有在这个过程中就会出现一次发送包含大量数据包或者一次无法发送完整的数据包。这就是我们说的粘包问题。在阻塞编...

2019-05-30 16:35:35 102 0

原创 CMS垃圾回收分析及优化

总体垃圾回收器搭配使用如下 我们项目中常见搭配是年轻代采用ParNew老年代 CMS+Serial Old其分代收集实现如下 minor gc为ParNew垃圾收集器为多线程收集器 major gc 为CMS垃圾收集器多线程最低停顿垃圾收集器 full gc 为serial 垃圾收集器...

2019-05-30 14:33:55 727 0

原创 springboot执行中事务失效问题排查

背景: 在执行springboot事务时发现表中数据未能正常回滚掉 猜想: 1.springboot中事务未能成功开启,可能没有引入aop导致 2.springboot中方法抛出的异常不能被事务框架正常捕获 问题定位: 代码如下 @Service public class Te...

2019-05-30 10:45:58 2853 0

原创 springboot代码中如何减少锁等待时间

springboot中如何减少锁等待时间 在并发编程中经常听到一句话是减少锁的访问,我们进行数据库操作是也可以利用上面思想优化自己代码。记得我曾经说过mysql中的加锁时机是访问是才加锁所有有如下优化点 1. 如果service方法中不需要保证执行ACID可以不使用事务,让其执行完一条sql就...

2019-05-09 08:49:13 597 0

原创 mysql可重复读隔离级别加锁分析

问题 myql可重复读隔离级别下可能会导致插入阻塞,问题复现如下 表中有3列都是int类型 其索引情况如下: id为主索引,c,d为普通索引 现在开始制作问题: 在这里我分别开启两个事务:第一个事务中执行一个update 语句更新一个不存在的数据,这里没有执行commit也就事...

2019-05-08 08:56:21 1611 0

原创 mysql测试环境问题定位

问题: mysql测试环境出现insert阻塞很长时间 猜想: 出现insert很长主要有两个方面 1.插入被其他锁阻塞了(这里能导致阻塞的只有在可重复读隔离级别下的间隙锁导致的) 2.mysql在某一段时间内进行刷脏页 验证: 因为锁阻塞需要业务人去优化自己的代码比如更新使...

2019-05-07 09:21:06 187 0

转载 spring boot 中 aop是如何进行管理

spring-boot的aop是如何进行管理的 从上面几章分析等着spring-aop的核心就是要加载AnnotationAwareAspectJAutoProxyCreator类 AopAutoConfiguration 我们看下它的内容: @Configuration //这里判断...

2018-07-25 17:13:08 414 1

转载 spring aop 中的AnnotationAwareAspectJAutoProxyCreator 创建过程

spring aop 中的AnnotationAwareAspectJAutoProxyCreator 创建过程   我们在 EnableAspectJAutoProxy注解中看到如下语句 @Target(ElementType.TYPE) @Retention(RetentionPoli...

2018-07-24 21:42:10 554 1

转载 spring中aop源码分析(五)

spring中源码分析(五) 我们接着JdkDynamicAopProxy下面的invoke方法下面 进行分析 // We need to create a method invocation... invocation = new ReflectiveMethodInvoca...

2018-07-17 21:13:57 192 0

转载 spring中aop源码分析(四)

spring中aop源码分析(四) 我们直接看JdkDynamicAopProxy的invoke方法 由于JdkDynamicAopProxy实现了InvocationHandler public Object invoke(Object proxy, Method method, Obje...

2018-07-17 21:03:32 182 0

转载 spring中aop的源码解析(三)

spring中aop的源码解析(三) 我们继续查看AbstractAspectJAutoProxyCreator中的wrapIfNecessary方法 Object[] specificInterceptors = getAdvicesAndAdvisorsForBean(bean.getC...

2018-07-17 15:17:36 205 0

转载 spring中aop源码解析(二)

Spring中aop源码解析(二) 我们上一章讲到判断对象是否需要被代理 if (isInfrastructureClass(bean.getClass()) || shouldSkip(bean.getClass(), beanName)) { this.advisedBeans.p...

2018-07-17 14:33:27 171 0

转载 spring中aop源码理解(一)

Spring中aop源码理解(一) spring中aop涉及的类我们冲 AnnotationAwareAspectJAutoProxyCreator 我们看下它的继承结构 由于它实现了BeanPostProcessor接口所有在获取bean时可以进行一定的处理,aop正是利用这个特性...

2018-07-17 13:43:36 104 0

转载 spring获取bean实例(七)

Spring中获取bean对象实例(七) 今天进行下面重要分析,从上一章我们可以得知,getSingleton最终的获取对象还是调用createBean方法 sharedInstance = getSingleton(beanName, () -&gt; { try { ...

2018-07-17 10:47:37 775 0

转载 spring获取bean对象(六)

下面我们接着AbstractBeanFactory的doGetBean中方法,如果未从缓存中获取到实例对象就会进入到下面方法 if (mbd.isSingleton()) { sharedInstance = getSingleton(beanName, () -&gt; { ...

2018-07-16 21:27:45 135 0

转载 spring获取bean对象(五)

spring中获取bean对象(五) 上一章我们分析到获取FactoryBean下面的对象,我们先看从缓存中获取对象方法 object = getCachedObjectForFactoryBean(beanName); 我们进入到下面方法详细查看下: protected Object...

2018-07-16 21:10:52 93 0

转载 spring获取bean(三)

spring获取bean对象 上一章我们知道spring是如何获取类名根据传入的名称下面我们接着AbstractBeanFactory中的doGetBean方法进行分析 Object sharedInstance = getSingleton(beanName); 这句我们在第一章说过这里...

2018-07-16 20:27:39 61 0

转载 spring中bean获取(二)

 spring中获取bean 在上面一章我们分析了AbstractBeanFactory中的doGetBean方法在上面有这个方法transformedBeanName 我们大概说了这个方法是进行名称转换来获取真正的类名称,其中包括别名转换,&amp;特殊名称转换 具体代码如下: ...

2018-07-16 20:14:56 156 0

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