- 博客(23)
- 资源 (64)
- 收藏
- 关注
转载 【转载】分布式之数据库和缓存双写一致性方案解析
【转载】文章来源:https://segmentfault.com/a/1190000014960784 首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下午的流程来进行业务操作: 但是,在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存?又或者是先删除缓存,再更新数据库?其实这一块是存在很大的争议。二、文章结构讲解缓存...
2018-05-30 20:47:31 247
转载 【转载】Hystrix熔断原理
在实际的工程实践中,这四种模式既可以单独使用,也可以组合使用,为了让读者更好的理解这些模式的应用,下面以Netflix的开源组件Hystrix的流程为例说明。 图中流程的说明: 1. 将远程服务调用逻辑封装进一个HystrixCommand。 2. 对于每次服务调用可以使用同步或异步机制,对应执行execute()或queue()。 3. 判断熔断器(circuit-breaker)是...
2018-05-27 18:47:28 5489
原创 JVM经典书籍
JVM系列学习JVM的相关资料 - 《深入理解Java虚拟机——JVM高级特性与最佳实践(第2版)》 基于最新JDK1.7,围绕内存管理、执行子系统、程序编译与优化、高效并发等核心主题对JVM进行全面而深入的分析,深刻揭示JVM的工作原理。以实践为导向,通过大量与实际生产环境相结合的案例展示了解决各种常见JVM问题的技巧和实践《揭秘Java虚拟机:JVM设计原理与实现》 ...
2018-05-23 22:07:47 33539 3
原创 XML与JSON比较
XML定义:扩展标记语言 (Extensible Markup Language, XML)用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。XML是标准通用标记语言 (SGML) ...
2018-05-12 11:50:23 394 1
原创 JAVA之long和double读写操作原子性
Java虚拟机规范定义的许多规则中的一条:所有对基本类型的操作除了某些对long类型和double类型的操作之外,都是原子级的; 当线程把主存中的 long/double类型的值读到线程内存中时,可能是两次32位值的写操作,显而易见,如果几个线程同时操作,那么就可能会出现高低2个32位值出错的情况发生。即long,double高低位问题,非线程安全举例说明:即如有一个long类型...
2018-05-10 23:43:36 3575
原创 JAVA8 Vector学习笔记
VectorVector是实现了List接口和RandomAccess接口的集合类构造方法及变量public Vector(int initialCapacity, int capacityIncrement) { super(); if (initialCapacity < 0) throw new IllegalArgumentExce...
2018-05-10 22:21:31 300
原创 JAVA8 LinkedList学习笔记
LinkedListLinkedList 是一个继承于AbstractSequentialList的双向链表。它也可以被当作堆栈、队列或双端队列进行操作。LinkedList 实现 List 接口,能对它进行队列操作。LinkedList 实现 Deque 接口,即能将LinkedList当作双端队列使用。LinkedList 实现了Cloneable接口,即覆盖了函数clone(),...
2018-05-10 22:18:19 214
原创 负载均衡算法总结
常见的负载均衡算法轮询法(Round Robin)加权轮询(Weight Round Robin)随机算法(Random)源地址HASH算法(当同一IP地址客户端后端服务器列表不变时,每次都会路由到相同的服务器hashCode % serverListSize)加权随机法(Weight Random)最小连接数法(Least Connections)随机(Random)算...
2018-05-09 23:10:18 253
原创 JAVA8 HashMap学习笔记
先看下JAVA中Map的类关系图 下面针对各个实现类的特点做一些说明:(1) HashMap:它根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但遍历顺序却是不确定的。 HashMap最多只允许一条记录的键为null,允许多条记录的值为null。HashMap非线程安全,即任一时刻可以有多个线程同时写HashMap,可能会导致数据的不一致。如...
2018-05-09 17:28:25 236
原创 JAVA8 ArrayList学习笔记
ArrayListArrayList类支持能够按需增长的动态数组,增长策略oldCapacity + (oldCapacity >> 1)即原来的长度+原长度的一半int newCapacity = oldCapacity + (oldCapacity >> 1);默认容量大小是10 private static final int DEFAUL...
2018-05-08 12:16:53 164
原创 JAVA内存模型--指令重排序
指令重排序在执行程序时,为了提高性能,编译器和处理器会对指令做重排序。但是,JMM确保在不同的编译器和不同的处理器平台之上,通过插入特定类型的Memory Barrier来禁止特定类型的编译器重排序和处理器重排序,为上层提供一致的内存可见性保证。编译器优化重排序:编译器在不改变单线程程序语义的前提下,可以重新安排语句的执行顺序。指令级并行的重排序:现代处理器采用了指令级并行技术(Ins...
2018-05-08 00:07:16 254
原创 JVM内存屏障(Memory Barrier)
#内存屏障(Memory Barrier)内存屏障可以禁止特定类型处理器的重排序,从而让程序按我们预想的流程去执行。内存屏障,又称内存栅栏,是一个CPU指令,基本上它是一条这样的指令:保证特定操作的执行顺序。影响某些数据(或则是某条指令的执行结果)的内存可见性。编译器和CPU能够重排序指令,保证最终相同的结果,尝试优化性能。插入一条Memory Barrier会告诉编译器...
2018-05-08 00:01:32 5009
转载 Web技术发展与REST的由来
PS:本文是摘录自《理解本真的REST架构风格》,个人认为这篇文章理解非常透彻Web技术发展与REST的由来Web(万维网World Wide Web的简称)是个包罗万象的万花筒,不同的人从不同的角度观察,对于Web究竟是什么会得出大不相同的观点。作为Web开发者,我们需要从技术上来理解Web。从技术架构层面上看,Web的技术架构包括了四个基石:URIHTTPHyperTex...
2018-05-07 11:06:32 598
原创 负载均衡学习笔记之DNS域名解析负载均衡
DNS域名解析负载均衡DNS(Domain Name System)是因特网的一项服务,它作为域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。人们在通过浏览器访问网站时只需要记住网站的域名即可,而不需要记住那些不太容易理解的IP地址。在DNS系统中有一个比较重要的的资源类型叫做主机记录也称为A记录,A记录是用于名称解析的重要记录,它将特定的主机名映射到对应主机的IP地...
2018-05-06 01:10:56 3587
原创 负载均衡学习笔记之HTTP重定向负载均衡
HTTP重定向负载均衡原理:HTTP重定向服务器是一台普通的应用服务器,其唯一个功能就是根据用户的HTTP请求计算出一台真实的服务器地址,并将该服务器地址写入HTTP重定向响应中(重定向响应状态码为302)返回给用户浏览器。用户浏览器在获取到响应之后,根据返回的信息,重新发送一个请求到真实的服务器上利用HTTP重定向协议实现负载均衡大概工作原理如下图: PS:图片来源于网络HTT...
2018-05-06 00:30:34 977
原创 POJO&JavaBean区别
概念POJO(Plain Old Java Object):普通Java类,POJO的内在含义是指那些没有从任何类继承、也没有实现任何接口,更没有被其它框架侵入的java对象;JavaBean:javaBean是一种Java语言写成的可重用组件。为写成JavaBean,类必须是具体和公共的,并且具有无参数的构造器。JavaBean通过提供符合一致性设计模式的公共方法将内部域暴露成员属性。更...
2018-05-04 23:40:53 187
原创 JDK之Float源码解析
概述Java的Float类主要的作用就是对基本类型float进行封装,提供了一些处理float类型的方法,比如float到String类型的转换方法或String类型到float类型的转换方法,当然也包含与其他类型之间的转换方法 java float类型用IEEE754标准规定;float占用4个字节,包括:1bit(符号位):0表示正数,1表示负数;8bits(指数位)...
2018-05-04 18:54:23 550
原创 cookie与session的区别
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份知识点cookie数据保存在客户端,session数据保存在服务器端session中保存的是对象,cookie中保存的是字符串Cookie具有不可跨域名性ses...
2018-05-04 15:52:24 112
原创 java.lang.Integer源码分析
Integer 本文源码基于JDK8Integer也是我们经常使用的工具类、包装类,此文主要用于记录学习笔记,主要从源码角度深入了解一下。public final class Integer extends Number implements Comparable<Integer> { // 2147483647 public static fin...
2018-05-04 15:16:56 467
原创 JAVA StringBuilder&StringBuffer学习
StringBuilder&StringBuffer 本文源码基于JDK8StringBuilder与StringBuffer是两个常用的操作字符串的类。StringBuilder是线程不安全的,而StringBuffer是线程安全的;StringBuilder、StringBuffer都继承自AbstractStringBuilderabstract class A...
2018-05-04 12:03:27 118
原创 JAVA基础String学习探究
StringString是JAVA中最常用的对象,就是这样一个最常用最普通的对象,当你深入研究时却发现我们并不是真的很了解它,那么让我们一起来学习它吧!因为String不可变的性质,因此Java内部实现了常量池。当一个String被创建时,会先去常量池查看有没有值相同的示例,有的话直接返回。节省了内存,加快了字符串的加载速度。不可变的对象也可以保证在并发中保持线程安全特性字符串常...
2018-05-04 09:53:42 235
原创 JAVA常用术语汇总
OOD(Object Oriented Design):面向对象的设计OOA(Object Oriented Analysis):面向对象的分析OOP(Object Oriented Programming):面向对象编程;面向对象是一种编程范式,满足面向对象编程的语言,一般会提供类、封装、继承等语法和概念来辅助我们进行面向对象编程。所谓的面向对象就是将我们的程序模块化,对象化,把具体事物的...
2018-05-03 23:54:10 5702
原创 JAVA线程池ThreadPoolExecutor学习笔记
ThreadPoolExecutorpublic ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, Tim...
2018-05-03 09:32:14 171
jquery zTree
2013-06-05
struts-2.3.14.2
2013-05-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人