自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 使用场景举例

本部分内容包括:  1、学习原生api的必要性;  2、原生api的书写语法总结;  3、应用场景举例;---------------------------------------------------------------------------------------------------------------------------------------...

2019-09-23 20:11:00 1624

转载 webpack初识

  之前自学过一点vue,看vue的官网的时候,觉得这vue真是太简单了,这么容易就实现了数据的双向绑定,于是准备将自己项目的前端重构为vue。vue的官网说对于新手,如果不了解webpack,node之类的可以暂时不管,但随着自己重构的逐渐深入,发现想跳过webpack之类的是不可能的,因为会发现:哇,项目的结构这么复杂,我一个npm run build就跑起来了,这玩意儿到底咋运行的...

2019-09-15 09:32:00 192

转载 mongodb快速入门

通过mongdb初始,我们对mongodb有了一个基本的认识,接下来看一下究竟如何使用。本部分包含的内容包括:1、mongodb在mac的安装,命令行及客户端工具的简单介绍;2、在spring中如何使用mongodb,增删改查示例;3、mongodb原生api的使用,增删改查示例;4、mongodb连接池的学习;------------------------...

2019-09-08 15:15:00 315

转载 mongodb初识

  计划将mongo做一个不太深入的教程笔记,目的是巩固自己的所学同时也方便它人快速了解;  笔记暂时将分为以下几个步骤:  1、nosql介绍,跟sql的比较,适用场景了解;    主要介绍nosql的设计思想,跟传统sql的对比,以及基础概念;  2、mongo快速入门,基本命令使用;    通过环境搭建,开发工具使用,基本增删改查的开发,了解mongo与传统db...

2019-09-01 16:04:00 179

转载 mysql主从复制与读写分离

文章转自:MySQL主从复制与读写分离MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过。但在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面。因此,一般来说都是通过 主从复制(Ma...

2019-05-13 21:11:00 77

转载 gradle简单配置跟模块依赖

参考文章:https://www.cnblogs.com/lykbk/p/erwerwerwerwerwerwe.htmlhttps://www.cnblogs.com/jiangxiaoyaoblog/p/5845951.html概述  作为一个项目管理工具,maven已经流行了好多年,近几年gradle的项目慢慢多了起来,对其做一个基本的了解还是非常必要的。 ...

2019-04-14 22:36:00 625

转载 synchronized的可见性理解

  之前的时候看《并发编程的艺术》,书中提到dcl写法的单例模式是有问题的,有可能会导致调用者得到一个创建了一半的对象,从而导致报错。修复办法是将单例对象的引用添加volatile进行修饰,禁用重排序,则外界获取的就一定是已经创建好的对象了。  光说总是不行的,上代码:public class SingleTest { private static SingleTe...

2019-01-23 16:53:00 995

转载 elasticsearch 初步

本文主要内容:1、elasticsearch的认识(是个啥,能干啥)2、安装启动、简单集群及关键配置3、名词解释4、存取数据,中文分词---------------------------------------------------------------------------------------------------1、elasticsearch的认...

2019-01-02 15:44:00 121

转载 从单例的双重检查锁想到的

  常说的单例有懒汉跟饿汉两种写法。饿汉由于类加载的时候就创建了对象,因此不存在并发拿到不同对象的问题,但会由于开始就加载了对象,可能会造成一些启动缓慢等性能问题;而懒汉虽然避免了这个问题,但普通的写法会在高并发环境下创建多个对象,单纯加synchronize又会明显降低并发效率,较好的两种写法是静态内部类跟双重检查锁两种。  双重检查锁这个,大家都很熟悉了,上代码:pu...

2018-12-13 16:46:00 91

转载 ConcurrentHashMap源码

  推荐文章:  java7/8中的hashmap跟currentHashMap  关于RESIZE_STAMP_BITS字段的一些解释  扩容图解  网上的文章,jdk7版本的比较多,由于自己本地是jdk8,所以还是整理jdk8的逻辑吧。-----------------------------------------------------------------...

2018-12-09 22:29:00 79

转载 记一次idea性能调优

  因自研的自动化测试工具包含压测功能,在自己本地代码开发完毕后进行测试,对目标接口进行1000次访问,发现idea在执行结束后变的异常卡顿,怀疑是idea工具或者程序代码存在问题,遂进行排查。----------------------------------------------------------------------------------------------...

2018-12-03 22:20:00 898

转载 condition实现原理

  condition是对线程进行控制管理的接口,具体实现是AQS的一个内部类ConditionObject,主要功能是控制线程的启/停(这么说并不严格,还要有锁的竞争排队)。condition主要方法:void await() throws InterruptedException进入等待,直到被通知或中断void aw...

2018-11-04 21:26:00 179

转载 读写锁--ReentrantReadWriteLock

读写锁,对于读操作来说是共享锁,对于写操作来说是排他锁,两种操作都可重入的一种锁。底层也是用AQS来实现的,我们来看一下它的结构跟代码:-----------------------------------------------------------------------------------------------读写锁,当然要区分读跟写两种操作,因此其内部有ReadL...

2018-11-04 21:13:00 140

转载 volatile与synchronized实现原理

参考文章:https://www.cnblogs.com/charlesblc/p/5994162.html------------------------------------------------------------------  刚开始认识volatile的时候,觉得对它的一些特性非常迷惑。比如:具有可见性,如果一个线程修改了volatile变量的值,那么...

2018-10-28 11:08:00 539

转载 锯齿排列

 今天碰到一个面试题觉得挺有意思,特来记录一下.  有一给定数组,按锯齿形状排列数组元素。比如a<b>c<d>e<f>g .... 以此类推。给定数组:{1, 2, 3, 4, 5, 6, 7, 8, 9}, 请编程。  刚看到这个题目觉得挺新颖的,平常见到都会从大到小或者从小到大,这个来个锯齿的,这不按套路出牌啊。第一眼感觉没思路,想了一下,觉...

2018-10-18 17:18:00 776

转载 队列同步器AbstractQueuedSynchronizer

  AQS是用来构建锁或者其它同步组件的基础框架,它使用一个int变量来表示同步状态,通过内置的FIFO队列来完成获取线程的排队工作,concurrent包的作者Doug Lea期望它能称为实现大部分同步需求的基础。  同步器的使用方式是继承,子类通过继承AQS并实现它的相关方法来管理同步状态,在子类方法的实现中不可避免的要对状态进行更改,AQS提供了3个方法:getState()、...

2018-10-16 21:11:00 96

转载 6、锁优化

  高效并发是jdk1.5到1.6的一个重要改进,hotspot虚拟机开发团队在这个版本上花费了大量精力去实现各种锁优化技术,例如:适应性自旋、锁消除、锁粗化、轻量级锁跟偏向锁等,这些技术都是为了在线程间更高效的共享数据,以解决竞争问题,从而提高程序执行效率。自旋锁与自适应自旋:  虚拟机开发团队注意到,在许多应用上共享数据的锁定状态只会持续很短的时间,为了这段时间去挂起跟恢复线...

2018-09-20 18:05:00 73

转载 5、线程安全的实现方式

  了解了什么是线程安全之后,接下来就是如何实现线程安全。那么了解虚拟机提供的同步机制以及锁机制也就非常重要了。1、互斥同步  互斥同步是指多个线程并发访问共享数据时,保证共享数据在同一时刻只被一个线程使用。在这个地方,互斥是因,同步是果;同步的实现方式是通过互斥来实现的;常见的互斥实现方式有:临界区(critical selection),互斥量(mutex)和信号量(sema...

2018-09-09 16:41:00 147

转载 mac上k8s学习踩坑

本文学习k8s参考内容:http://docs.kubernetes.org.cn/126.html,学习过程中遇到一些坑,记录如下:----------------------------------------------------------------------------------  k8s目前最好是用linux进行部署,windows跟mac现在虽然有k8s的版...

2018-09-01 11:36:00 1324

转载 k8s单节点集群部署应用

  之所以用k8s来部署应用,就是因为k8s可以灵活的控制集群规模,进行扩充或者收缩。生产上我们要配置的参数较多,命令行的方式显然不能满足需求,我们应该使用基于配置文件的方式。接下来做一个部署的demo:-------------------------------------------------------------------------------------------...

2018-09-01 11:36:00 676

转载 3、java内存模型特点

java内存模型是围绕着在并发过程中如何处理原子性,可见性跟有序性这三个问题来建立的。先看一下这三个特性:1、原子性由java内存模型来直接保证的原子性变量操作就是上文2中提到的8种基本操作,我们大致可以认为基本数据类型的读写是具备原子性的(long跟double不必太过在意)。如果需要一个更大范围的原子性保证,java内存模型还提供了lock跟unlock操作来满足这种需求。...

2018-08-27 11:13:00 142

转载 4、线程安全的理解

线程安全定义:  《Java Concurrency In Practice》(并发编程实践)中有一个相对恰当的定义:当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那么这个对象就是线程安全的。线程安全的等级:  在多个线程间存在共享数据访问的前提...

2018-08-27 11:07:00 106

转载 2、java内存间交互操作

关于主内存与工作内存之间具体的交互协议,即一个变量如何从主内存拷贝到工作内存,如何从工作内存同步回主内存之类的实现细节,java内存模型中定义了8种操作来完成,虚拟机实现时必须保证这8种操作都是原子的、不可分割的(对于long和double类型的变量来说,load、store、read跟write在某些平台上允许例外)。8种基本操作:lock,锁定,所用于主内存变量,它把一个...

2018-08-11 22:41:00 148

转载 1、java线程模型

  要了解多线程,先需要把java线程模型搞清楚,否则有时候很难理清楚一个问题。硬件多线程:  物理机硬件的并发问题跟jvm中的情况有不少相似之处,物理机的并发处理方案对于虚拟机也有相当大的参考意义。在买电脑或者自己diy的时候经常看到商家的介绍,什么“4核8线程”,“8核16线程”;这里“核”是指cpu的核心数,所谓“4核8线程”就是将2个cpu放置到一个封装内,比如i7-77...

2018-08-11 22:41:00 87

转载 eureka的一点细节

  第二部分粗略的过一遍,还是有些模糊,再来相对系统的看一下:----------------------------------------------------------------------------------------------------1、ureka 的注册延迟  eureka client启动后,不是立即向eureka server注册,而是有一个...

2018-07-23 15:52:00 86

转载 zuul路由网关

  zuul作为网关组件,主要用来管理api请求接口(统一对外暴露,负载均衡),身份认证,流量监控等。它是通过servlet来实现的,核心是一系列过滤器,可以在请求的发起跟相应返回阶段进行一系列的处理。--------------------------------------------------------------------------------------------...

2018-07-21 15:03:00 69

转载 div拖动实现及优化

  工作中的一个项目ui界面比较传统(chou),就想着把前端重构一下。内容之一是把导航栏从上方固定高度改为了右侧伸缩的边栏,好处是边栏可伸缩,占用面积小。不完美的地方是有时候会遮挡页面上最右边的按钮,作为一个喜欢追求美的人,是可忍孰不可忍,于是决心改掉这个导航栏,让它可拖拽,如果挡住了就拖一下换个地方,岂不美哉 ?!  本例实际是只上下拖动,全局自由拖动的话将x坐标一起加入计算即可...

2018-07-18 11:06:00 236

转载 配置中心初识

在项目开发完毕,进行部署运维的时候,总有很多配置文件要修改,稍有不慎漏掉或者跟运维人员沟通不畅就会很麻烦,很多时候上线时候的加班时间就是这么秏进去的。spring cloud的配置中心提供了让我们把配置文件统一管理的解决方案,只需要在一个地方统一改一个配置文件,上线运维不用做任何修改,是不是很爽!其实这不是spring 独创,java也有一些类似定位的产品,比如百度的disc...

2018-07-08 22:15:00 73

转载 eureka 源码

  本文为eureka学习笔记,错误之处请指正。-----------------------------------------------------------1、服务生产者是怎么注册到配置中心的  a、第一步,构造实例信息,用于接下来的注册;  这个过程是通过EurekaClientConfiguration类中的方法eurekaApplicationInfoMa...

2018-06-24 11:29:00 148

转载 自己的spring boot starter

这篇文章说的更加详细具体:https://www.cnblogs.com/hjwublog/p/10332042.html在刚开始看spring boot的时候,发现这么多starter,不免觉得好奇:这些究竟是怎么工作的,每个里边源码都长啥样?今天我们手写一个starter来了解这个过程:----talk--is--cheap--just--show--you--the...

2018-05-21 09:46:00 62

转载 spring boot基本认识

  大家眼中的spring boot:https://www.zhihu.com/question/39483566-------------------------------------------------------------------------  Spring Boot是由spring官方(Pivotal团队)在2013年提供的全新框架,其设计目的是用来简化新Sprin...

2018-05-17 22:03:00 70

转载 组合注解与元注解

  从spring2开始,为了响应jdk1.5推出的注解功能,spring开始大量加入注解来代替xml配置。随着注解的大量使用,我们发现多个相同的注解被在不同的类或者方法里多次使用的时候,代码看起来比较繁琐。这就是所谓的样板代码,是spring设计原则中要消除的代码。比如以下代码:  如果我们把以上三个注解合并为一个注解,那多省事儿!这就是组合注解,与之相对的就是元注解。...

2018-05-05 22:54:00 124

转载 Spring Aware

spring依赖注入的最大亮点就是所有的bean感知不到spring容器的存在,但在实际开发中,我们不可避免的要用到spring容器本身的功能资源,这时,我们就必须意识到容器的存在(废话,都要跟容器进行交互了好么),才能调用spring所提供的资源,这就是所谓的Spring Aware。Spring Aware的目的是为了让bean获得spring容器的服务。因为Applicatio...

2018-05-05 22:53:00 65

转载 https的设计原理

参考文章:https://www.cnblogs.com/zhangshitong/p/6478721.htmlhttp://blog.jobbole.com/113883/这两篇文章写的非常好,本文是读后笔记------------------------------------------------------------------------------- ...

2018-04-22 13:52:00 177

转载 用信鸽来解释 HTTPS

原文:http://blog.jobbole.com/113883/------------------------------------------------------------------密码学是一门难以理解的学科,因为它充满了数学定理。但是除非你要实际开发出一套加密算法系统,否则你是没必要强制理解那些深奥的数学定理的。如果你阅读本文的目的是想设计下一套 HTTP...

2018-04-22 13:50:00 65

转载 一致性哈希

原文出处:http://www.zsythink.net/archives/1182----------------------------------------------------------  在了解一致性哈希算法之前,最好先了解一下缓存中的一个应用场景,了解了这个应用场景之后,再来理解一致性哈希算法,就容易多了,也更能体现出一致性哈希算法的优点,那么,我们先来描述一下...

2018-03-31 11:08:00 76

转载 redis cluster原理

1、节点间通信redis cluster 节点之间采用Gossip协议进行通信,Gossip协议就是指节点彼此之间不断通信交换信息。当主从角色变化或新增节点,彼此通过ping/pong进行通信知道全部节点的最新状态并达到集群同步。Gossip协议的主要职责就是信息交换,信息交换的载体就是节点之间彼此发送的Gossip消息,常用的Gossip消息有ping消息、pong消息、mee...

2018-03-25 22:16:00 194

转载 哨兵机制的原理

如果我们不用哨兵,如何实现主从故障的转移呢?这事儿得手动来实现:1、在从节点slave-1执行 slaveof no one ,将从节点变为主节点;2、其它的节点,执行 slaveof slave-1的ip port,变为slave-1的从节点,并从新节点复制数据;当然,有了哨兵机制我们就不用这么费事儿了,它的原理就是用raft算法实现选举机制,选出一个哨兵节点(哨兵也有主节...

2018-03-18 12:14:00 582

转载 哨兵机制配置

从redis的主从配置可以发现,里边没有提供高可用机制。如果master挂了,slave是不会自动选举出一个master接替工作的,显然这是不能接受的。而哨兵机制就是用来解决此问题的。哨兵的配置跟启动:  1、redis文件夹下有sentinel.conf文件,复制三份,分别命名为sentinel26379.conf、sentinel26380.conf跟sentinel2638...

2018-03-16 09:58:00 117

转载 redis主从

  redis的主从实际是一种类似于mysql读写分离的操作。master一般只接收写入,slave只接收读取。主从配置:  配置比较简单,只需要在从服务器redis.conf里边配置slaveof masterip port 即可。  配置完成后,分别启动主从redis,执行info replication,可以看到节点信息,例如:  从节点默认只读模式,因为...

2018-03-16 09:58:00 143

空空如也

空空如也

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

TA关注的人

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