- 博客(119)
- 资源 (12)
- 收藏
- 关注

转载 微博高并发场景下的分布式缓存架构
1.Memcached内存分配原理介绍掌握Memcached的安装、使用命令,其实对大部分的同学来说已经足以开展相关开发工作了。但当碰到一些线上问题的时候,单纯的会用Memcached是无法快速、合理的分析问题所在的。所以接下来我们将介绍Memcached的内存分配管理原理。Memcached默认情况下采用了名为Slab Allocator的机制分配、管理内存。Slab Allocator的基本原理
2015-08-11 11:47:55
5476
原创 Java agent实现JVM exception 统计
Java agent实现JVM异常监控原理对于javaagent,或许大家都听过,甚至使用过,常见的用法大致如下:java -javaagent:myagent.jar=mode=test Test我们通过-javaagent来指定我们编写的agent的jar路径(./myagent.jar),以及要传给agent的参数(mode=test),在启动的时候这个agent就可以做一些我们希望的事了。j
2016-07-05 10:24:43
1712
原创 Spring bean实例化时间点及相关若干问题
一简要说明Spring什么时候实例化bean,首先要分2种情况 第一:如果你使用BeanFactory作为Spring Bean的工厂类,则所有的bean都是在第一次使用该Bean的时候实例化 第二:如果你使用ApplicationContext作为Spring Bean的工厂类,则又分为以下几种情况: (1):如果bean的scope是singleton的,并且l
2016-04-20 16:53:23
4935
转载 你应该知道的RPC原理
你应该知道的RPC原理 在学校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示。这些程序的特点是服务消费方和服务提供方是本地调用关系。 而一旦踏入公司尤其是大型互联网公司就会发现,公司的系统都由成千上万大大小小的服务组成,各服务部署在不同的机器上,由不同的团队负责。这时就会遇到两个问题:1)要搭建一个新服务,免不了需要依赖他人的服务,而现在他人的服
2016-01-11 14:05:46
1513
转载 使用监听器对Spring bean id进行唯一校验
背景: 项目中用到了多数据源,不同的数据源根据业务不同配置在不同的工程中,由maven来统一聚合。但是前几天在开发过程中突然发现项目前台工程的事务配置不起作用了,在之前明明测试过事务功能,当时是生效的。然后检查了一下配置文件中事务部分的配置,发现没什么改动。为了排除其它因素的干扰,采用了单元测试重新测试了一次,结果发现当前数据源事务正常。根据这个分析可能是当前的事务配置被其它配置干扰了,仔细检查了
2015-10-20 10:10:32
903
转载 使用ZooKeeper实现配置同步
使用ZooKeeper实现配置同步前言应用项目中都会有一些配置信息,这些配置信息数据量少,一般会保存到内存、文件或者数据库,有时候需要动态更新。当需要在多个应用服务器中修改这些配置文件时,需要做到快速、简单、不停止应用服务器的方式修改并同步配置信息到所有应用中去。本篇文章就是介绍如何使用ZooKeeper来实现配置的动态同步。ZooKeeper在
2015-10-19 16:02:17
15704
原创 Merge k Sorted Lists
法1.分而治之ListNode merge2(ListNode a, ListNode b) { ListNode dummyHead, curr; dummyHead = new ListNode(-1); curr = dummyHead; while (a != null && b != null) {
2015-10-18 12:29:52
582
转载 大数据多路归并排序
多路归并排序问题给你1个文件bigdata,大小4663M,5亿个数,文件中的数据随机,如下一行一个整数:61963023557681612158020393452095006174677379343122016371712330287901712966901...7005375现在要对这个文件进行排序,怎么搞?内部排序先
2015-10-17 23:36:04
17704
原创 Remove Duplicates from Sorted Array
Remove Duplicates from Sorted ArrayMy SubmissionsQuestion Solution Given a sorted array, remove the duplicates in place such that each element appear only once and return the new
2015-10-14 12:34:01
565
原创 Copy List with Random Pointer
A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null.Return a deep copy of the list.解决思路首先想到的还是把链表当做有向图来深度遍历,但
2015-10-13 22:01:42
724
转载 Docker run 命令的使用方法
Docker run 命令的使用方法注意,本文基于最新的Docker 1.4文档翻译。Docker会在隔离的容器中运行进程。当运行 docker run命令时,Docker会启动一个进程,并为这个进程分配其独占的文件系统、网络资源和以此进程为根进程的进程组。在容器启动时,镜像可能已经定义了要运行的二进制文件、暴露的网络端口等,但是用户可以通过docker run命令重新
2015-10-12 17:44:01
57694
3
原创 弗洛伊德判圈算法
先来看链表是否有环的判断设链表起始节点为H,回路起始节点为S,两指针第一次相遇节点为M。设回路的长度为c,S到M的距离为c1,M到S的距离为c2。设H到S的距离为d。设hare每次移动2,tortoise每次移动1。移动k次后两者相遇。不难发现,H到M的距离为k。为了便于理解,请参考下图:由已知条件,可得到下列等式:hare和tortoise相遇时,hare套了tortoi
2015-10-08 21:29:29
2724
转载 使用 awk 命令行快速分析HTTP Server 访问日志
使用 awk 命令行快速分析HTTP Server 访问日志为了了解 IBM HTTP Server 的运行状况,需要对 IBM HTTP Server 的日志进行快速有效的分析。虽然现在有很多商业、或开源软件提供图形化用户界面的方式,辅助分析服务器的访问日志,但是他们大多需要事先在服务器端安装和配置。使用 awk 命令,在很多特殊情形下,可以
2015-09-12 17:20:09
2018
翻译 Searching a 2D Sorted Matrix Part II
二维整型矩阵Table [m][n]. 满足Table[i][j] ≤ Table[i][j + 1], Table[i][j] ≤ Table[i + 1][j]在此中进行查找元素。1.阶梯搜索从右上角或者左下角开始,如下图红线所示的查找13的过程bool stepWise(int mat[][N_MAX], int N, int targ
2015-09-10 12:27:25
679
转载 Tomcat启动报Error listenerStart错误
今天启动Tomcat启动不了,报以下错: org.apache.catalina.core.StandardContext startInternal SEVERE: Error listenerStart org.apache.catalina.core.StandardContext startInternal SEVERE: Context [/******] s
2015-09-02 17:19:57
630
原创 Gas Station
Gas StationThere are N gas stations along a circular route, where the amount of gas at stationi is gas[i].You have a car with an unlimited gas tank and it costs cost[i] of gas to trave
2015-08-26 20:55:39
514
转载 Git 每次提交时的用户名和密码设置
在使用 Git 的时候,经常会遇到需要频繁输入密码的情况,在每次 commit 的时候都要求输入你的用户名和密码,如果提交频繁的话甚是不便。NOTE: 如果你在用 Mac 并且刚刚升级到 Mountain Lion,那么会导致 git 命令找不到的错误,请参见这篇文章《Mountain Lion 中 Git “Command Not Found” 错误的解决办法》。那么,究
2015-08-13 10:42:17
16034
转载 ZooKeeper管理分布式环境中的数据
ZooKeeper管理分布式环境中的数据引言本节本来是要介绍ZooKeeper的实现原理,但是ZooKeeper的原理比较复杂,它涉及到了paxos算法、Zab协议、通信协议等相关知识,理解起来比较抽象所以还需要借助一些应用场景,来帮我们理解。由于内容比较多,一口气吃不成胖子,得慢慢来一步一个脚印,因此我对后期ZooKeeper的学习规划如下:第一阶段:
2015-08-10 11:45:06
2226
转载 Memcache内存分配原理介绍
1 Memcached简介1.1 什么是MemcachedMemcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并
2015-06-15 14:23:06
3030
1
转载 CAS协议
什么是CAS协议 Memcached于1.2.4版本新增CAS(Check and Set)协议类同于Java并发的CAS(Compare and Swap)原子操作,处理同一item被多个线程更改过程的并发问题。 在Memcached中,每个key关联有一个64-bit长度的long型惟一数值,表示该key对应value的版本号。这个数值由Memcached server产生,从
2015-06-05 14:48:44
761
转载 快慢指针在链表中的应用
链表的操作题有很多,最常见的莫过于,单链表的反转之类,这里仅对可以用快慢指针来解决的题目进行解析。 1、判断单链表中是否存在有环,如果有的话,找出这个环的入口节点; 2、取单链表的中间节点; 3、判断两个单链表是否相交,如果相交,找到交点;解析: 1、判断单链表中是否存在有环,如果有的话,找出这个环的入
2015-05-23 13:21:03
753
原创 字典树
Design a data structure that supports the following two operations:void addWord(word)bool search(word)search(word) can search a literal word or a regular expression string containing only lett
2015-05-20 19:36:21
550
原创 用dfs实现拓扑排序
拓扑排序,详见算法导论There are a total of n courses you have to take, labeled from 0 to n - 1.Some courses may have prerequisites, for example to take course 0 you have to first take course 1, which
2015-05-16 00:27:56
2065
原创 有向图判断是否有环
There are a total of n courses you have to take, labeled from 0 to n - 1.Some courses may have prerequisites, for example to take course 0 you have to first take course 1, which is expressed as
2015-05-13 23:41:02
729
原创 N皇后问题
The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no two queens attack each other.Given an integer n, return all distinct solutions to the n-queens puzzle.
2015-05-10 12:57:12
623
转载 尾递归
尾递归递归与尾递归关于递归操作,相信大家都已经不陌生。简单地说,一个函数直接或间接地调用自身,是为直接或间接递归。例如,我们可以使用递归来计算一个单向链表的长度:public class Node{ public Node(int value, Node next) { this.Value = value; this.Ne
2015-05-08 21:07:57
523
转载 linux基础编程:IO模型:阻塞/非阻塞/IO复用 同步/异步 Select/Epoll/AIO
IO概念Linux的内核将所有外部设备都可以看做一个文件来操作。那么我们对与外部设备的操作都可以看做对文件进行操作。我们对一个文件的读写,都通过调用内核提供的系统调用;内核给我们返回一个file descriptor(fd,文件描述符)。而对一个socket的读写也会有相应的描述符,称为socketfd(socket描述符)。描述符就是一个数字,指向内核中一个结构体(文件路径,
2015-05-08 12:53:11
849
转载 分布式一致性算法
分布式设计与开发中有些疑难问题必须借助一些算法才能解决,比如分布式环境一致性问题,感觉以下分布式算法是必须了解的(随着学习深入有待添加):Paxos算法一致性Hash算法Paxos算法1)问题描述分布式中有这么一个疑难问题,客户端向一个分布式集群的服务端发出一系列更新数据的消息,由于分布式集群中的各个服务端节点是互为同步数据的,所以运行完客户端这系列消息指令后各
2015-05-08 12:49:12
2304
转载 zookeeper原理
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某些应用中使用,因此需要有一种可靠的、可扩展的、分布式的、可配置的协调机制来统一系统的状态。Zookee
2015-05-08 12:46:27
1602
2
原创 Best Time to Buy and Sell Stock IV
Say you have an array for which the ith element is the price of a given stock on day i.Design an algorithm to find the maximum profit. You may complete at most k transactions.Note:You may
2015-05-03 14:43:02
1429
原创 有序数列中位
算法导论第九章习题原题:int min(int a, int b) { return a>b?b:a;}double findKth(int a[], int m, int b[], int n, int k){ //always assume that m is equal or smaller than n if (m > n) return fi
2015-04-30 11:28:50
465
原创 将升序数组转化为平衡二叉树
public class Solution { TreeNode convert(int num[], int l, int r) { if (l >= r) return null; int m = (l + r) / 2; TreeNode left = convert(num, l, m); TreeNode root
2015-04-29 20:13:17
1773
原创 平衡二叉树判定
1. int height(TreeNode root) { if (root == null) return 0; return Math.max(height(root.left), height(root.right)) + 1; } public boolean isBalanced(TreeNode root) { if
2015-04-29 18:44:48
652
原创 文件路径化简
Given an absolute path for a file (Unix-style), simplify it.For example,path = "/home/", => "/home"path = "/a/./b/../../c/", => "/c"Corner Cases:Did you consider the case where path
2015-04-29 16:37:14
860
原创 生成所有的BST
Given n, generate all structurally unique BST's (binary search trees) that store values 1...n.For example,Given n = 3, your program should return all 5 unique BST's shown below. 1 3
2015-04-29 13:23:54
1170
转载 ConcurrentHashMap深入分析
ConcurrentHashMap深入分析一、Map体系Hashtable是JDK 5之前Map唯一线程安全的内置实现(Collections.synchronizedMap不算)。Hashtable继承的是Dictionary(Hashtable是其唯一公开的子类),并不继承AbstractMap或者HashMap。尽管Hashtable和HashMap的结构非常
2015-04-28 10:08:07
674
原创 矩形相交判断超简单方法
设矩形A(xa1,ya1),(xa2,ya2),B(xb1,yb1),(xb2,yb2)其中:xa1xb1先看线段相交的判断:La:xa1,xa2 xa1Lb:xb1, xb2 xb1考虑对立面(只有两种情况):不相交的条件:xa2xb2由摩根律,得出相交条件:xa2>=xb1&&xa1矩形A B相交的条件为:分别在X和Y轴上的投影相交
2015-04-27 19:26:44
8287
转载 Sed的常用命令语法备忘
Sed是一个非交互性文本流编辑器。它编辑文件或标准输入导出的文本拷贝。vi中的正则表达式命令在sed中大多可以通用。sed常用选项-e script 指定sed编辑命令-f scriptfile 指定的文件中是sed编辑命令-n 寂静模式,抑制来自sed命令执行过程中的冗余输出信息,比如只显示那些被改变的行。-i[SUFFIX], –in-place[=SU
2015-04-27 15:11:57
710
转载 java动态代理(JDK和cglib)
JAVA的动态代理 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 按照代理的创建时期,代理类可以分为
2015-04-26 22:27:08
471
原创 求二叉树最远距离
int max=Integer.MIN_VALUE; int maxHeightSum(TreeNode root) { if (root == null) return 0; int maxL = Math.max(maxHeightSum(root.left), 0); int maxR = Math.max(maxHeightSum
2015-04-25 19:14:19
689
2007年emc笔试题目
2012-11-04
接口与通讯课程设计代码
2008-12-26
操作系统课程设计实习报告
2008-12-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人