- 博客(63)
- 资源 (6)
- 收藏
- 关注
原创 ThreadLocal是怎样炼成的
好久没更新博客了,一直都有学习新知识,但是没时间总结,主要因为顾着去发展模型兴趣去了哈 难得静下来写一篇博客 闲话不多说,直接进入主题缘起两年前因为工作关系,曾经研究过ThreadLocal源码一段时间,不过研究得不够透彻。最近偶然间又接触到ThreadLocal,又有了新的认识,因此写篇博客记录下来,顺便抛砖引玉一下。 网上很多人都会把ThreadLocal类比为Map来实现的,如果你真的这
2017-03-07 14:33:27 695
原创 欢迎使用CSDN-markdown编辑器
好久没更新博客了,一直都有学习新知识,但是没时间总结,主要因为顾着去发展模型兴趣去了哈 难得静下来写一篇博客 闲话不多说,直接进入主题缘起两年前因为工作关系,曾经研究过ThreadLocal源码一段时间,不过研究得不够透彻。最近偶然间又接触到ThreadLocal,又有了新的认识,因此写篇博客记录下来,顺便抛砖引玉一下。 网上很多人都会把ThreadLocal类比为Map来实现的,如果你真的这
2017-03-07 14:30:39 496
原创 我的JVM之旅-ClassFile
开篇搞IT有几年了,也学了不少框架中间件之类的东西。东西越学越多,越感觉迷茫,后来突然觉醒,发现弄懂技术的基础原理和算法这些基本的东西,才是自己继续往下走的根本。 偶然发现有一本书教人写JVM,叫自己动手写Java虚拟机,于是萌生把学习Jvm的过程记录下来,目标是能自己写一个最简单的JVM,能运行Java程序。 要说JVM,首先先认识一下Class文件这东西。什么是Class文件什么是Class
2016-07-18 15:56:58 1969
原创 系统限流实践 - 接入层限流(下*完结)
本文是根据开涛的博客 聊聊高并发系统之限流特技-2 整理而成,自学笔记第二篇目录1.系统限流实践 - 理论篇 2.系统限流实践 - 应用限流 3.系统限流实践 - 分布式限流 4.系统限流实践 - 接入层限流(上) 5.系统限流实践 - 接入层限流(下*完结)开篇上篇学习了通过Nginx模块进行限流的方法(传送门),接下来学习一下利用Nginx+Lua进行接入层限流Openresty提供了
2016-07-14 15:09:22 8529
原创 系统限流实践 - 接入层限流(上)
本文是根据开涛的博客 聊聊高并发系统之限流特技-2 整理而成,自学笔记第一篇 欢迎访问我的个人博客 http://rayleung.xyz/开篇上篇学习了分布式限流(传送门),接下来学习一下接入层限流的方法对于简单的web应用,我们一般直接通过容器例如Tomcat/Jetty直接把应用暴露给外部使用,这样做简单方便快速。 但是对以下的场景就有点有心无力或者实现成本比较大,例如安全校验、负载
2016-07-11 14:37:19 10163 4
原创 系统限流实践 - 分布式限流
本文是根据开涛的博客 聊聊高并发系统之限流特技-1 整理而成,自学笔记第三篇开篇上篇学习了应用限流(传送门),接下来学习一下分布式限流的方法分布式限流分布式系统也会有限流的需求。分布式服务关键需要把限流实现为原子化,解决方案可以使用Redis+Lua或者Nginx+Lua来实现。Redis+Lua实现因为Redis是单线程模型,能确保限流服务是线程安全的。Lua脚本local times = re
2016-07-11 14:35:01 5580
原创 系统限流实践 - 应用限流
本文是根据开涛的博客 聊聊高并发系统之限流特技-1 整理而成,自学笔记第二篇开篇上篇学习了限流的基本知识(传送门),接下来学习一下应用限流的方法应用级限流针对容器限制总并发/连接/请求数通过对容器进行配置,限制TPS/QPS阀值,防止大量请求涌入击垮系统。 如果你使用过Tomcat,其Connector 其中一种配置有如下几个参数: acceptCount:如果Tomcat的线程都忙
2016-06-30 14:01:59 4988
原创 系统限流实践 - 理论篇
本文是根据开涛的博客 聊聊高并发系统之限流特技-1 整理而成,自学笔记开篇在开发高并发系统的时候,有三种方法来保护我们的系统 - 缓存 缓存的目的是为了提升系统访问量,增大系统处理的容量 - 降级 降级是当服务出问题或者影响到核心流程的性能,暂时屏蔽掉服务,保证核心服务的正常 - 限流 限流是为了限制某些不能用缓存和降级来解决的场景,例如稀缺资源(秒杀、抢购)、写服务(评论、下单)、频
2016-06-27 16:01:29 3360
原创 用ELK搭建简单的日志收集分析系统
缘起在微服务开发过程中,一般都会利用多台服务器做分布式部署,如何能够把分散在各个服务器中的日志归集起来做分析处理,是一个微服务服务需要考虑的一个因素。搭建一个日志系统搭建一个日志系统需要考虑一下一些因素:利用什么技术,是自己实现还利用现成的组件日志需要定义统一的格式日志需要拥有一个锚点来进行全局跟踪第一个问题,针对我们小公司来说,基本没有自己的研发能力,绝对是选用第三方开源的组件了。ELK配
2016-04-29 15:32:13 34099 1
原创 利用Docker安装运行Codis
最近打算对缓存中间进行专题性学习,之前使用过Redis Sentinal,后来认识到Codis,对Codis产生感兴趣,于是便有了下面的安装运行总结。什么是Codis目前基于Redis集群的方案有三种,第一种是Redis Sentinal,第二种是Redis Cluster,第三种是豌豆荚的Codis。 Redis Sentinal搭建简单,不过受Redis容量限制,普通应用个人觉得已经足够了;
2016-04-14 15:40:15 5840 1
原创 记一次CPU占用率过高
记一次CPU占用率过高主要记录一次定位CPU占用率过高,如何排查哪个线程导致排查流程使用到的命令 top -p 查看指定进程信息 top -H 查看指定进程以及与进程相关的线程信息问题一天发现glassfish cpu占用率一直很高,于是需要定位究竟是什么原因导致cpu占用高通过top命令查看是哪个进程导致CPU占用率高 通过top -H -p <PID>来查询该进程下所有相关线程信
2016-02-26 15:08:51 1039
转载 数据一致性-分区可用性-性能
转自:http://hedengcheng.com/?p=892数据一致性-分区可用性-性能——多副本强同步数据库系统实现之我见三 27th, 2015发表评论 | Trackback新浪微博:@何_登成1 背景 12 问题一:数据一致性 33 问题二:分区可用性 6
2016-02-26 14:19:09 902
转载 SQL中的where条件,在数据库中提取与应用浅析
转自:http://hedengcheng.com/?p=577SQL中的where条件,在数据库中提取与应用浅析三 3rd, 2013发表评论 | Trackback1 问题描述一条SQL,在数据库中是如何执行的呢?相信很多人都会对这个问题比较感兴趣。当然,要完整描述一条SQL在数据库中的生命周期,这是一个非常巨大的问
2016-02-26 11:52:28 553
转载 MySQL 加锁处理分析
转自:http://hedengcheng.com/?p=771#_Toc374698322 学习sql时遇到的一篇好文,转载过来备份,请大家支持原作,跳转过去查看,谢谢MySQL 加锁处理分析十二 13th, 2013发表评论 | Trackback 1 背景 11.1 MVCC:Sn
2016-02-26 10:34:55 564
转载 入门
转自:http://blog.csdn.net/xiaohai0504/article/details/6832990一、原理 代理为控制要访问的目标对象提供了一种途径。当访问对象时,它引入了一个间接的层。JDK自从1.3版本开始,就引入了动态代理,并且经常被用来动态地创建代理。JDK的动态代理用起来非常简单,当它有一个限制,就是使用动态代理的对象
2016-02-17 14:38:01 676
转载 商品详情页系统的Servlet3异步化实践
转自:http://jinnianshilongnian.iteye.com/blog/2245925商品详情页系统的Servlet3异步化实践博客分类: 架构在京东工作的这一年多时间里,我在整个商品详情页系统(后端数据源)及商品详情页统一服务系统(页面中异步加载的很多服务,如库存服务、图书相关服务、延保服务等)中使用了Servlet3请求异
2015-11-26 16:26:20 929
转载 线程Interrupt
Markhttp://blog.csdn.net/hudashi/article/details/6958550interrupt()只是改变中断状态而已. interrupt()不会中断一个正在运行的线程。这一方法实际上完成的是,给受阻塞的线程抛出一个中断信号, 这样受阻线程就得以退出阻塞的状态。更确切 的说,如果线程被Object.wait, Thread.join和Th
2015-08-30 22:48:06 574
转载 Linux查看程序端口占用情况
Linux查看程序端口占用情况转自:http://www.cnblogs.com/benio/archive/2010/09/15/1826728.html今天发现服务器上Tomcat 8080端口起不来,老提示端口已经被占用。使用命令:ps -aux | grep tomcat发现并没有8080端口的Tomcat进程。使
2015-08-20 08:40:11 427
原创 利用DBUnit + HSqldb来做单元测试
公司对单元测试比较看重,对DAO也要进行单元测试,因此结合公司对DBUnit的使用和自己对DBUnit的理解来讲解一下如何利用DBUnit来做单元测试我们不是单纯地利用DBUnit,而是结合spring-test-dbunit这个开源项目来完成单元测试(https://github.com/springtestdbunit/spring-test-dbunit)有一点需要说
2015-07-31 17:37:42 1939 1
转载 举例理解Hibernate的三种状态
http://www.cnblogs.com/jyh317/p/3666566.html举例理解Hibernate的三种状态 初学Hibernate,了解到Hibernate有三种状态:transient(瞬时状态),persistent(持久化状态)以及detached(游离状态)。 它们之间有如下转换图来说明: 1、transient(瞬时
2015-04-09 23:00:03 621
原创 在方法体上和在方法体里使用synchronized的区别
学习synchronized时,我们可以把synchronized放在方法体上,也可以放在方法体内拿servlet来说,如果放在方法体上,就会把后面的request阻塞掉:protected synchronized void doGet(HttpServletRequest request, HttpServletResponse response) throws Serv
2015-03-02 22:28:31 2389
转载 JS理解
转自:http://coolshell.cn/articles/6731.html前言:还是一篇入门文章。Javascript中有几个非常重要的语言特性——对象、原型继承、闭包。其中闭包对于那些使用传统静态语言C/C++的程序员来说是一个新的语言特性。本文将以例子入手来介绍Javascript闭包的语言特性,并结合一点ECMAScript语言规范来使读者可以更深入的理解闭包。注:本
2015-01-29 22:30:02 529
转载 sublime快捷键
转自:http://zhifangzi.com/sublime_text_shortcut.html文件 File新建文件Ctrl + N打开文件Ctrl + O打开最近关闭的文件Ctrl + Shift + T保存Ctrl + S另存为…Ctrl + Shift + S
2015-01-27 00:42:13 488
原创 bower笔记
bower.json 记录web组件依赖{ "name": "todo", "version": "0.0.0", "dependencies": { "angular": "^1.3.0", "json3": "^3.3.0", "es5-shim": "^4.0.0", "bootstrap": "^3.2.0", "angula
2015-01-08 23:56:38 557
转载 XPATH
转自http://www.open-open.com/lib/view/open1397717612656.html一、基本概念介绍 XPath 是一门在 XML 文档中查找信息的语言, 可用来在 XML 文档中对元素和属性进行遍历。XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 同时被构建于 XPath 表达之上。因此,对 X
2014-12-12 12:17:45 905
原创 虚拟机堆OutOfMemoryError异常
import java.util.ArrayList;import java.util.List;/* * -Xms10m -Xmx10m -XX:+HeapDumpOnOutOfMemoryError */public class HeapOOM { static class OOMObject{ } public static void main(String[]
2014-09-14 22:27:57 622
转载 Webservice @HandlerChain
zhuan@WebService handlers with @HandlerChainIn this example we see a basic JAX-WS @WebService component use a handler chain to alter incoming and outgoing SOAP messages. SO
2014-09-12 10:15:16 3147
转载 eclipse反编译器插件
转自:闲暇之余,写了一个Eclipse下的Java反编译插件:Eclipse Class Decompiler,整合了目前最好的2个Java反编译工具Jad和JD-Core,并且和Eclipse Class Viewer无缝集成,能够很方便的使用本插件查看类库源码,以及采用本插件进行Debug调试。Eclipse Class Decompiler插件更新站点: http://f
2014-09-11 13:17:10 857
转载 Javascript模块化编程(三):require.js的用法
转:http://www.ruanyifeng.com/blog/2012/11/require_js.htmlJavascript模块化编程(三):require.js的用法分享按钮作者: 阮一峰这个系列的第一部分和第二部分,介绍了Javascript模块原型和理论概念,今天介绍如何将它们用于实战。我采用的是一个非常流行的库require.js
2014-09-05 15:22:07 611
转载 Javascript模块化编程(二):AMD规范
转:http://www.ruanyifeng.com/blog/2012/10/asynchronous_module_definition.htmlJavascript模块化编程(二):AMD规范作者: 阮一峰这个系列的第一部分介绍了Javascript模块的基本写法,今天介绍如何规范地使用模块。(接上文)
2014-09-05 15:18:18 587
转载 Javascript模块化编程(一)
转自:Javascript模块化编程(一):模块的写法作者: 阮一峰随着网站逐渐变成"互联网应用程序",嵌入网页的Javascript代码越来越庞大,越来越复杂。网页越来越像桌面程序,需要一个团队分工协作、进度管理、单元测试等等......开发者不得不使用软件工程的方法,管理网页的业务逻辑。Javascript
2014-09-05 15:16:46 540
转载 was jax-ws
转自:http://www.ibm.com/developerworks/webservices/library/ws-noide1/index.html
2014-09-01 10:28:57 862
转载 Spring webservice
转自:WebService客户端调用的本质就是将SAOP格式的XML通过通信协议发送到WebService的服务器端,然后接收服务器端返回的XML.本文简单介绍一下如何通过Spring提供的WebServiceTemplate访问Webservice,WebServiceTemplate与调用webservice的客户端已及webservice服务器端示意图如下(图片来源于Spri
2014-08-26 00:04:55 898
转载 JAX-WS 注释
“基于 XML 的 Web Service 的 Java API”(JAX-WS)通过使用注释来指定与 Web Service 实现相关联的元数据以及简化 Web Service 的开发。注释描述如何将服务器端的服务实现作为 Web Service 来访问或者客户端的 Java 类如何访问 Web Service。JAX-WS 编程标准支持将具有用于定义服务端点应用程序的元数据的 Java 类
2014-08-24 23:28:57 725
转载 Exception Handling in Spring MVC
zhException Handling in Spring MVCEngineeringPaul ChapmanNovember 01, 2013Spring MVC provides several complimentary approaches to exception handling but, when teaching Spring MVC,
2014-08-20 19:37:45 1966
转载 JSR 303
关于 Bean Validation在任何时候,当你要处理一个应用程序的业务逻辑,数据校验是你必须要考虑和面对的事情。应用程序必须通过某种手段来确保输入进来的数据从语义上来讲是正确的。在通常的情况下,应用程序是分层的,不同的层由不同的开发人员来完成。很多时候同样的数据验证逻辑会出现在不同的层,这样就会导致代码冗余和一些管理的问题,比如说语义的一致性等。为了避免这样的情况发生,最好是将验证逻辑与
2014-08-20 11:07:26 821
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人