自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

阿肯那顿的博客

学以致用

  • 博客(17)
  • 问答 (2)
  • 收藏
  • 关注

转载 Redis集群模式

此文由多处转载,自行组织,水平有限,有错误,望大家指正。现在越来越多的项目都会利用到redis,多实例redis服务比单实例要复杂的多,这里面涉及到定位、容错、扩容等技术问题。我们常用sharding技术来对此进行管理,其集群模式主要有以下几种方式:主从复制哨兵模式Redis官方 Cluster集群模式(服务端sharding)Jedis sharding集群(客户端shardin...

2018-03-19 15:13:07 9890 2

转载 Java原子类实现原理分析

原子类来自于java.util.concurrent包,而java.util.concurrent包完全建立在CAS之上的,没有CAS就不会有此包。可见CAS的重要性。什么是CASCompare and Swap, 翻译成比较并交换。 java.util.concurrent包中借助CAS实现了区别于synchronouse同步锁的一种乐观锁。CAS有3个操作数,内存值V,旧的预期值...

2018-03-16 13:43:34 4017

原创 Spring读取资源文件

Spring配置文件<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> ..

2018-03-16 12:57:01 527

原创 Spring事务传播机制

Spring在TransactionDefinition接口中规定了7种类型的事务传播行为,它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播,即协调已经有事务标识的方法之间的发生调用时的事务上下文的规则(是否要有独立的事务隔离级别和锁)概述当我们调用一个基于Spring的Service接口方法(如UserService#addUser())时,它将运行于Spring管理的事务 环...

2018-03-16 11:26:50 199

原创 Maven依赖中的Scope、传递与隔断

Scope的分类compile 默认的scope,表示 dependency 都可以在生命周期中使用。而且,这些dependencies 会传递到依赖的项目中。适用于所有阶段,会随着项目一起发布。即依赖的项目会参与到当前项目的编译、运行、测试以及打包发布,是一个比较强的依赖范围。test 表示dependency作用在测试时,不作用在运行时。 只在测试时使用,用于编译和运行测试代码。不...

2018-03-14 16:30:11 3379 1

原创 SLF4J处理日志

SLF4J是什么The Simple Logging Facade for Java,笼统的讲就是slf4j是一系列的日志接口。 The Simple Logging Facade for Java (SLF4J) serves as a simple facade or abstraction for various logging frameworks, such as java....

2018-03-13 11:03:55 3219

原创 日志输出

我们在开发过程中常用的日志输出方式如下:system.out.println();e.printStatckTrace();利用某个日志框架来输出日志今天讨论的就是这几种方式的不同。标准输出成员:方式1、2。第二种其实也是调用第一种方式实现目的地:java控制台。在生产环境中,根据操作系统、Web容器的不同,不一定会将控制台的log是否能被收录到日志文件里。所以是否可以...

2018-03-13 10:08:18 827

转载 Java 异常处理的误区和经验总结

本文着重介绍了 Java 异常选择和使用中的一些误区,希望各位读者能够熟练掌握异常处理的一些注意点和原则,注意总结和归纳。只有处理好了异常,才能提升开发人员的基本素养,提高系统的健壮性,提升用户体验,提高产品的价值。误区一、异常的选择 上图描述了异常的结构,其实我们都知道异常分检测异常和非检测异常,但是在实际中又混淆了这两种异常的应用。由于非检测异常使用方便,很多开发人员就认为检测异...

2018-03-13 10:01:40 199

原创 为什么要设计JAVA异常

从业这么多年,每当谈起异常,都是懵懵懂懂,只是依稀记得它是处理错误的,当程序出错,日志里会有异常日志,可以查看异常定位错误。但是最近突然发现一个问题,那就是处理错误不一定非的要用异常啊,比如说参数合法性检查等等,判断是否为空后直接返回校验信息等,通过程序的各种手段都可以处理,那么为什么要用异常呢?它到底能解决什么问题呢?我们平时写程序时,很多人都忽略了一个问题,那就是“程序是否正确的执行完了”...

2018-03-13 09:43:28 1340

转载 杂谈 GC

在Hotspot VM实现中,主要有两大类GCPartial GC:并不会堆整个GC堆进行收集 young gc:只收集 young gen 的GCold gc:只收集 old gen 的GC,只有CMS的 concurrent collectionmixed GC:收集整个 young gen 以及部分 old gen 的GC,只有G1Full GC:收集整个堆,包括young g...

2018-03-09 14:22:59 192

转载 阿里RocketMQ如何解决消息的顺序和重复两大硬伤

分布式消息系统作为实现分布式系统可扩展、可伸缩性的关键组件,需要具有高吞吐量、高可用等特点。而谈到消息系统的设计,就回避不了两个问题:消息的顺序问题消息的重复问题RocketMQ作为阿里开源的一款高性能、高吞吐量的消息中间件,它是怎样来解决这两个问题的?RocketMQ有哪些关键特性?其实现原理是怎样的?顺序消息消息有序指的是可以按照消息的发送顺序来消费。例如:一笔订单产生了...

2018-03-09 14:07:48 3019

转载 使用消息队列的 10 个理由

解耦在项目启动之初来预测将来项目会碰到什么需求,是极其困难的。消息队列在处理过程中间插入了一个隐含的、基于数据的接口层,两边的处理过程都要实现这一接口。这允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。冗余有时在处理数据的时候处理过程会失败。除非数据被持久化,否则将永远丢失。消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险。在被许...

2018-03-09 13:30:14 170

转载 Redis 应用场景及应用实例

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。MySQL+Memcached架构的问题实际mysql是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数...

2018-03-09 13:00:11 501

转载 Oracle与MySQl对比

并发性并发性是oltp数据库最重要的特性,但并发涉及到资源的获取、共享与锁定。mysql:以表级锁为主,对资源锁定的粒度很大,如果一个session对一个表加锁时间过长,会让其他session无法更新此表中的数据。 虽然InnoDB引擎的表可以用行级锁,但这个行级锁的机制依赖于表的索引,如果表没有索引,或者sql语句没有使用索引,那么仍然使用表级锁。oracle:使用行级锁,对资源锁...

2018-03-04 12:34:50 931

转载 MySql之INSERT INTO…ON DUPLICATE KEY UPDATE详解

在我们的日常开发中,经常会遇到过这样的情景:查看某条记录是否存在,不存在的话创建一条新记录,存在的话更新某些字段。 你会采用怎么样的处理方式呢?$result = mysql_query('select * from xxx where id = 1');$row = mysql_fetch_assoc($result);if($row){ mysql_query('upda...

2018-03-04 12:13:35 941

转载 Mysql并发时经典常见的死锁原因及解决方法

mysql都有什么锁MySQL有三种锁的级别:页级、表级、行级。表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般算法: next KeyLocks锁,同时锁住记录(...

2018-03-04 12:10:50 942

转载 Lambda 表达式有何用处?

作者:Sevenvidia 来源:https://www.zhihu.com/question/20125256/answer/324121308什么是Lambda?我们知道,对于一个Java变量,我们可以赋给其一个“值”。 如果你想把“一块代码”赋给一个Java变量,应该怎么做呢? 比如,我想把右边那块代码,赋给一个叫做aBlockOfCode的Java变量: ...

2018-03-02 10:12:37 602

空空如也

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

TA关注的人

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