自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Leo's Blog

Talk is cheap, show me your code. https://github.com/leoChaoGlut

  • 博客(354)
  • 资源 (11)
  • 问答 (1)
  • 收藏
  • 关注

转载 IntellJ Idea 特性和与Eclipse的区别

Migrating From Eclipse to IntelliJ IDEAOverviewSwitching from Eclipse to IntelliJ IDEA, especially if you've been using Eclipse for a long time, requires understanding some fundamental

2016-07-20 16:46:58 3400

原创 通过流量复制解决某个服务节点无响应的问题

说明:这里仅说明单台服务器的情况.Docker Container 分别映射到不同的端口. Docker Container里通过tomcat对外提供服务.1.如图,如果反向代理服务器发来一个请求,请求到达Nginx后,假设是匹配到Service A的Upstream,这时会根据nginx.conf里对应的分发算法,分配到端口10100或10101.2.假设10100对应的docker c

2016-07-19 22:19:41 1324

转载 新浪公有云Docker编排实践

【编者的话】本文是@Container容器技术大会·北京站上新浪带来的分享——新浪公有云Docker编排实践。文章围绕微博DCP系统——基于Docker容器混合云架构的应用实践,介绍了新浪在Docker编排上的经验以及遇到的问题。大家好,本次分享的主题是微博DCP系统——基于Docker容器混合云架构的应用实践。我这次分享的主题更偏向于实践应用,比如在大峰值流量的情况下,对于私有云

2016-07-14 10:39:54 3159

转载 微服务的团队应对之道

微服务的团队应对之道2016年7月7日 / By TWInsights这两年,微服务架构火了。在国内,从消费级互联网应用,到企业级应用;从金融领域,到电信领域;从新开发系统到已经开发了十几二十年的遗留系统;一夜之间,好像所有的团队都在谈微服务。然而,我们为什么采用微服务呢?“让我们的系统尽可能快地响应变化“ – Rebecca Parson是的,让我们的

2016-07-14 10:36:05 2801

转载 深入分析Volatile的实现原理

引言在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是 轻量级的synchronized ,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。它在某些情况下比synchronized的开销更小,本文将深入分析在硬件层面上Inter处理器是如何实现Volatile的

2016-07-11 10:27:18 4455

转载 布隆过滤器原理和例子

布隆过滤器用于字符串去重复,比如网络爬虫抓取时URL去重、邮件提供商反垃圾黑名单Email地址去重。等等。用哈希表也可以用于元素去重,但是占用空间比较大,而且空间使用率只有50%。  布隆过滤器只占哈希表的1/8或1/4的空间复杂度,就能解决同样的问题,但是有一定的误判,而且不能删除已有元素。元素越多,误报率越大,但是不会漏报。对于还需要删除的布隆过滤器,还有Counter Bloom Fil

2016-07-10 15:48:43 2282

转载 我的Java后端书架 (2016年暮春3.0版)

书架主要针对Java后端开发。3.0版把一些后来买的、看的书添补进来,又或删掉或降级一些后来没有再翻开过的书。更偏爱那些能用简短流畅的话,把少壮不努力的程序员所需的基础补回来的薄书,而有些教课书可能很著名,但干涩枯燥,喋喋不休的把你带回到大学课堂上昏昏欲睡,不录。 1. 操作系统与网络的书《Linux内核设计与实现 第3版》Robert Love用最薄的篇幅

2016-07-10 10:55:33 1626

原创 2016年书单

1.JavaEE开发的颠覆者: Spring Boot实战2.微服务架构与实践3.分布式服务框架原理与实践

2016-07-08 12:27:16 1036

转载 基于redis分布式缓存实现(新浪微博案例)

第一:Redis 是什么?Redis是基于内存、可持久化的日志型、Key-Value数据库 高性能存储系统,并提供多种语言的API.第二:出现背景数据结构(Data Structure)需求越来越多, 但memcache中没有, 影响开发效率性能需求, 随着读操作的量的上升需要解决,经历的过程有: 数据库读写分离(M/S)–>数据库使用多个Slave–>增加Cache

2016-07-07 19:21:17 1729

转载 Java并发编程:volatile关键字解析(推荐!)

volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。  volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们

2016-07-06 17:49:12 1192

转载 Java 理论与实践: 正确使用 Volatile 变量

Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分。本文介绍了几种有效使用 volatile 变量的模式,并强调了几种不适合使用 volatile 变量的情形。锁提供了两种

2016-07-06 14:55:49 835

转载 JVM参数配置大全

前阵子遇到几个面试题都是关于对Java内存控制的,因此从网上找到这篇文章,希望自己对Java的内存分配有重新的认识/usr/local/jdk/bin/java -Dresin.home=/usr/local/resin -server -Xms1800M -Xmx1800M -Xmn300M -Xss512K -XX:PermSize=300M -XX:MaxPermSize=300M

2016-07-05 18:29:15 906

转载 B-tree/B+tree/B*tree

B~树               1.前言:动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree),红黑树 (Red-Black Tree ),B-tree/B+-tree/ B*-tree (B~Tree)。前三者是典型的二叉查找树结构,其查找的时间复杂度O(log2N)与树的深度相关,那么

2016-07-05 14:14:13 879

转载 Java Classloader机制解析

做Java开发,对于ClassLoader的机制是必须要熟悉的基础知识,本文针对Java ClassLoader的机制做一个简要的总结。因为不同的JVM的实现不同,本文所描述的内容均只限于Hotspot Jvm.本文将会从JDK默认的提供的ClassLoader,双亲委托模型,如何自定义ClassLoader以及Java中打破双亲委托机制的场景四个方面入手去讨论和总结一下。JDK默认C

2016-07-04 21:55:39 844

原创 LeetCode:Max Points on a Line

Q:Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.思路:n个点,最多形成 (n-1)! 条线段,利用2个点p[i],p[j](j=i+1)可以得到它们所有的所属直线的斜率.以该斜率为key, Set为value,set中存放的是构成

2016-07-01 20:31:15 1030

原创 LeetCode:Group Anagrams

Q:Given an array of strings, group anagrams together.For example, given: ["eat", "tea", "tan", "ate", "nat", "bat"], Return:[ ["ate", "eat","tea"], ["nat","tan"], ["bat"]]

2016-06-30 21:55:46 1010

原创 LeetCode:Top K Frequent Elements

Q:Given a non-empty array of integers, return the k most frequent elements.For example,Given [1,1,1,2,2,3] and k = 2, return [1,2].Note: You may assume k is always valid, 1 ≤ k

2016-06-30 21:11:10 1045

原创 LeetCode: Single Number

Q:Given an array of integers, every element appears twice except for one. Find that single one.思路:一个整数异或它本身,结果为0. 所以只要遍历一次数组即可得到只出现一次的数字.代码:public int singleNumber(int[] nums) { int le

2016-06-30 21:03:21 1044

原创 Docker+ActiveMQ+MQTT例子

1.启动容器:docker run -p 1883:1883 -p 8161:8161 -d leo/activemq如果没有Docker,直接启动ActiveMQ也可以. ActiveMQ启动好后,我们只需要写好publisher和subscriber就好了.2.需要添加2个maven依赖: org.apache.activemq activemq-all

2016-06-30 15:11:02 5404

原创 自制的Docker镜像

以下镜像都基于时速云Ubuntu,支持SSH.1.tomcat7+jdk1.7 : http://pan.baidu.com/s/1b53LnS2.jdk1.7 : http://pan.baidu.com/s/1cDl8CI3.activeMQ+jdk1.7 : http://pan.baidu.com/s/1qY29D3e4.ubuntu14.04 : http://pan.b

2016-06-30 10:42:37 1307 1

转载 JMS中的DeliveryMode和DurableSubscriber

DeliveryModeDeliveryMode.PERSISTENT   是指服务器中  message 在queue里面只要没被消费掉 或者 在topic上仍然有至少一个 DurableSubscriber 没有收到 那么message就是仍然存在的,重启仍然存在。producer发送消息时 消息的DeliveryMode属性默认的是NON_PERSISTENT的,PERS

2016-06-29 11:38:27 1199

转载 缓存穿透、缓存并发、缓存失效之思路变迁

我们在用缓存的时候,不管是Redis或者Memcached,基本上会通用遇到以下三个问题:缓存穿透缓存并发缓存失效一、缓存穿透注:上面三个图会有什么问题呢?我们在项目中使用缓存通常都是先检查缓存中是否存在,如果存在直接返回缓存内容,如果不存在就直接查询数据库然后再缓存查询结果返回。这个时候如果我们查询的某一个数据在缓存中一直不存在,就会造

2016-06-29 09:51:32 1174

转载 Java细粒度锁实现的3种方式

最近在工作上碰见了一些高并发的场景需要加锁来保证业务逻辑的正确性,并且要求加锁后性能不能受到太大的影响。初步的想法是通过数据的时间戳,id等关键字来加锁,从而保证不同类型数据处理的并发性。而java自身api提供的锁粒度太大,很难同时满足这些需求,于是自己动手写了几个简单的扩展…1. 分段锁借鉴concurrentHashMap的分段思想,先生成一定数量的锁,具体使用的时候

2016-06-28 14:06:14 1663

转载 高性能服务器架构思路

原文:http://www.codeceo.com/article/high-performance-server-artch.html在服务器端程序开发领域,性能问题一直是备受关注的重点。业界有大量的框架、组件、类库都是以性能为卖点而广为人知。然而,服务器端程序在性能问题上应该有何种基本思路,这个却很少被这些项目的文档提及。本文正式希望介绍服务器端解决性能问题的基本策略和经典

2016-06-28 09:50:05 1356

转载 Java获取本机公网ip

import java.net.InetAddress;import java.net.NetworkInterface;import java.net.SocketException;import java.util.Enumeration;/** * * @anthor leo * @date 2016年6月27日下午12:40:14 * @description * *

2016-06-27 14:07:47 10809

原创 使用DockerFile创建ubuntu下的tomcat镜像

FROM ubuntuMAINTAINER linxADD jdk-8u77-linux-x64.gz /usr/localADD apache-tomcat-8.0.35.tar.gz /usr/localENV JAVA_HOME /usr/local/jdk1.8.0_77ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/to

2016-06-21 16:16:35 2437

转载 Tomcat Context reloadabled 与 OutOfMemory(PermSpace)

我们知道,Sun JVM分代垃圾回收器把堆空间分成3块:Young Gen:年轻代,包括1个Eden区和2个Suvivor区,新创建的对象(大部分为短周期的对象)将进入这个区,虚拟机会频繁地对这个区进行垃圾回收。Old Gen:年老代,当对象在Young Gen呆地足够久(经过几次的垃圾回收仍然存在)或Young Gen空间不足时,对象将进入Old Gen,由于一般是生命周期比较长的对象,

2016-06-18 15:24:01 1333

原创 Nginx查错的方法

今天拿nginx来做静态页面的服务器.因为tomcat实在是麻烦,tomcat还会缓存静态资源,导致需要清理缓存才能看到最新的效果.(也许tomcat有缓存的策略,但没去详细找)Nginx的logs目录下有access.log和error.log,通过观察error.log,可以发现请求访问的出错原因和路径.然后根据出错的信息,再去一步一步配置nginx.conf,即可解决问题.

2016-06-18 12:06:59 1823

转载 openfire servlet插件开发

项目中需要 openfire 对外提供一个web接口,接受客户端发送过来的http 请求,按照参数处理后返回相应的response。于是考虑使用servlet插件。       实现方法:1.在src/plugins目录下建立如下结构的目录。                            2.在Java build path 中source 页添

2016-06-12 11:52:24 1490

转载 深入浅出Docker(二):Docker命令行探秘

1. Docker命令行Docker官方为了让用户快速了解Docker,提供了一个交互式教程,旨在帮助用户掌握Docker命令行的使用方法。但是由于Docker技术的快速发展,此交互式教程已经无法满足Docker用户的实际使用需求,所以让我们一起开始一次真正的命令行学习之旅。首先,Docker的命令清单可以通过运行docker ,或者 docker help 命令得到:$ su

2016-05-25 09:02:39 3007

转载 mybatis连接mysql数据库插入中文乱码

对于MySQL数据库的乱码问题,有两中情况:1. mysql数据库编码问题(建库时设定)。2. 连接mysql数据库的url编码设置问题。对于第一个问题,目前个人发现只能通过重新建库解决,建库的时候,选择UTF-8字符集。我试过修改现有数据库字符集为UFT-8,但是根本不起作用,插入的中文仍然乱码(中文显示成:???)。重建库时选择字符集为UTF-8之后

2016-05-22 11:05:01 1699

原创 Java部分流关闭时的源码操作

昨天在封装一FileReader工具类的时候,写了这样一段代码:public static String read(InputStream is, boolean inputStreamNeedToBeClosed) { InputStreamReader isr = null; BufferedReader br = null; try { isr = new Inpu

2016-05-22 09:49:06 1945

转载 Linux下解压,压缩JAR包的方法

把当前目录下的所有文件打包成game.warjar -cvfM0 game.war ./-c   创建war包-v   显示过程信息-f    -M-0   这个是阿拉伯数字,只打包不压缩的意思解压game.warjar -xvf game.war解压到当前目录,注意,不会创建一个game文件夹,而是将所有jar包的内容全部解压到当前文件夹.

2016-05-20 12:25:33 100904 2

转载 XMPP 协议工作流程详解

原文: http://ceit.uq.edu.au/content/how-xmpp-works-step-step作者: Yilun Fan, 日期 2011-01-05 13:09XMPP 核心协议 http://xmpp.org/rfcs/rfc3920.htmlXMPP 要点.1. 客户端(C) 和服务器端(S) 通过TCP连接522

2016-05-16 20:58:41 2054

原创 Openfire4.0.2中以插件形式替换默认的用户登录认证机制

前言:亲,如果你还不会配Openfire,或是还不会写openfire的 插件,或是还不会用Ant编译插件,可以参看我转载的这篇文章:http://blog.csdn.net/lc0817/article/details/51379432先说说我是如何替换默认登录机制的(如果你不关心过程,只关心结果,可以跳过前言部分)1.通过百度,发现客户端认证与UserProvider这个接口有关

2016-05-14 00:21:30 4319 9

转载 Eclipse下OpenFire4.0.2源码配置+简单插件开发

==============源码配置 begin==================1.下载:地址2.解压到当前文件夹openfire_src,进入openfire_src>build>eclipse目录下,把里面settings、classpath、project三个文件拷贝到openfire_src目录,并用windows命令行重命名它们:rename sett

2016-05-11 23:55:53 5601 7

原创 Docker+Nginx+tomcat实现一个服务器上多个tomcat的负载均衡

环境:Vmware12,Ubuntu14.04,Docker1.11.1,Nginx1.4.6,在Ubuntu虚拟机上安装的docker.1.拉取tomcat镜像:docker pull tomcat2.docker启动tomcatdocker run -i -t -v 宿主目录:虚拟目录 tomcat /bin/basheg.:docker run -i -t -v /home/le

2016-05-04 15:59:20 14388

原创 docker学习记录

1.获取container-ip1.1.先输入:  docker ps ,获取container-id1.2.之后输入:  docker inspect --format='{{.NetworkSettings.IPAddress}}' container-id

2016-05-04 09:24:38 2035

转载 关于docker的15个小tip

1. 获取最近运行容器的id这是我们经常会用到的一个操作,按照官方示例,你可以这样做(环境ubuntu):$ ID=$(docker run ubuntu echo hello world)hello world$ docker commit $ID helloworldfd08a884dc79这种方式在编写脚

2016-05-04 09:09:49 1614

转载 Java 性能优化技巧及实战

关于Java代码的性能优化,是每个javaer都渴望掌握的本领,进而晋升为大牛的必经之路,但是对java的调优需要了解整个java的运行 机制及底层调用细节,需要多看多读多写多试,并非一朝一夕之功。本文是近期笔者给公司员工内部做的一个培训,主要讲述在系统压测过程中出现的性能问题,以 及如何在编码过程中提升代码的运行效率,需要掌握哪些实战技巧。片子里干货较多,也很具有实操性,因此发文出来,共享给大家

2016-04-29 13:05:18 1759

openfire3.10.2所需的所有jar

openfire3.10.2所需的所有jar,亲测可用.

2016-06-08

以注解方式模拟Spring IoC AOP

以注解方式模拟Spring IoC AOP,了解Spring是如何实现的.

2015-09-12

以注解方式模拟Spring_IoC,AOP

以注解方式模拟Spring_IoC,AOP,看完后可以加深理解Spring的实现.

2015-09-10

Java实现二叉排序树

说明: 可实现:构造树,插入,查找,删除. 通过模式的选择,可以插入值相等的点.但是不建议使用.

2015-09-02

Java实现字典树TrieTree

Java实现字典树TrieTree,可用于计算出四六级试题的高频词.

2015-08-19

模拟Spring IoC

自己写了一个Spring IoC的模拟,有详细注释,可供刚入门学习spring的童鞋加深理解.

2015-08-17

xmlPullParser解析器jar包

xmlPullParser解析器jar包,从android里提取的.

2015-08-16

DrawerLayoutDemo

一个简单实现DrawerLayout导航抽屉的demo.(eclipse项目)

2015-07-10

fastjson-1.2.5.jar

阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征: 速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快的JackJson; 功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖,能够直接运行在Java SE 5.0以上版本;支持Android;开源 (Apache 2.0)

2015-06-28

Struts2+Hibernate4+Spring3整合(注解和XML方式都有)

Struts2+Hibernate4+Spring3整合(注解和XML方式都有),导入工程的时候请自行修改数据库连接信息.

2015-06-24

快速排序算法 基本结构

快速排序算法 基本结构,自己做的快速排序基本结构,简单易懂.

2014-09-25

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

TA关注的人

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