03 2016 档案
摘要:随着大型网站的各种高并发访问、海量数据处理等场景越来越多,如何实现网站的高可用、易伸缩、可扩展、安全等目标就显得越来越重要。为了解决这样一系列问题,大型网站的架构也在不断发展。提高大型网站的高可用架构,不得不提的就是分布式。在分布式一致性一文中主要介绍了分布式系统中存在的一致性问题。本文将简单介绍如
阅读全文
摘要:包冲突解决办法:http://iamzhongyong.iteye.com/blog/1386503
阅读全文
摘要:在系统开发过程中,经常遇到数据重复插入、重复更新、消息重发发送等等问题,因为应用系统的复杂逻辑以及网络交互存在的不确定性,会导致这一重复现象,但是有些逻辑是需要有幂等特性的,否则造成的后果会比较严重,例如订单重复创建,这时候带来的问题可是非同一般啊。 一、系统的幂等性 幂等是数据中得一个概念,表示N
阅读全文
摘要:目前的应用系统,不管是企业级应用还是互联网应用,最终数据的一致性是每个应用系统都要面临的问题,随着分布式的逐渐普及,数据一致性更加艰难,但是也很难有银弹的解决方案,也并不是引入特定的中间件或者特定的开源框架能够解决的,更多的还是看业务场景,根据场景来给出解决方案。根据笔者最近几年的了解,总结了几个点
阅读全文
摘要:Spring3.0已经不再支持jtom了,不过我们可以用第三方开源软件atomikos(http://www.atomikos.com/)来实现。Atomikos是目前在分布式事务管理中做得相当不错的开源软件。有10年以上的经验,Atomikos保障您的关键事务和 防止昂贵的数据丢失在发生系统故障或
阅读全文
摘要:一、查看现场 查看现场包括如下几个步骤: 1、快照分析 功能:观察程序当前的状态 场景:检查程序当前是否处于整体异常状态 举例:gdb、Xmap、mat、jstack Dump的时候系统容易挂掉,因此在JVM里加了个参数,在OOM的时候自动dump内存:-XX:+HeapDumpOnOutOfMem
阅读全文
摘要:一、布隆过滤器介绍 Bloom Filter是一种空间效率很高的随机数据结构,Bloom Filter可以看做是对bit-map的扩展,它的原理如下: 当一个元素被加入集合时,通过K个Hash函数将这个元素映射成一个位阵列(Bit Array)中的K个点,把它们置为1,检索时我们只要看看这些点是不是
阅读全文
摘要:Oracle查询完整格式如下: Select * from XX where XX group by YY having XX order by YY Select count(*), XX from tt group by XX 对结果统计计数 下面针对group by的用途进行说明。 一、概述
阅读全文
摘要:在jvm规范中,每个类型都有自己的常量池。常量池是某类型所用常量的一个有序集合,包括直接常量(基本类型,String)和对其他类型、字段、方法的符号引用。之所以是符号引用而不是像c语言那样,编译时直接指定其他类型,是因为java是动态绑定的,只有在运行时根据某些规则才能确定具体依赖的类型实例,这正是
阅读全文
摘要:假设我们有两张表: Table A 是左边的表,Table B 是右边的表 其各有四条记录,其中有两条记录是相同的,如下所示:
阅读全文
摘要:下面将侧重介绍java乱码是如何产生的、存在哪些乱码的情况、该如何从根本上解决乱码问题。各位随博主一起征服令人厌烦的java乱码问题吧!!! 一、Java编码转换过程 我们总是用一个java类文件和用户进行最直接的交互(输入、输出),这些交互内容包含的文字可能会包含中文。无论这些java类是与数据库
阅读全文
摘要:不知道大家有没有想过一个问题,那就是为什么要编码?我们能不能不编码?要回答这个问题必须要回到计算机是如何表示我们人类能够理解的符号的,这些符号也就是我们人类使用的语言。由于人类的语言有太多,因而表示这些语言的符号太多,无法用计算机中一个基本的存储单元—— byte 来表示,因而必须要经过拆分或一些翻
阅读全文
摘要:一、多线程共享变量 方式一:变量共享 XXX tt = new XXX; new Thread(tt).start(); new Thread(tt).start(); 另一种变量共享方式 方式二:以参数传递的方式共享变量 方式三:以Executors.newFixedThreadPool(N)方式
阅读全文
摘要:一、多线程共享变量 方法一:以变量共享的方式进行操作 public class AddMinusOperate { private int j=5; public synchronized void add() { j++; } public synchronized minus() { j--;
阅读全文
摘要:原文链接及原理请参见:http://blog.csdn.net/kobejayandy/article/details/38933641
阅读全文
摘要:大型网站架构演变思路请参见:http://blog.csdn.net/kobejayandy/article/details/8944998
阅读全文
摘要:一、利用rownum,无order by(最优方案) 如下例查询出来5003行数据,然后扔掉了前面5000行,返回后面的300行。经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然。 SELECT * FROM (SELECT ROWNUM AS rown
阅读全文
摘要:JVM在执行java程序时会将它所管理的内存划分成若干个不同的数据区域。如图所示: 其中方法区和堆是所有线程共享的数据区,其他区域则是线程隔离的数据区。 这些区域的功能各有不同: 程序计数器:可以理解为当前线程所执行的字节码的行号知识器。字节码解释器工作时会通过改变这个计数器的值来选取下一条需要执行
阅读全文
摘要:1. 多进程或多线程模型 多进程服务器:Apache,Nginx,lighttpd等服务器均为多进程模型,分为Master进程和Woker进程 多进程的优点:更强的容错性 - 一个进程挂掉不会导致整个系统崩溃,更好的多核可伸缩性 - 进程的使用将许多内核资源(如地址空间,页表,打开的文件)隔离,在多
阅读全文
摘要:1. 服务异步化 网络IO处理异步化(NIO, Jetty Continuation,Servlet 3) 服务的异步化(Future, Callable, Runnable, Callback) 2. 线程与协程 多线程并发或者协程支持并发,相比而言,协程在处理IO密集型更具优势 3. 缓存无处不
阅读全文
摘要:一般OOM可能情况如下: 1、OutOfMemoryError: Java heap space; 2、OutOfMemoryError: PermGen space; 3、OutOfMemoryError: unable to create new native thread 4、GC overh
阅读全文
摘要:重复参数 Scala在定义函数时允许指定最后一个参数可以重复(变长参数),从而允许函数调用者使用变长参数列表来调用该函数,Scala中使用“*”来指明该参数为重复参数。例如: scala> def echo (args: String *) = | for (arg <- args) println
阅读全文
摘要:假如我们定义如下的函数: (x:Int) => x + more 这里我们引入一个自由变量more.它不是所定义函数的参数,而这个变量定义在函数外面,比如: var more =1 那么我们有如下的结果: scala> var more =1 more: Int = 1 scala> val add
阅读全文
摘要:我们使用“_” 来代替单个的参数,实际上你也可以使用“_”来代替整个参数列表,比如说,你可以使用 print _ 来代替 println (_). someNumbers.foreach(println _) Scala编译器自动将上面代码解释成: someNumbers.foreach( x =>
阅读全文
摘要:Scala提供了多种方法来简化函数字面量中多余的部分,比如前面例子中filter方法中使用的函数字面量,完整的写法如下: (x :Int ) => x +1 首先可以省略到参数的类型,Scala可以根据上下文推算出参数的类型,函数定义可以简化为: (x) => x +1 这个函数可以进一步去掉参数的
阅读全文
摘要:Scala中函数为头等公民,你不仅可以定义一个函数然后调用它,而且你可以写一个未命名的函数字面量,然后可以把它当成一个值传递到其它函数或是赋值给其它变量。下面的例子为一个简单的函数字面量(参考整数字面量,3 为一整数字面量)。 (x :Int ) => x +1 这是个函数字面量,它的功能为+1.
阅读全文
摘要:1、class scala的类和C#中的类有点不一样,诸如: 声明一个未用priavate修饰的字段 var age,scala编译器会字段帮我们生产一个私有字段和2个公有方法get和set ,这和C#的简易属性类似;若使用了private修饰,则它的方法也将会是私有的。这就是所谓的统一访问原则。
阅读全文
摘要:Scala类定义的几个特性:类参数和构造函数,方法,操作符,私有成员,重载,过载,条件检查,引用自身. Rational类定义规范 首先,我们回忆下有理数的定义:一个有理数(rational)可以表示成个分数形式: n/d, 其中n和d都是整数(d不可以为0),n称为分子(numberator),d
阅读全文
摘要:请参见:http://blog.csdn.net/suifeng3051/article/details/44747333 http://my.oschina.net/lifany/blog/513107?fromerr=a1fc2EIZ http://my.oschina.net/lifany/b
阅读全文
摘要:一般sbit编译器采成了scala运行工具。启动sbit命令行,输入console,命令行自动切换到scala编辑器面。 scala>:paste 然后手动将XXX.scala中的代码拷贝到界面中,粘贴,换行。如果代码无错误,界面显示defined module Test. 然后输入XXX.main
阅读全文
摘要:springController: [java] view plaincopy @Controller @RequestMapping("/user") public UserController extends BaseController{ @RequestMapping("/addUser")
阅读全文
摘要:有这样一种场景:一台普通PC,2G内存,要求处理一个包含40亿个不重复并且没有排过序的无符号的int整数,给出一个整数,问如果快速地判断这个整数是否在文件40亿个数据当中? 问题思考: 40亿个int占(40亿*4)/1024/1024/1024 大概为14.9G左右,很明显内存只有2G,放不下,因
阅读全文