自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (1)
  • 收藏
  • 关注

原创 Mac升级MacOs Mojave 后,IDEA xcrun: error: invalid active developer path

Mac升级MacOs Mojave 后,IDEA xcrun: error: invalid active developer path后,使用git总是报错。xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Devel...

2018-12-01 01:49:02 318

转载 【缓存】缓存架构分析

一、缓存穿透预防及优化 缓存穿透是指查询一个根本不存在的数据,缓存层和存储层都不会命中,但是出于容错的考虑,如果从存储层查不到数据则不写入缓存层,如图 11-3 所示整个过程分为如下 3 步:缓存层不命中 存储层不命中,所以不将空结果写回缓存 返回空结果     缓存穿透将导致不存在的数据每次请求都要到存储层去查询,失去了缓存保护后端存储的意义。              图-1...

2018-10-09 22:04:33 540

翻译 【JVM原理与优化】Java堆空间VS栈空间 - Java中的内存分配

近期在学习JVM,看到JVM堆内存和栈内存,但是对于堆内存和栈内存的解释不是很足,现在翻译一篇博客,加以理解。Java堆空间Java堆空间由Java运行时用于为Objects和JRE类分配内存。每当我们创建任何对象时,它总是在堆空间中创建。垃圾收集在堆内存上运行,以释放没有任何引用的对象使用的内存。在堆空间中创建的任何对象都具有全局访问权限,可以从应用程序的任何位置引用。Java堆...

2018-08-28 22:45:28 5454

转载 【JVM原理与优化】JVM内存设置多大合适?Xmx和Xmn如何设置?

原文地址:https://www.dutycode.com/jvm_xmx_xmn_xms_shezhi.html问题:新上线一个java服务,或者是RPC或者是WEB站点, 内存的设置该怎么设置呢?设置成多大比较合适,既不浪费内存,又不影响性能呢?分析:依据的原则是根据Java Performance里面的推荐公式来进行设置。  具体来讲:Java整个堆大小设...

2018-08-27 23:52:24 4558

转载 【通信网络】TCP 三次握手四次挥手详解

原文:http://blog.csdn.net/imilli/article/details/50620104TCP头部: 其中 ACK   SYN  序号  这三个部分在以下会用到,它们的介绍也在下面。 暂时需要的信息有:ACK : TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1SYN(SYNchronization) : 在连接建立...

2018-08-24 23:15:07 164

转载 【Java并发】ThreadLocal原理分析及理解

本文转发自技术世界,原文链接 http://www.jasongj.com/java/threadlocal/ThreadLocal解决什么问题由于 ThreadLocal 支持范型,如 ThreadLocal< StringBuilder >,为表述方便,后文用 变量 代表 ThreadLocal 本身,而用 实例 代表具体类型(如 StringBuidler )的实例。...

2018-08-23 01:16:11 232

原创 【Java锁】AQS原理解析

(一)AQS简介AQS(AbstractQueuedSynchronizer),AQS是JDK下提供的一套用于实现基于FIFO等待队列的阻塞锁和相关的同步器的一个同步框架。这个抽象类被设计为作为一些可用原子int值来表示状态的同步器的基类。如果你有看过类似 CountDownLatch 类的源码实现,会发现其内部有一个继承了 AbstractQueuedSynchronizer 的内部类 Sy...

2018-08-18 01:16:47 1469

原创 【Java并发】Semaphore原理解析

今天主要是写关于Semaphore的原理及解析(一)Semaphore的介绍信号量为多线程协作提供更强大的控制。从广义上来讲,是锁的增强,synchronized、ReentrantLock只能对一个线程加锁,而信号量可以对多个线程进行控制。(二)Semaphore的使用Semaphore 主要是acquire 申请信号量的许可,release释放许可供其他线程申请。如果acq...

2018-08-17 00:02:18 2577

原创 【Java锁】synchronized锁原理

最近在看《实战Java高并发程序设计》,看到synchronized锁,故整理下synchronized锁的锁原理及源码分析,若有错及建议,请指正。一、synchronized 的用法(1)修饰实例方法,作用于当前实例加锁,进入同步代码前要获得当前实例的锁(2)修饰静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁(3)修饰代码块,指定加锁对象,对给定对象加锁,进入同...

2018-08-08 23:52:27 558

原创 关于并发的基础概念

最近在阅读《实战Java高并发程序设计》,写一写关于并发的一些理解。(一)异步和同步       同步和异步通常用来形容一次方法的调用。      同步意味着方法一旦调用开始,调用者必须等到方法返回才能进行后续的行为。      异步调用意味的方法一旦调用就会立即返回,调用者可以立即进行后续的行为,异步调用表现的更像是一个消息传递。但是异步调用会在另一个线程中“真实”执行。如果异步...

2018-08-04 15:15:49 235

转载 【Http协议】Https简介

HTTP 的缺点到现在为止,我们已了解到 HTTP 具有相当优秀和方便的一面,然而 HTTP 并非只有好的一面,事物皆具两面性,它也是有不足之处的。HTTP 主要有这些不足,例举如下。1、通信使用明文( 不加密) , 内容可能会被窃听2、不验证通信方的身份, 因此有可能遭遇伪装2、不验证通信方的身份, 因此有可能遭遇伪装3、无法证明报文的完整性, 所以有可能已遭篡改这些问题不仅在...

2018-07-19 00:11:45 818

转载 【Http协议】Http协议简介

HTTP简介HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系...

2018-07-18 00:26:59 958

转载 【数据库】分布式事务

原文:http://www.infoq.com/cn/articles/solution-of-distributed-system-transaction-consistency讲到分布式事务,我们就想到ACID、CAP定律、BASE理论。一、ACID关系型数据库通常具有ACID特性,原子性(Atomicity)、一致性(Consistency)、隔离型(Isolation)、持久性(Durab...

2018-07-10 23:34:52 1760

转载 【数据库】水平分库分表的关键步骤以及可能遇到的问题

原址:作者:丁浪;http://www.infoq.com/cn/articles/key-steps-and-likely-problems-of-horizontal-split-table?utm_source=infoq&utm_campaign=user_page&utm_medium=link经常在面试的时候碰到一个问题,分库分表的时候如何保证全局分布式ID唯一性。在聊...

2018-07-10 00:16:39 1194

转载 【数据库】分库分表的难点

垂直分库分表能分担单库的承担能力,提高整个系统的承载处理能力、IO能力,有效缓解系统的性能瓶颈和压力,突破IO、连接数、硬件资源的瓶颈。但是,与此同时,分库分表也为分库查询等带来了相应的痛点。垂直分库带来的问题和解决思路:跨库join的问题在拆分之前,系统中很多列表和详情页所需的数据是可以通过sql join来完成的。而拆分后,数据库可能是分布式在不同实例和不同的主机上,join将变得非常麻烦。而...

2018-07-09 00:17:12 664

转载 【数据库】分库分表的几种方式及总结

分库分表的几种常见形式公司业务的发展过程中,提高系统的处理承载能力,在数据库端通常都会选择分库分表。今天对数据库的分库分表进行了一次学习与总结。1、垂直分表垂直分表在日常开发和设计中比较常见,通俗的说法叫做“大表拆小表”,拆分是基于关系型数据库中的“列”(字段)进行的。通常情况,某个表中的字段比较多,可以新建立一张“扩展表”,将不经常使用或者长度较大的字段拆分出去放到“扩展表”中,如下图所示:在字...

2018-07-08 23:41:36 12696

原创 【生产问题】线上CPU使用率过高问题排查

1、问题描述    最近在生产上遇到一个HashMap问题,高并发下HashMap扩容导致链表成环,导致CPU使用率过高。2、问题排查       CPU利用率过高一般是因为出现了出现了死循环,导致部分线程一直运行。占用cpu时间。使用jstack工具dump出问题的那台服务器的栈信息。死循环的话,首先查找RUNNABLE的线程,找到问题代码如下:HashMap在高并发的环境下会出现死循环,主要是...

2018-07-04 00:54:00 1274

转载 Synchronized源码分析

java内部锁synchronized的出现,为多线程的并发执行提供了一个稳定的环境,有效的防止多个线程同时执行同一个逻辑,其实这篇文章应该写在深入分析Object.wait/notify实现机制之前,本文不会讲如何使用synchronized,以HotSpot1.7的虚拟机为例,对synchronized的实现进行深入分析。synchronized的HotSpot实现依赖于对象头的Mark Wo...

2018-07-02 19:54:47 620

转载 【缓存】缓存中常见的4种问题分析以及解决方案

原文: https://blog.csdn.net/zzh920625/article/details/78173099

2018-06-30 10:15:44 913 1

转载 memcached redis 对比分析

作者:安静1337链接:https://www.jianshu.com/p/e94fa7340923來源:简书简介memcached和redis都属于内存(memory)键-值(key-value)数据库,在设计和思想上有许多相同之处,功能和应用在很多场合(如分布式缓存服务)也相似。它们都从属于数据库解决方案中的nosql家族,由于两者都将数据存储在内存中,自然而然,它们都是非常理想的缓存实现方案...

2018-06-14 00:39:44 166

转载 缓存更新的套路

 原文地址:https://coolshell.cn/articles/17416.html 看到好些人在写更新缓存数据代码时,先删除缓存,然后再更新数据库,而后续的操作会把数据再装载的缓存中。然而,这个是逻辑是错误的。试想,两个并发操作,一个是更新操作,另一个是查询操作,更新操作删除缓存后,查询操作没有命中缓存,先把老数据读出来后放到缓存中,然后更新操作更新了数据库。于是,在缓存中的数据还是老的...

2018-06-13 20:55:49 120

ZigBee协调器程序

ZigBee协调器的开发应用

2015-08-26

空空如也

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

TA关注的人

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