04 2013 档案
摘要:业务场景:以某零件公司的零件仓库Web服务为例来解释REST Web服务的基本思想。部署在服务器上的零件仓库对外发布一些服务,从而客户能够:l 获取 一 份元件清单。l 获取某个特定元件的详细信息。l 提交一个采购清单(OP)。l 获取元件清单实现:由 于 基 于 REST的Web服务可以通过一个URI来访问,因此调用一个Web服务就十分简单。顾客在订购单(Order1)里需要获得零件的列表,假设有一个 Web服务PartsList实现此功能,那么使用http://www.anycorp.com/PartsList即可得到零件列表。客户只需这样调 用,至于服务器端如何实现,对客户来说是透明的。
阅读全文
摘要:1.什么是REST?REST 是由 Roy Fielding 在他的论文《Architectural Styles and the Design of Network-based Software Architectures》中提出的一个术语。REST 是英文 Representational State Transfer 的缩写,有中文翻译为“具象状态传输”(参考:《SIP/IMS网络中的Representational State Transfer (REST)和数据分布》)。可以将REST归纳如下:1.1首先REST只是一种风格,不是一种标准You will not see the W3
阅读全文
摘要:甲骨文公司的MySQL Windows体验团队今天更新了MySQL for Excel,发布了1.1.1版本。 MySQL for Excel是包含在MySQL Installer中的一个工具,允许开发者通过微软的Excel直接操作MySQL数据库,比如:导出MySQL数据到Excel导入Excel数据到MySQL现有数据表或新建数据表直接在Excel中编辑MySQL数据1.1.1版本主要修复了一些bug,详细信息:MySQL for Excel 1.1.1 GA has been released下载:http://dev.mysql.com/downloads/installer/ ...
阅读全文
摘要:在JDK的bin文件夹中,有一个wsimport.exe,这个工具依据wsdl文件生成相应的类文件,然后用这些类文件,就可以像调用本地的类一样调用WebService提供的方。该工具可以用于非Java的服务器,如:用C#编写的WebService,通过wsimport则生成Java的客户端实现。 在命令提示符中使用如下命令:wsimport -keep -p com.demo.client http://localhost:8080/Demo/services/MyService?wsdl 命令参数说明: -d:生成客户端执行类的class文件的存放目录 -s:生成客户端执行类的源文件...
阅读全文
摘要:Lucene 是apache软件基金会一个开放源代码的全文检索引擎工具包,是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。 Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。Lucene最初是由Doug Cutting所撰写的,是一位资深全文索引/检索专家,曾经是V-Twin搜索引擎的主要开发者,后来在Excite担任高级系统架构设计师,目前从事 于一些INTERNET底层架构的研究。他贡献出Lucene的目标是为各种中小型应用程式加入全文检索功能。网站http://www.
阅读全文
摘要:一、文件规范 1、文件均归档至约定的目录中(具体要求以豆瓣的CSS规范为例进行讲解):所有的CSS分为两大类:通用类和业务类。通用的CSS文件,放在如下目录中:基本样式库 /css/core通用UI元素样式库 /css/libJS组件相关样式库 /css/ui业务类的CSS是指和具体产品相关的文件,放在如下目录中:读书 /css/book/电影 /css/movie/音乐 /css/music/社区 /css/sns/小站 /css/site/同城 /css/location/电台 /css/radio/外联CSS文件适用于全站级和产品级通用的大文件。内联CSS文件适用于在一个或几个页面共用的
阅读全文
摘要:YSlow是yahoo美国开发的一个页面评分插件,非常的棒,从中我们可以看出我们页面上的很多不足,并且可以知道我们改怎么却改进和优化。YSlow跌评分规则。主要有12条:1. Make fewer HTTP requests 尽可能少的http请求。。我们有141个请求(其中15个JS请求,3个CSS请求,47个CSS background images请求),多的可怕。思考了下,为什么把这个三种请求过多列为对页面加载的重要不利因素呢,而过多的IMG请求并没有列为不利因素呢?发现原来这些请求都是可以避免的。15个JS和3个CSS完全可以通过特殊的办法进行合并(这个技术部已经帮我们解决了,实在是
阅读全文
摘要:Page Speed是谷歌提供的一个Web优化工具,它可以对网站的Web服务器配置和前端代码执行若干测试,并提供优化建议。 在此工具的基础上,谷歌针对Apache、nginx服务器提供了一个傻瓜式的优化工具mod_pagespeed、 ngx_pagespeed,这些工具可以自动执行网页优化,比如对网络传输的HTML字节、图像、CSS、JavaScript进行压缩优化等。去年10月份,谷歌已经发布了用于Apache服务器的mod_pagespeed 1.0正式版本,而针对nginx服务器的ngx_pagespeed进度似乎慢了点,目前刚进入beta阶段。谷歌称,在过去的三个月内对数百个站点进行
阅读全文
摘要:缓存是介于物理数据源与应用程序之间,是数据库数据在内存中的存放临时copy的容器,其作用是为了减少应用程序对物理数据源访问的次数,从而提高了应用的运行性能。1、Hibernate缓存概述缓存是介于物理数据源与应用程序之间,是数据库数据在内存中的存放临时copy的容器,其作用是为了减少应用程序对物理数据源访问的次数,从而提高了应用的运行性能。Hibernate在进行读取数据的时候,根据缓存机制在相应的缓存中查询,如果在缓存中找到了需要的数据(我们把这称做“缓存命中"),则就直接把命中的数据作为结果加以利用,避免了建立数据库查询的性能损耗。2:Hibernate缓存分类一级缓存(sess
阅读全文
摘要:1. statement每次执行sql语句,相关数据库都要执行sql语句的编译;preparedstatement是预编译的, 采用Cache机制(预编译语句,放在Cache中,下次执行相同SQL语句时,则可以直接从Cache中取出来,有利于sql生成查询计划。),对于批量处理可以大大提高效率. 也叫JDBC存储过程。例如,如果要执行两条sql语句SELECT colume FROM TABLE WHERE colume=1;SELECT colume FROM TABLE WHERE colume=2;会生成两个执行计划一千个查询就生成一千个执行计划!PreparedStatement用于使
阅读全文
摘要:HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的。HTTP有两类报文:请求报文和响应报文。请求报文一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。(1)请求行请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。例如,GET /index.html HTTP/1.1。HTTP协议的请求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。这里介绍最常用的GET方法和POST方法。GE
阅读全文
摘要:1.HashMap不是线程安全 HashMap是一个接口 是map接口的子接口,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。HashMap允许null key和null value,而hashtable不允许。2.HashTable是线程安全的一个Collection。 HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。 HashMap把Hashtable的contains方法去掉了,改成contains..
阅读全文
摘要:众所周知,java在处理数据量比较大的时候,加载到内存必然会导致内存溢出,而在一些数据处理中我们不得不去处理海量数据,在做数据处理中,我们常见的手段是分解,压缩,并行,临时文件等方法;例如,我们要将数据库(不论是什么数据库)的数据导出到一个文件,一般是Excel或文本格式的CSV;对于Excel来讲,对于POI和JXL的接口,你很多时候没有办法去控制内存什么时候向磁盘写入,很恶心,而且这些API在内存构造的对象大小将比数据原有的大小要大很多倍数,所以你不得不去拆分Excel,还好,POI开始意识到这个问题,在3.8.4的版本后,开始提供cache的行数,提供了SXSSFWorkbook的接口,
阅读全文
摘要:1 ArrayList底层是采用数组实现的(并且改数组的类型是Object类型的)2 如果是jdk6的话,采用Array.of()方法来生成一个新的数组,如果是jdk5.0的话,使用的是System.arraycopy方法(将数组拷贝)3 List list = new ArrayList();时,底层会生成一个长度为10的数组来存放对象,如果预先知道list会存放多少个对象的话,最好通过new ArrayList(int length)的方式先确定数组的最小长度,如newArrayList(50),这样能提高底层的效率。4 对于ArrayList与Vector来说,底层都是采用数组方式来实现
阅读全文
摘要:String是一个非可变性的类,这种类的特点是状态固定(不存在任何修改对象的方法),在该对象的生存周期内,它的值是永远不变的(它是线程安全的),它们更容易设计、实现、使用,不易出错,更加安全。 由于String类是支持非可变性的,所以,当执行tmp +=”x”的时候,实际上是另外创建了一个对象,而tmp原来指向的那个对象就成了垃圾(当它没有其它引用的时候),这样的话一个循环就会产生n多对象,可以相象内存的浪费,String和StringBuffer都是finall类,他们生成的对象在堆中都是不可变的,在他们内部都是靠属性char数组实现的,那为什么StringBuffer可以在对象中追加字符.
阅读全文
摘要:Ant 在构建过程方面十分优秀,它是一个基于任务和依赖的构建系统。每个任务包含一组由 XML 编码的指令。有 copy 任务和 javac 任务,以及 jar 任务。在你使用 Ant的时候,你为 Ant 提供特定的指令以编译和打包你的输出。看下面的例子,一个简单的 build.xml 文件:例 1.1. 一个简单的 Ant build.xml 文件<!-- Create the build directory structure used by compile --><mkdir dir="org.apache.maven.model.Build@d7e661&qu
阅读全文
摘要:Session 与 Cookie 不管是对 Java Web 的初学者还是熟练使用者来说都是一个令人头疼的问题。在初入职场时恐怕很多程序员在面试的时候都被问到过这个问题。其实这个问题回答起来既简单又复杂,简 单是因为它们本身只是 HTTP 协议中的一个配置项,在 Servlet 规范中也只是对应到一个类而已;说它复杂原因在于当我们的系统大到需要用到很多 Cookie 的时候,我们不得不考虑 HTTP 协议对 Cookie 数量和大小的限制,那么如何才能解决这个瓶颈呢? Session 也会有同样的问题,当我们的一个应用系统有几百台服务器的时候如何解决 Session 在多台服务器之间共享?它们
阅读全文
摘要:1.基础概念篇1.1介绍 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了HTTP/1.0版本。其中最著名的就是RFC 2616。RFC 2616定义了今天普遍使用的一个版本——HTTP 1.1。HTTP 协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本
阅读全文
摘要:引言前端的高性能部分,主要是指减少请求数、减少传输的数据以及提高用户体验,在这个部分,图片的优化显得至关重要。许多网站的美化,都是靠绚丽 的图片达到的,图片恰恰是占用带宽的元凶。每个 img 标签,浏览器都会试图发起一个下载请求。本文就详细介绍了图片优化的几种方式,介绍了使用的工具以及优化后的结果。图片压缩减少图片的大小,可以明显的提高性能,而对于已有图片,要想减少图片的大小,只能改变图片的格式,这里推荐的是 PNG8 的格式,它可以在基本保持清晰度的情况下,减少图片的大小。知道这个原理以后,可以用 Windows 的画图工具、以及 PhotoShop 工具逐个的改变。但是这样做的缺点是单张处
阅读全文
摘要:引言在前端优化的第一部分中,主要讲解了对静态资源的一些优化措施,包括图片压缩、CSS Sprites 技术、GZIP 压缩等。这一部分,本文将讲解前端优化里重要的 Flush 机制、动静分离、HTTP 持久连接、HTTP 协议灵活应用、CDN 等。结合这些技术或思想,相信会使 Java Web 应用程序的性能更上一层楼。Flush 机制的使用实际上在 Web 技术中,Flush 机制并不新鲜,它的思想是无需等到网页内容全部加载完毕,一次性写回客户端,而是可以部分逐次的返回。如果网页很大的话,一次性写回全部内容显然是个不明 智的选择,因为这会造成网页的长时间空白。Flush 机制允许开发人员将网
阅读全文
摘要:jQuery官方今天正式发布了jQuery 2.0版本。 该版本的主要变化如下:不再支持IE 6/7/8,如果在IE9/10版本中使用“兼容性视图”模式也将会受到影响。更加轻量,2.0版本文件与1.9.1相比小了12%。模块化,你可以自定义构建一个更小、更轻量的版本。兼容jQuery 1.9版本的API。如果你仍有大量目标用户在使用IE 6/7/8版本,你应该在项目中使用jQuery 1.9版本,或者期待即将在2个月内到来的1.10版本。由于该版本变化较大,如果从1.9之前版本升级至该版本,建议使用jQuery迁移插件,并阅读jQuery 1.9 升级指南。详细信息:jQuery 2.0 Re
阅读全文
摘要:JavaScript 函数式脚本语言特性以及其看似随意的编写风格,导致长期以来人们对这一门语言的误解,即认为 JavaScript 不是一门面向对象的语言,或者只是部分具备一些面向对象的特征。本文将回归面向对象本意,从对语言感悟的角度阐述为什么 JavaScript 是一门彻底的面向对象的语言,以及如何正确地使用这一特性。 前言当今 JavaScript 大行其道,各种应用对其依赖日深。web 程序员已逐渐习惯使用各种优秀的 JavaScript 框架快速开发 Web 应用,从而忽略了对原生 JavaScript 的学习和深入理解。所以,经常出现的情况是,很多做了多年 JS 开发的程序员对闭包
阅读全文
摘要:一款优秀的菜单对网站而言是非常重要的,它不仅可以让用户方便地找到想要的信息,而且更让人有一种特殊的用户体验。下面给大家分享7款风格新颖的jQuery/CSS3菜单导航,希望大家会喜欢。 1、CSS3立体飘带状菜单CSS3立体飘带状菜单,该菜单鼠标滑过时,菜单项向上立体凸起,结合黑色的木质背景,整个菜单显得非常立体生动。在线演示 / 源码下载2、CSS3个人资料导航菜单该菜单是用来展示登录的用户信息,包括用户的快捷操作按钮,另外菜单还提供一个个性化的搜索框。在线演示 / 源码下载3、jQuery顶部浮动渐变工具栏jQuery顶部浮动渐变工具栏是一款基于jQuery的顶部导航插件,默认该菜单不显示
阅读全文
摘要:Geeksphone 今天正式开卖 Firefox OS 开发者预览版手机,一款 119 美元的 Keon 和一款 194 美元的 Peak,两者都搭载 Firefox OS,面向开发者和极客。上线才几小时,网站上的售卖状态已经变成了“售罄”。 由于是首版开发者预览机,,配置也就一般般了:Keon 手机配备 1GHz Snapdragon S1 处理器,3.5 寸 HVGA 屏幕,300 万像素相机,4GB 的 ROM 搭配 521MB 的 RAM,支持 2G、3G 网络和 Micro SD 卡,电池容量为 1580mAh。Peak 稍微高端一点,处理器是 1.2GHz 的双核 Snapdra
阅读全文
摘要:当一个网站或者一个Web应用推出新功能时,为了让用户了解你的站点(或应用)如何操作,往往都会在站点(应用)中添加一个分步指引的效果。然而这样的效果,对于不懂原生JS的同学来说,是件很头痛的事情。 下面为大家介绍一些可帮助你实现分步指引效果的jQuery插件,你可以根据自己需求定制,它们都具有一个时尚的外观,而且简单易用。1. Intro.jsIntro.js 使用一种引导式的方式来一步步介绍你网站和项目新特性。支持键盘+鼠标的导航方式。2. aSimpleTouraSimpleTour 使用JSON数据进行存储配置和内容。一个浮动窗帮助管理重点元素的浏览、工具提示(可以定位)。3. Pageg
阅读全文
摘要:在过去的十年中,计算世界已经改变。现在不仅在大公司,甚至一些小公司也积累了TB量级的数据。各种规模的组织开始有了处理大数据的需求,而目前关系型数据库在可缩放方面几乎已经达到极限。 一个解决方案是使用键值(Key-Value)存储数据库,这是一种NoSQL(非关系型数据库)模型,其数据按照键值对的形式进行组织、索引和存储。KV存储非常适合不涉及过多数据关系业务关系的业务数据,同时能有效减少读写磁盘的次数,比SQL数据库存储拥有更好的读写性能。本文就为你介绍9种用于大数据处理的免费键值存储数据库。1. Aerospike 社区版Aerospike是一个以分布式为核心基础,可基于行随机存取内存中索引
阅读全文
摘要:在MySQL经历了2008年Sun的收购和2009年Oracle收购Sun的过程中,基本处于停滞发展的情况,在可以预见的未来,MySQL是肯定会 被Oracle搁置并且逐步雪藏消灭掉的。MySQL随着相应的各主创和内部开发人员的离去,缔造了各个不同的引擎和分支,让MySQL有希望继续发扬光 大起来。 本文大致讲解一下MySQL目前除了主要的 MyISAM、InnoDB、Heap(Memory)、NDB等引擎之外的其他引擎的发展和现状,以及MySQL主干以外的分支的状况,为了我们未来更好的使用MySQL或者其他分支建立一个了解基础。MySQL存储引擎介绍Falcon存储引擎Falcon存储引擎.
阅读全文
摘要:一、背景1、起源 MapReduce编程模型的思想来源于函数式编程语言Lisp,由Google公司于2004年提出并首先应用于大型集群。同时,Google也发表了GFS、BigTable等底层系统以应用MapReduce模型。在2007年,Google’s MapReduce Programming Model-Revisted论文发表,进一步详细介绍了Google MapReduce模型以及Sazwall并行处理海量数据分析语言。Google公司以MapReduce作为基石,逐步发展成为全球互联网企业的领头羊。2、项目起源和发展 Hadoop作为Apache基金会资助的开源项目,由Doug
阅读全文
摘要:oSQL是伴随着web2.0的迅猛发展而在2009年被提出的一个概念,一般可以通俗的理解为高性能的Key Value存储结构的数据库,当然也有其他更广泛的类型。它基于CAP和BASE理论,强调最终一致性,具有数据结构灵活、扩展方便、大数据量下读写性能 高效等特点,在互联网行业被广泛采用。本系列文章将评测广受关注的几个NoSQL数据库产品。本文关注的是HandlerSocket Plugin for MySQL。系列文章:主流NoSQL数据库评测之Tokyo Cabinet HandlerSocket简介: HandlerSocket是日本DeNA公司的架构师Yoshinori开发的一个NoS.
阅读全文
摘要:本篇要评测的NoSQL产品是MongoDB,它是现在开源社区里越来越受到关注的一个NoSQL产品,按照官方的说法,是一个可扩展的、高性能 的、开源的、面向文档的数据库。Craigslist、foursquare、国内的淘宝网等知名互联网公司都有在他们的生产环境部署了MongoDB。 系列文章: 主流NoSQL数据库评测之Tokyo Cabinet 主流NoSQL数据库评测之HandlerSocket 一、MongoDB简介 mongodb是用C++开发的面向文档的数据库,也就是反传统的数据库范式来设计的,把相关的对象都记录到一个文档里,每个文档内是schema- free的,也就是...
阅读全文
摘要:本篇要评测的NoSQL产品是HBase,和其他简单的Key-Value结构不同,HBase主要面向处理海 量数据的应用,可以认为是Google BigTable的一个开源版本。由于Facebook使用HBase来存储消息内容和大数据量的实时分析而使得这一产品备受关注。 系列文章: 主流NoSQL数据库评测之Tokyo Cabinet 主流NoSQL数据库评测之HandlerSocket 主流NoSQL数据库评测之MongoDB 一、HBase简介 HBase是用Java开发的,是一个开源的、分布式的、面向列的数据库,其存储的每个值都有一个时间戳,可以根据定义好的规则保存多个版本(默...
阅读全文
摘要:前段时间Facebook的新版消息系统发布,Facebook对HBase的成功使用也使得很多的HBase案例得以出现,下文是Facebook的 Hadoop工程师Dhruba Borthakur发表的Hadoop系列文章中的一篇,对Facebook选择Hadoop和HBase的原因做了一个说明。 Dhruba Borthakur首先总结了Hadoop和HBase的优势。他认为HBase横向扩展性强。对Facebook这种少量数据存储场景来说,扩容几乎是家常便饭,HBase能够使数据扩容非常容易。并且支持很高的写吞吐。Facebook的消息数据很庞大,每天的写量也很大。同时在同一个数据中心,能够
阅读全文
摘要:也许你已经在一些地方看到这个消息,Facebook 已经开发一款新的社会化收件箱,集成了电子邮件、即时通讯、短信、文本信息、Facebook站内信息。最重要的是,他们需要每个月存储 1350 亿条信息。他们在哪里存储这些信息?Facebook的Kannan Muthukkaruppan 在《信息背后的技术》一文中给出一个令人惊奇的答案:HBase。HBase 击败了MySQL、Cassandra和其他一些选项,成为了Facebook的选择。 为什么这一选择令人惊奇?Facebook 创建了Cassandra,其目的就是为了建造一个收件箱类型的应用程序,但是最终他们发现,Cassandra的..
阅读全文
摘要:MySQL复制操作可以将数据从一个MySQL服务器(主)复制到其他的一个或多个MySQL服务器(从)。试想一下,如果从服务器不再局限为一个MySQL服务器,而是其他任何数据库服务器或平台,并且复制事件要求实时进行,是否可以实现呢? MySQL团队最新推出的 MySQL Applier for Hadoop(以下简称Hadoop Applier)旨在解决这一问题。用途例如,复制事件中的从服务器可能是一个数据仓库系统,如Apache Hive,它使用Hadoop分布式文件系统(HDFS)作为数据存储区。如果你有一个与HDFS相关的Hive元存储,Hadoop Applier就可以实时填充Hive数
阅读全文
摘要:一.消息目的地策略在节点destinationPolicy配置策略,可以对单个或者所有的主题和队列进行设置,使用流量监控,当消息达到memoryLimit的时候,ActiveMQ会减慢消息的产生甚至阻塞,destinationPolicy的配置如下: <!-- Destination specific policies using destination names or wildcards --> <!-- wildcards意义见http://activemq.apache.org/wildcards.html --> <destinationPolicy&g
阅读全文

浙公网安备 33010602011771号