自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(314)
  • 资源 (24)
  • 收藏
  • 关注

原创 他山之石

http://www.nowamagic.net/librarys/veda/books/2/http://stormzhang.com/devtools/2014/11/25/android-studio-tutorial1/

2015-06-18 13:45:25 951

转载 【转】sql常见50题

create database execise_new;use execise_new;-- 建表-- 学生表create table Student( s_id varchar(20), s_name varchar(20) not null default '', s_birth varchar(20) not null default '', s_sex...

2019-03-10 21:53:12 390

转载 分布式文件系统下的本地缓存

在分布式文件系统中,为了提高系统的性能,常常会引入不同类型的缓存存储系统(算法优化所带来的的效果可能远远不如缓存带来的优化效果)。在软件中缓存存储系统一般可分为了两类:一、分布式缓存,例如:Memcached、Redis、淘宝的Tair等,二、本地缓存,例如:Facebook的flushcache等,其中本地缓存又可以分为两种:本地磁盘缓存(现在一般都采用读写性能比较优异的SSD来做存储)和本地内

2017-04-26 23:32:47 1024

转载 关于java中的本地缓存-总结概

为什么要有本地缓存?在系统中,有些数据,数据量小,但是访问十分频繁(例如国家标准行政区域数据),针对这种场景,需要将数据搞到应用的本地缓存中,以提升系统的访问效率,减少无谓的数据库访问(数据库访问占用数据库连接,同时网络消耗比较大),但是有一点需要注意,就是缓存的占用空间以及缓存的失效策略。 为什么是本地缓存,而不是分布式的集群缓存?         目前的数据,大

2017-04-25 23:03:57 1993

转载 ByteBuffer常用方法详解

缓冲区(Buffer)缓冲区(Buffer)就是在内存中预留指定大小的存储空间用来对输入/输出(I/O)的数据作临时存储,这部分预留的内存空间就叫做缓冲区:使用缓冲区有这么两个好处:1、减少实际的物理读写次数2、缓冲区在创建时就被分配内存,这块内存区域一直被重用,可以减少动态分配和回收内存的次数举个简单的例子,比如A地有1w块砖要搬到B地由于

2017-04-23 21:56:25 2539

转载 直接内存和堆内存的性能比较

背景知识在JDK 1.4中新加入了NIO(New Input/Output)类,引入了一种基于通道(Channel)与缓冲区(Buffer)的I/O方式,它可以使用Native函数库直接分配堆外内存,然后通过一个存储在Java堆里面的DirectByteBuffer对象作为这块内存的引用进行操作。这样能在一些场景中显著提高性能,因为避免了在Java堆和Native堆中来回复制数据。 显

2017-04-23 21:33:12 703

转载 使用sun.misc.Cleaner或者PhantomReference实现堆外内存的自动释放

Java NIO包是通过sun.misc.Cleaner和PhantomReference来实现堆外内存的自动释放的。现在我们来学习下Cleaner和PhantomReference的使用,自己封装实现堆外内存的自动释放。sun.misc.Cleaner是JDK内部提供的用来释放非堆内存资源的API。JVM只会帮我们自动释放堆内存资源,但是它提供了回调机制,通过这个类能方便的释放系统的

2017-04-23 16:16:01 585

转载 Netty之Java堆外内存扫盲贴

Java的堆外内存本来是高贵而神秘的东西,只在一些缓存方案的收费企业版里出现。但自从用了Netty,就变成了天天打交道的事情,毕竟堆外内存能减少IO时的内存复制,不需要堆内存Buffer拷贝一份到直接内存中,然后才写入Socket中;而且也没了烦人的GC。好在,Netty所用的堆外内存只是Java NIO的 DirectByteBuffer类,通读一次很快。还有一些sun.misc.*的类

2017-04-23 15:17:25 2071

转载 java堆外内存

JVM可以使用的内存分外2种:堆内存和堆外内存.    堆内存完全由JVM负责分配和释放,如果程序没有缺陷代码导致内存泄露,那么就不会遇到java.lang.OutOfMemoryError这个错误。    使用堆外内存,就是为了能直接分配和释放内存,提高效率。JDK5.0之后,代码中能直接操作本地内存的方式有2种:使用未公开的Unsafe和NIO包下ByteBuffer。

2017-04-23 15:12:07 799

转载 静态成员的垃圾回收

今天在网上看到一个讨论命题:当一个单例的对象长久不用时,会不会被jvm的垃圾收集机制回收。原文链接下面就对Java中的垃圾回收和静态类型做一些总结:一、Java中的内存分配1、stack(栈),用于装变量和引用类型。如基本类型和引用类型的引用变量。 2、heap(堆) ,用于装new出来的值。 3、用来装静态变量的区域。如static变量,字符串常量。 4、

2017-04-20 10:00:41 2228

原创 ubuntu安装nodejs

~# wget https://nodejs.org/dist/v4.1.1/node-v4.1.1-linux-x64.tar.gz~# tar -vxf node-v4.1.1-linux-x64.tar.gz~# mv node-v4.1.1-linux-x64 nodejs~# vi /etc/profile.d/node.shexport NODE_HOME=~/node

2016-12-06 19:05:26 413

转载 聊聊分布式事务

事务就是一个会话过程中,对上下文的影响是一致的,要么所有的更改都做了,要么所有的更变都撤销掉。就要么生,要么死。没有半死不死的中间不可预期状态。参考下薛定谔的猫。事务是为了保障业务数据的完整性和准确性的。分布式事务,常见的两个处理办法就是两段式提交和补偿。两段式提交典型的就是XA,有个事务协调器,告诉大家,来都准备好提交,大家回复,都准备好了,然后协调器告诉

2016-09-07 14:35:31 473

转载 关于分布式事务、两阶段提交协议、三阶提交协议

随着大型网站的各种高并发访问、海量数据处理等场景越来越多,如何实现网站的高可用、易伸缩、可扩展、安全等目标就显得越来越重要。为了解决这样一系列问题,大型网站的架构也在不断发展。提高大型网站的高可用架构,不得不提的就是分布式。在《分布式系统的一致性探讨》一文中主要介绍了分布式系统中存在的一致性问题。本文将简单介绍如何有效的解决分布式的一致性问题,其中包括什么是分布式事务,二阶段提交和三阶段提

2016-09-06 20:52:59 920

转载 关于分布式系统的思考(一)

【摘要】本文谈及一些分布式系统的理论和思想,包括CAP、BASE、NWR等。并简单分析一些主流数据库分布式方案的利弊,以便我们在开发时更深入全面地进行思考、选择和设计。以下为正文:在讨论常见架构前,先简单了解下CAP理论:CAP是Consistency、Availablity和Partition-tolerance的缩写。分别指:一致性(Consistency):每次读操作

2016-08-30 14:02:09 547

转载 数据库的主从架构

这段时间,一直在总结电商系统的相关基础技术和架构,写了很多东西。但是还是发现一个很重要,很基础的方面没有讲到,那就是数据库读写分离的主从架构。可能发展到大型成熟的公司之后,主从架构已经落伍了,取而代之的是更加复杂的数据库集群。但是作为一个小型电商公司,数据库的主从架构应该是最基础的。任何大型的系统架构,都是不断演进的。主从架构便是数据库架构中,最基础的架构。所以研究完主从架构,也就能看懂更加复杂的

2016-08-28 16:53:30 6437

转载 Mysql数据库事务的隔离级别和锁的实现原理分析

mysql数据库的事务隔离级别相信很多同学都知道.大家有没有想过它是如何实现的呢?带着这些问题我翻阅了相关数据库的书籍和资料,把我的理解写下来.一:事务隔离级别mysql数据库的隔离界别如下:1, READ UNCOMMITTED(未提交读)事务中的修改,即使没有提交,对其它事务也是可见的.  脏读(Dirty Read).2, READ

2016-08-18 15:42:02 765

转载 分布式多副本一致性问题 [推荐]

1. 强一致性:所有的副本更新成功才返回。                  如上图C表示Client,【P、S1、S2】构成一个同步组,P表示Primary node,S1,S2是两个secondary node,强同步模型的工作流程为C向P写数据,P向S1,S2转发,只有3个都写成功,才向C返回成功,否则写失败。这种模型对于append操作很容易实现,如果副本没有全部更新成功,向C

2016-08-13 16:58:26 2451

原创 一致性模型

强一致性当更新操作完成之后,任何多个后续进程或者线程的访问都会返回最新的更新过的值。这种是对用户最友好的,就是用户上一次写什么,下一次就保证能读到什么。但是这种实现对性能影响较大。弱一致性系统并不保证续进程或者线程的访问都会返回最新的更新过的值。系统在数据写入成功之后,不承诺立即可以读到最新写入的值,也不会具体的承诺多久之后可以读到。但会尽可能保证在某个时间级别(比如秒级别

2016-08-13 16:50:36 1366

转载 关于同步异步非阻塞阻塞[推荐]

这里面有篇文章非常牛逼,说的很清楚(注意这句话System I/O can be blocking, or non-blocking synchronous, or non-blocking asynchronous)http://www.artima.com/articles/io_design_patternsP.html(看这一篇足够了)包括下面这篇http://ww

2016-08-12 14:35:15 373

转载 HTTP响应报文与工作原理详解

超文本传输协议(Hypertext Transfer Protocol,简称HTTP)是应用层协议。HTTP 是一种请求/响应式的协议,即一个客户端与服务器建立连接后,向服务器发送一个请求;服务器接到请求后,给予相应的响应信息。  HTTP 请求报文  HTTP 请求报文由请求行、请求头部、空行 和 请求包体 4 个部分组成,如下图所示:  下面对请求报文格式进行简

2016-08-04 10:38:22 1377

转载 四层负载均衡——LVS

LVS 参考:http://zh.linuxvirtualserver.org/几个术语:Director:也可以称为调度器,LVS前端设备;realserver:也称为真实内部服务器,是真正在提供服务的;VIP:对外公布的IP,即客户请求进来的IP地址;DIP:调度器和realserver之间通信的地址;LVS的三种工作方式

2016-08-03 15:09:05 1451

转载 四层和七层负载均衡的区别

(一)  简单理解四层和七层负载均衡:  ① 所谓四层就是基于IP+端口的负载均衡;七层就是基于URL等应用层信息的负载均衡;同理,还有基于MAC地址的二层负载均衡和基于IP地址的三层负载均衡。 换句换说,二层负载均衡会通过一个虚拟MAC地址接收请求,然后再分配到真实的MAC地址;三层负载均衡会通过一个虚拟IP地址接收请求,然后再分配到真实的IP地址;四层通过虚拟IP+端口接收请求

2016-08-03 14:13:27 892

转载 关于分布式事务、两阶段提交、一阶段提交、Best Efforts 1PC模式和事务补偿机制的研究

本文原文连接: http://blog.csdn.net/bluishglc/article/details/7612811 ,转载请注明出处!1.XAXA是由X/Open组织提出的分布式事务的规范。XA规范主要定义了(全局)事务管理器(Transaction Manager)和(局部)资源管理器(Resource Manager)之间的接口。XA接口是双向

2016-08-02 21:02:31 880

转载 SSL卸载技术对于HTTPS应用的优化与思考

迅猛发展的互联网为我们提供了丰富的信息资源,在带来便利的同时也影响着人们工作和生活方式。而让我们无法忽视的是,在开放的互联网所带来的繁荣背后,同时也潜藏着安全方面的隐患。随着人们对网络的依赖愈渐加深,各种加密技术应运而生,用以保障网络信息的安全性。SSL(Secure Sockets Layer)协议,便是在互联网上广泛应用于交易安全性保障的一种主导技术。  SSL属于加密通讯协议,工作在

2016-07-31 15:30:52 10031

转载 G1垃圾收集器入门

G1垃圾收集器入门说明concurrent: 并发, 多个线程协同做同一件事情(有状态)parallel: 并行, 多个线程各做各的事情(互相间无共享状态)参考: What’s the difference between concurrency and parallelism概述目的本文介绍如何使用G1,及在 Hotspot JVM 中怎么

2016-07-28 22:48:22 836

转载 Sun JVM 年轻代和老年代垃圾回收都需要暂停JVM

The Young Generation is where all new objects are allocated and aged. When the young generation fills up, this causes a minor garbage collection. Minor collections can be optimized assuming a high obj

2016-07-28 22:20:05 1210

转载 Concurrent and Parallel Programming

What's the difference between concurrency and parallelism?Explain it to a five year old.Concurrent = Two queues and one coffee machine.Parallel = Two queues and two coffee machines.

2016-07-28 22:12:56 595

转载 高并发网站更新数据库数据比较高效的方式

看下高并发网站更新数据的方式是如何做的?如下是收集cnblogs博主的文章。很多Web系统的瓶颈在网络IO,所以很多系统都采用多Web服务器负载均衡,双DB做双机热备(其实就是只有一个DB,两台只有一台真正工作,死掉一台另一台顶上)的方式部署,在这个时候很多原本不是问题的系统也会产生很多的问题。这里我们假设有表Product,其定义如下:列明类型

2016-07-12 14:20:50 3875

转载 java消息机制

1、问: 什么是 Java 消息服务?答: Java 消息服务(Java Message Service,JMS) API 是一个用于访问企业消息传递系统的 API。是 Java 2 Platform, Enterprise(J2EE)的一部分。2、目前流行的消息传送产品有哪些?答:目前流行的有ActiveMQ、IBM WebSphere MQ、SonicMQ等3、什么时候

2016-07-10 17:05:48 622

转载 synchronize深入理解

synchronized 关键字,代表这个方法加锁,相当于不管哪一个线程A每次运行到这个方法时,都要检查有没有其它正在用这个方法的线程B(或者C D等),有的话要等正在使用这个方法的线程B(或者C D)运行完这个方法后再运行此线程A,没有的话,直接运行它包括两种用法:synchronized 方法和 synchronized 块。1. synchronized 方法:通过在方法声明中加

2016-07-05 21:57:38 3393

转载 java可重入锁

目录什么是可重入锁为什么要可重入如何实现可重入锁有不可重入锁吗demo代码展示参考文章1 . 什么是可重入锁锁的概念就不用多解释了,当某个线程A已经持有了一个锁,当线程B尝试进入被这个锁保护的代码段的时候.就会被阻塞.而锁的操作粒度是”线程”,而不是调用(至于为什么要这样,下面解释).同一个线程再次进入同步代码的时候.可以使用自己已经获取到的锁,这就是可重入锁jav

2016-07-04 11:03:43 1612

转载 digester使用

1.   概述解析XML一直都是编写程序的头疼问题,不是因为它难,而是因为各种地方需要对解析XML的结果要求不同,XML解析和业务逻辑融合在一起,所以每次解析时都感觉是从头开始,没有一套好用的类库。 在大多数应用系统中,都需要保存一个或多个配置信息,这些信息可以保存在数据库中,也可以保存在文件中,保存XML文件中是一个不错的选择,如下: xml

2016-06-25 20:06:36 797

原创 正则表达式学习

正则表达式1.判断ip地址,有点小缺陷,不影响:(2[5][0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})

2016-06-24 20:12:06 316

转载 Shell入门

从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在Linux GUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用。深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修 功课之一。Linux的Shell

2016-06-24 11:55:57 326

转载 HTTP 代理原理及实现(二)

在上篇《HTTP 代理原理及实现(一)》里,我介绍了 HTTP 代理的两种形式,并用 Node.js 实现了一个可用的普通 / 隧道代理。普通代理可以用来承载 HTTP 流量;隧道代理可以用来承载任何 TCP 流量,包括 HTTP 和 HTTPS。今天这篇文章介绍剩余部分:如何将浏览器与代理之间的流量传输升级为 HTTPS。上篇文章中实现的代理,是一个标准的 HTTP 服务,针对浏览器

2016-06-20 13:30:26 604

转载 HTTP 代理原理及实现(一)

Web 代理是一种存在于网络中间的实体,提供各式各样的功能。现代网络系统中,Web 代理无处不在。我之前有关 HTTP 的博文中,多次提到了代理对 HTTP 请求及响应的影响。今天这篇文章,我打算谈谈 HTTP 代理本身的一些原理,以及如何用 Node.js 快速实现代理。HTTP 代理存在两种形式,分别简单介绍如下:第一种是 RFC 7230 - HTTP/1.1: Messag

2016-06-20 13:29:34 4953 1

转载 淘宝开源Key/Value结构数据存储系统Tair技术剖析

作者 余刚 发布于 2010年9月8日Tair是由淘宝网自主开发的Key/Value结构数据存储系统,在淘宝网有着大规模的应用。您在登录淘宝、查看商品详情页面或者在淘江湖和好友“捣浆糊”的时候,都在直接或间接地和Tair交互。Tair于2010年6月30号在淘宝开源平台上正式对外开源,本文较详细地介绍了Tair提供的功能及其实现的细节,希望对大家进一步了解Tai

2016-06-19 21:34:21 452

转载 简析TCP的三次握手与四次分手

TCP是什么?具体的关于TCP是什么,我不打算详细的说了;当你看到这篇文章时,我想你也知道TCP的概念了,想要更深入的了解TCP的工作,我们就继续。它只是一个超级麻烦的协议,而它又是互联网的基础,也是每个程序员必备的基本功。首先来看看OSI的七层模型:我们需要知道TCP工作在网络OSI的七层模型中的第四层——Transport层,IP在第三层——Network层,ARP在第二层——Data

2016-06-19 20:41:17 851

转载 wireshark抓包分析

wireshark介绍wireshark的官方下载网站: http://www.wireshark.org/wireshark是非常流行的网络封包分析软件,功能十分强大。可以截取各种网络封包,显示网络封包的详细信息。wireshark是开源软件,可以放心使用。 可以运行在Windows和Mac OS上。 使用wireshark的人必须了解网络协议,否则就看不

2016-06-19 20:04:51 761

转载 Jetty 9嵌入式开发

官方网址:http://www.eclipse.org/jetty/下载地址:http://download.eclipse.org/jetty/stable-9/dist/文档网址:http://www.eclipse.org/jetty/documentation/当前Jetty网址上推荐使用的稳定版本:Jetty9.0。介绍       Jet

2016-06-19 19:44:07 1944

SSM整合demo maven工程

Spring Mybatis Spring-MVC整合demo

2016-05-13

SS整合工程

Spring Mybatis Maven整合demo

2016-05-13

Spring Mybatis整合的小demo

Spring Mybatis整合的小demo,spring mvc还没有加入

2016-05-13

Spring Mybatis整合

Spring Mybatis整合的小demo

2016-05-12

AOP 动态代理demo

AOP 动态代理demo,AOP 动态代理demo

2016-03-30

Mybatis快速入门.pdf

Mybatis快速入门

2016-03-25

Mybatis用户指南

Mybatis用户指南

2016-03-25

PieTTy WinScp

PieTTy WinScp,linux远程操作必备,绿色版,免安装

2016-03-18

struts2.3.16.1依赖包

struts2.3.16.1依赖包

2015-11-27

lucene in action源码

lucene in action的源码,适合学习,适合初学者使用

2015-11-27

eclipse sublime主题插件

eclipse的黑色主题的插件,用起来比较保护眼睛

2015-11-26

spring 3.2.12源码

spring源码,3.2.12版本,适合需要进一步学习spring的人使用

2015-11-25

Mahout 单机demo

mahout 推荐算法,csv格式为user,item,score对应的是用户,项目,评分

2015-11-23

网络爬虫的简单demo

简单的网络爬虫,适合于特定的静态网站,一般不适合于动态网站

2015-10-12

自己动手写网络爬虫源码part2

自己动手写网络爬虫源码part2,跟part1一起解压

2015-09-28

自己动手写网络爬虫源码part1

自己动手写网络爬虫源码part1,大小限制,另一部分在另一个页面里,一起解压

2015-09-28

Java RMI demo多对象

RMI 的demo,多个对象。

2015-09-26

Java RMI demo

RMI demo,别人的代码整理的,先运行server再运行client

2015-09-26

Google MapReduce论文中文版

Google MapReduce论文中文版

2015-08-17

nodejs 操作mongodb实现好友功能

nodejs 操作mongodb实现好友功能,封装成了一个库,方便使用

2015-07-10

nodejs 操作mongodb,插查删改

nodejs操作mongdb的一个类文件,直接调用即可,没有做过大并发检验,只在本机上做了测试

2015-07-10

安卓录音机

触摸录音,录音时根据声音大小以dialog形式显示强弱

2015-06-25

2048 c语言

c写的2048

2015-06-17

空空如也

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

TA关注的人

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