自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(89)
  • 收藏
  • 关注

原创 Guava的LoadingCache

一、使用1)简单初始化: LoadingCache<Long, Long> loadCache = CacheBuilder.newBuilder() .expireAfterWrite(6, TimeUnit.SECONDS) .maximumSize(100) .build(...

2019-09-02 22:15:18 2675

迁移机房流程

我们的方案,从机房A迁移到B,流程如下;先用测试预发环境过一遍,然后执行线上。1、在新机房B部署服务与配置,DBA配置好数据库,建立B-mysql(read only),作为A的从库,从A同步数据。2、将A-实例连接的数据库A-mysql切换至B-mysql(修改配置中心的配置即可),将B-mysql设置为可写。这时候实例只会操作B-mysql,即使主A-mysql数据有变动,也会...

2018-08-01 10:42:56 958

原创 一些常见的算法问题

1、假如有张地图,大概100个位置,需要随机一些东西在这些位置上,加入20个A,5个B,3个C,2个D,1个E,要怎么随机这些物品呢。随机算法。

2017-05-03 10:45:05 184

原创 Docker(转)

资料:https://segmentfault.com/a/1190000002734062Docker 是容器管理工具Docker 是一个轻量级、便携式、与外界隔离的容器,也是一个可以在容器中很方便地构建、传输、运行应用的引擎。和传统的虚拟化技术不同的是,Docker 引擎并不虚拟出一台虚拟机,而是直接使用宿主机的内核和硬件,直接在宿主机上运行容器内应用。也正是得益于此,Docker...

2017-04-26 21:47:50 185

原创 消息队列RabbitMQ

引言你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用、通讯的问题而苦恼、挣扎?如果是,那么恭喜你,消息服务让你可以很轻松地解决这些问题。消息服务擅长于解决多系统、异构系统间的数据交换(消息通知/通讯)问题,你也可以把它用于系统间服务的相互调用(RPC)。本文将要介绍的RabbitMQ就是当前最主流的消息中间件之一。RabbitMQ简介...

2017-04-26 21:40:48 85

原创 Nginx

1、动静分离,静态文件可以放另一台服务器上,比如Apache:参考 vim /usr/local/nginx/conf/nginx.conf//动态资源 location ~ \.(jsp|jspx|do|action)(\/.*)?$ { //动态请求转发到tomcat服务器,匹配方式可自定义 #设置真实ip proxy_set...

2017-04-26 21:34:15 69

java热加载解读

        首先来学习一下Instrumentation,从java5开始,就可以使用public static void premain(String agentArgs);在类加载前做一些操作。而从java6开始,支持动态修改虚拟机中加载的class,但仅限于方法内部元素改变。但这也大大方便了生产环境JVM运行状态下更新与修复bug等。另外,java6之后对本地方法处理,不过比较少用。...

2017-04-26 21:05:41 106

原创 高并发系统(缓存、降级、限流)

先解释一下关键词:缓存:这个大家都知道。降级:就是在高并发高负载情况下,选择动态的关闭一下不重要的服务,拒绝访问等,来为重要的服务节省资源,比如电商平台秒杀当天可关闭推荐等功能。限流:就相当于调整水龙头的大小,使得访问请求量控制在一定范围。       对于比较关键又高并发的服务,比如秒杀,不能通过缓存和降级方式解决,至少不够解决太大并发量。这时候就需要限流了。 以下为参...

2017-04-19 23:42:38 916

原创 限频和服务降级(转)

原文:什么是限频和服务降级 ? 要保证一个大流量对外服务的稳定性, 通常我们很相当注意两个功能控制…  一个是请求的限流,一个是服务降级处理,他的意义在于不会让你的服务全瘫痪了,你可以适当的损失点东西利益,来保证最基础的功能, 这就是过载保护. 每个接口所能提供的单位时间服务能力是有限的。超过服务服务的承载能力,一般会造成整个接口服务停顿,或者应用 Crash毁掉,或者带来一...

2017-04-19 23:12:50 514

原创 springboot入门

占个坑,之后写http://blog.csdn.net/xiaoyu411502/article/details/47864969http://www.cnblogs.com/larryzeal/p/5799195.html

2017-04-18 23:42:05 76

四种会话跟踪技术

有四种方法可以实现会话跟踪技术:URL重写、隐藏表单域、Cookie、Session。1)URL 重写:在URL后面附带会话ID,比如sessionID。和服务器的请求一起发送。一般用于浏览器禁止cookie,实现方式如下jsp页面的一行代码搞定。另外,和另外一种用于页面静态化的重写有区别,那种实现可通过下载urlrewrite-4.0.0.jar,增加配置达到目的。&lt;a hre...

2017-04-18 23:14:39 290

原创 JVM调优总结

先放个文章,之后自己总结整理一下:http://pengjiaheng.iteye.com/blog/518623

2017-04-17 19:40:03 76

原创 spring源码各个知识点汇总

大纲部分:可参考一、依赖注入的三种方式:(1)接口注入(2)Construct注入(3)Setter注入AbstractAutowireCapableBeanFactory进行构造和管理bean,其中,如果没有使用工厂或默认构造方法constructor-arg进行实例化,则默认使用cglib,而不是反射机制实例化bean。可参考,实例化后,开始装配bean(即赋值对象变量,或注解或x...

2017-04-05 00:13:43 170

原创 FileSystemXmlApplicationContext、ClassPathXmlApplicationContext和XmlWebApplication

我们常用的加载context文件的方法有如下三个:1、FileSystemXmlApplicationContext这个方法是从文件绝对路径加载配置文件,例如:ApplicationContext ctx = new FileSystemXmlApplicationContext( "G:/Test/applicationcontext.xml ");如果在参数中写的不是绝对路...

2017-04-04 17:26:21 127

原创 jvm中类加载

一、首先,java源文件-&gt;java编译机-&gt;Class文件-&gt;ClassLoader类加载器-&gt;类加载其中类加载又分为:加载-&gt;验证-&gt;准备-&gt;解析-&gt;初始化-&gt;使用-&gt;卸载二、研究类加载机制的意义从上图可以看出,类加载是Java程序运行的第一步,研究类的加载有助于了解JVM执行过程,并指导开发者采取更有效的措施配合...

2017-04-04 10:36:12 118

原创 深入理解java虚拟机[垃圾回收算法]

转载自:http://www.2cto.com/kf/201401/272681.html延伸学习:http://blog.csdn.net/fenglibing/article/details/6321453Java虚拟机的内存区域中,程序计数器、虚拟机栈和本地方法栈三个区域是线程私有的,随线程生而生,随线程灭而灭;栈中的栈帧随着方法的进入和退出而进行入栈和出栈操作,每个栈帧中分配多...

2017-04-04 10:35:42 87

原创 jstack, jstat, jmap, jinfo, 教你如何在背后偷窥你的进程

http://blog.csdn.net/fenglibing/article/details/6411953jps查看所有的jvm进程,包括进程ID,进程启动的路径等等。我自己也用PS,即:ps -ef | grep java1)jps列出pid和java主类名2)jps -l列出pid和java主类全称3)jps -lm列出皮带、主类全称和应用程序参数...

2017-04-04 10:31:29 152

原创 JVM内存模型

转载自:http://blog.csdn.net/u012152619/article/details/46968883JVM定义了若干个程序执行期间使用的数据区域。这个区域里的一些数据在JVM启动的时候创建,在JVM退出的时候销毁。而其他的数据依赖于每一个线程,在线程创建时创建,在线程退出时销毁。 程序计数器程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节...

2017-04-04 10:30:58 93

原创 http和https

转自:  HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。HTTP协议的主要特点可概括如下:1.支持客户/服...

2017-04-03 19:38:37 117

原创 TCP协议三次握手连接四次握手断开和DOS攻击

载:http://blog.csdn.net/lostyears/article/details/7104349TCP连接的状态图TCP建立连接的三次握手过程,以及关闭连接的四次握手过程贴一个telnet建立连接,断开连接的使用wireshark捕获的packet截图。1、建立连接协议(三次握手)(1)客户 端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中的报文1。(2) 服务器...

2017-04-03 19:17:06 120

原创 JVM的字节码解析

       JVM是基于栈执行的,每个线程会建立一个操作栈,每个栈又包含了若干个栈帧, 每个栈帧包含了局部变量、操作数栈、动态连接、方法的返回地址信息等。其实在我们编译的时候,需要多大的局部变量表、操作数深度等已经确定并写入了Code属性,因此运行时内存消耗的大小在启动时已经已知。       在栈帧中,最小的单位为变量槽(Variable Slot),其中每个Slot占用32个字节。在3...

2017-04-03 18:35:48 108

原创 java锁的概念

排它锁和共享锁:synchronized、ReentrantLock属于排它锁,ReentrantReadWriteLock写锁也是排它的,共享锁(ReentrantReadWriteLock的读锁)。可重入锁:比如一个对象中,有方法1和方法2被synchronized修饰,方法1内部可调用方法2,就叫作可重入。另外,ReentrantLock也可以。原理:比如ReentrantLock,...

2017-04-03 17:42:03 89

二叉树等其他数据结构整理

深度优先周游:先根次序、后根次序、中根次序。广度优先周游:逐层访问。 哈夫曼树(最优二叉树):叶节点权值之和最小。算法题目常常给若干叶节点,让你构造最优二叉树。只需要从最小的两个叶节点值开始,其父节点为两者之和,并与第三个最小叶节点成为兄弟节点,依次类推,形成最优二叉树。 三种经典的数据类型来实现高效的符号表:二叉查找树(B树)、红黑树、散列表。可以看看MYSQL索引的实现...

2017-04-03 00:16:42 123

原创 几种排序算法

(1)冒泡排序相邻的两个元素比较,后者大则交换位置。共循环n次,第i次需要比较n-i个元素。稳定排序。所以比较的时间复杂度为(n-1)+...+1=(n-1)*n/2=n*n (2)选择排序给每个位置选择当前元素最小的,比如给第一个位置选择最小的(将最小的值和第一个位置的值互换位置),在剩余元素里面给第二个元素选择第二小的,依次类推,直到第n - 1个元素,第n个元素不用选...

2017-04-02 23:22:58 92

原创 从n个对象中随机取出m个

很多类似的这种问题,都有两种方案,一种以时间换空间,一种以空间换时间。 对于方法一:这里可以计算一下其每次循环的概率是否都相同,假设i=0,随机到元素的概率为m/n;假设i=1,随机到元素的概率为m/n*((m-1)/(n-1))+(1-m/n)*(m/(n-1))=m/n(分别假设i=0时没有随机到和有随机到)...所以每次循环所随机到元素的概率都相同。//此方法摘录...

2017-04-02 20:18:20 377

netty学习

https://github.com/netty/netty/tree/4.1/example 

2017-03-29 18:05:37 79

原创 groovy学习

官网http://groovy.codehaus.org/精通 Groovyhttp://www.ibm.com/developerworks/cn/education/java/j-groovy/index.htmlInput Outputhttp://groovy.codehaus.org/Input+OutputDatabase featureshttp://...

2017-03-28 22:58:47 89

原创 页面静态化

分为真静态,和伪静态。另外,常常会将js、css、图片等单独放到几台资源服务器,由nginx分发请求到动态服务器和资源服务器。以及使用CDN分发网络。另外,同一个页面,也可以分为静止不变的,前端可以缓存,比如页面头部、底部等。 真静态:生成html,另外可以将页面内容放入nosql中。伪静态:UrlRewrite其中UrlRewrite,其实是一种地址欺骗,有多种实现,主要是页...

2017-03-27 22:42:43 76

ant使用

项目上线,现在常用maven打包部署吧,但是以前比较常用的是ant,它是使用java写的,对java项目可进行编译、打jar包、发布、运行等,具体介绍可以搜搜资料,使用方法如下。路径: 其中Test2是java project,另外AntBuild中放入build.xml文件,另外放一个bat命令,或者在cmd中运行。其中build.xml内容如下:&lt;?xml version=...

2017-03-27 16:49:21 86

原创 秒杀系统(转)

文章来自:https://my.oschina.net/xianggao/blog/5249430 系列目录秒杀系统架构秒杀系统架构分析与实战1 秒杀业务分析正常电子商务流程(1)查询商品;(2)创建订单;(3)扣减库存;(4)更新订单;(5)付款;(6)卖家发货秒杀业务的特性(1)低廉价格;(2)大幅推广;(3)瞬时售空;(4)一般是定...

2017-03-26 11:55:08 120

原创 “阻塞”与"非阻塞"与"同步"与“异步"

作者:严肃链接:https://www.zhihu.com/question/19732473/answer/20851256“阻塞”与"非阻塞"与"同步"与“异步"不能简单的从字面理解,提供一个从分布式系统角度的回答。1.同步与异步同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)所谓同步,...

2017-03-26 11:39:33 65

原创 dubbo的实现

参考:该文章,从其他文章摘录和总结。Dubbo支持多种协议,如下所示:Dubbo协议Hessian协议HTTP协议RMI协议WebService协议Thrift协议Memcached协议Redis协议1、缺省协议:采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。Dubbo缺省协议不适合传送...

2017-03-26 11:28:30 116

原创 java字节码

.java文件编译后生成的.class文件也被称为字节码文件,然后由JVM加载,并解释执行为指令,由操作系统执行。以下为转载内容: 几篇文章:1、字节码: ...

2017-03-24 17:24:42 75

原创 spring cache使用(转)

 http://www.cnblogs.com/rollenholt/p/4202631.htm基本原理一句话介绍就是Spring AOP的动态代理技术。 如果读者对Spring AOP不熟悉的话,可以去看看官方文档扩展性直到现在,我们已经学会了如何使用开箱即用的 spring cache,这基本能够满足一般应用对缓存的需求。但现实总是很复杂,当你的用户量上去或者性能跟不上...

2017-03-21 00:09:50 76

原创 java四种引用

1、强引用:诸如Object a = new Object();如果在一个方法体内,只要方法没结束,这个对象就不会被回收。2、软引用:在将要抛出Out of memory之前首先会回收已经无引用、不可达的对象。3、弱引用:在GC时,就会回收已经无引用、不可达的对象。4、虚引用:任何时候可能被回收,好像一般用来跟踪对象回收之类的,用的少。需要注意的是,后面三种引用类都继承了Refe...

2017-03-10 15:44:43 82

原创 NIO构架(转)

从Jetty、Tomcat和Mina中提炼NIO构架网络服务器的经典模式(一)如何正确使用NIO来构架网络服务器一直是最近思考的一个问题,于是乎分析了一下Jetty、Tomcat和Mina有关NIO的源码,发现大伙都基于类似的方式,我感觉这应该算是NIO构架网络服务器的经典模式,并基于这种模式写了个小小网络服务器,压力测试了一下,效果还不错。废话不多说,先看看三者是如何使用NIO的。J...

2017-03-08 19:49:35 86

原创 【转载】【经典】雅虎团队经验:网站页面性能优化的34条黄金守则

1、尽量减少HTTP请求次数终端用户响应的时间中,有80%用于下载各项内容。这部分时间包括下载页面中的图像、样式表、脚本、Flash等。通过减少页面中的元素可以减少HTTP请求的次数。这是提高网页速度的关键步骤。减少页面组件的方法其实就是简化页面设计。那么有没有一种方法既能保持页面内容的丰富性又能达到加快响应时间的目的呢?这里有几条减少HTTP请求次数同时又可能保持页面内容丰富的技术。合并文...

2017-03-08 14:50:10 114

秒杀系统

一、并发量大:1)请求分发,分发到不同服务器,采用集群,Nginx或Apache来分发。2)一般都会用缓存(本地缓存或第三方缓存),商品信息、剩余量放缓存,但具体的扣除操作,要加锁验证数据库库存,锁定的商品被放弃,放回可抢购状态更新缓存。3)除了放缓存,也可加上标志位(比如volatile boolean hadEnd = false),防止活动结束了,还是频繁的调用接口验证。所以...

2017-03-02 22:33:59 111

原创 mysql调优ecplain(转)

Mysql Explain 详解一.语法explain &lt; table_name &gt;例如: explain select * from t3 where id=3952602;二.explain输出解释+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-...

2017-03-02 21:59:11 196

CopyOnWriteArrayList使用

用到CopyOnWriteArrayList,使用时,主要有两个问题:1)用Collections.sort()排序报错: Caused by: java.lang.UnsupportedOperationException at java.util.concurrent.CopyOnWriteArrayList$COWIterator.set(CopyOnWrit...

2017-03-02 17:57:32 555

空空如也

空空如也

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

TA关注的人

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