JAVA WEB开发
文章平均质量分 88
NullPointerExcept
这个作者很懒,什么都没留下…
展开
-
Spring Boot 入门
Spring Boot 入门Spring Boot是Spring社区较新的一个项目。该项目的目的是帮助开发者更容易的创建基于Spring的应用程序和服务,让更多人的人更快的对Spring进行入门体验,让Java开发也能够实现Ruby on Rails那样的生产效率。为Spring生态系统提供了一种固定的、约定优于配置风格的框架。Spring Boot具有如下特性:为基于Sp转载 2016-08-15 11:40:07 · 521 阅读 · 0 评论 -
REST简介
1、REST简介 参考页面:http://www.infoq.com/cn/articles/rest-introduction 个人理解:给定一个uri就可获取一定资源,类似web service。2、 resteasy使用 此处使用了JBOSS 开源项目Resteasy 来实现。 在web.xml里配置:原创 2016-09-22 17:08:12 · 265 阅读 · 0 评论 -
从理论到实践,全方位认识DNS(理论篇)
对于 DNS(Domain Name System) 大家肯定不陌生,不就是用来将一个网站的域名转换为对应的IP吗。当我们发现可以上QQ但不能浏览网页时,我们会想到可能是域名服务器挂掉了;当我们用别人提供的hosts文件浏览到一个“不存在”的网页时,我们会了解到域名解析系统的脆弱。然而关于DNS还有一大堆故事值得我们去倾听,去思考。DNS 源起要想访问网络上的一台计算机转载 2016-11-16 10:54:16 · 241 阅读 · 0 评论 -
Internet 协议入门
前言劳于读书,逸于作文。博主之前写过一篇博客:网络协议分析,在这篇博客里通过抓包,具体的分析了不同网络协议的传送的数据和传送的方式。而此篇博客则用来作为一个大纲式的内容,按照层级划分,逐步介绍各层级的协议以及他们所起的作用。若有错误之处,欢迎批评指正。正文1.概述互联网的实现,分成好几层。每一层都有自己的功能,就像建筑物一样,每一层都靠下一层支持。1转载 2016-11-30 09:35:09 · 351 阅读 · 0 评论 -
服务端架构中的“网关服务器”
这么一个场景:一个要承载高并发、具有高性能的后台服务,往往会有多个不同的应用服务。问题来了,你会怎样设计架构呢?如下图所示,为了共用一个稳定高效的网络处理功能,把所有服务写在一个进程里。接下来悲剧一幕幕就要上演了,如果各个模块是多人协作开发,网络库的作者得想办法设计个插件机制供各个应用挂载,开发时无论是人员或者代码都耦合非常严重,大大影响协作、开发效率,后期要增减一个应转载 2016-11-21 09:37:31 · 2188 阅读 · 1 评论 -
使用 Elasticsearch 实现博客站内搜索
一直以来,为了优化本博客站内搜索效果和速度,我使用 bing 的 site: 站内搜索做为数据源,在服务端获取、解析、处理并缓存搜索结果,直接输出 HTML。这个方案唯一的问题是时效性难以保证,尽管我可以在发布和修改文章时主动告诉 bing,但它什么时候更新索引则完全不受我控制。本着不折腾就浑身不自在的原则,我最终还是使用 Elasticsearch 搭建了自己的搜索服务。Elasti转载 2016-11-21 09:39:29 · 1162 阅读 · 0 评论 -
高并发服务端分布式系统设计概要
写这篇文章的目的,主要是把今年以来学习的一些东西积淀下来,同时作为之前文章《高性能分布式计算与存储系统设计概要》的补充与提升,然而本人水平非常有限,回头看之前写的文章也有许多不足,甚至是错误,希望同学们看到了错误多多见谅,更欢迎与我讨论并指正。我大概是从2010年底起开始进入高并发、高性能服务器和分布式这一块领域的研究,到现在也差不多有三年,但其实很多东西仍然是一知半解,我所提转载 2016-11-21 09:41:23 · 419 阅读 · 0 评论 -
系统负载能力浅析
互联网时代,高并发是一个老生常谈的话题。无论对于一个web站点还是app应用,高峰时能承载的并发请求都是衡量一个系统性能的关键标志。像阿里双十一顶住了上亿的峰值请求、订单也确实体现了阿里的技术水平(当然有钱也是一个原因)。那么,何为系统负载能力?怎么衡量?相关因素有哪些?又如何优化呢?一. 衡量指标用什么来衡量一个系统的负载能力呢?有一个概念叫做每秒请求数(Requests转载 2016-11-22 09:25:19 · 500 阅读 · 0 评论 -
分布式服务器集群架构方案思考
研究了一套完整的分布式服务器集群架构方案。0x01.大型网站演化简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。集群主要分为:高可用集群(High Availability Cluster),负载均衡集群(Load Balance Cluster,nginx即可实现),转载 2016-11-22 09:26:57 · 394 阅读 · 0 评论 -
大型网站的 HTTPS 实践(二)——HTTPS 对性能的影响
1 前言HTTPS 在保护用户隐私,防止流量劫持方面发挥着非常关键的作用,但与此同时,HTTPS 也会降低用户访问速度,增加网站服务器的计算资源消耗。本文主要介绍 https 对用户体验的影响。2 HTTPS 对访问速度的影响在介绍速度优化策略之前,先来看下 HTTPS 对速度有什么影响。影响主要来自两方面:协议交互所增加的网络 RTT(转载 2016-11-22 09:27:31 · 368 阅读 · 0 评论 -
最佳实践:更好的设计你的 REST API
由于 REST 可以降低开发的复杂度,提高系统的可伸缩性,增强系统的可扩展性,简化应用系统之间的集成,因而得到了广大开发人员的喜爱,同时得到了业界广泛的支持。比如 IBM,Google 等公司的很多产品都提供了 REST API 给开发人员;与此同时,大量的开源项目和云计算服务都提供了 REST API 接口。而在最近,一些新产品的开发甚至已经几乎完全抛弃了传统的类似 JSP 的技术, 转转载 2016-11-23 10:39:01 · 816 阅读 · 0 评论 -
京东商城架构峰值系统设计
高流量、高并发情况下,如何保证整个系统的可靠性和稳定性,是众多电商企业研发团队都在思考的问题。为了尽量缓解峰值带来的压力,京东峰值系统的设计主要从性能提升、流量控制、灾备降级、压测预案四个角度来进行。有别于社交网络、搜索和游戏等网站,电商网站的用户流量具有操作性强、随时令变化等特点。在欧美国家,Black Friday和Cyber Monday标志着节假日消费的高峰。影响电商流量峰值的主要转载 2016-11-23 10:40:18 · 625 阅读 · 0 评论 -
亿级Web系统搭建(一)——单机到分布式集群
大规模流量的网站架构,从来都是慢慢“成长”而来。而这个过程中,会遇到很多问题,在不断解决问题的过程中,Web系统变得越来越大。并且,新的挑战又往往出现在旧的解决方案之上。希望这篇文章能够为技术人员提供一定的参考和帮助。以下为原文当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题。为了解决这些转载 2016-11-23 10:42:32 · 589 阅读 · 0 评论 -
亿级Web系统搭建(二)——Web系统的缓存机制的建立和优化
刚刚我们讲完了Web系统的外部网络环境,现在我们开始关注我们Web系统自身的性能问题。我们的Web站点随着访问量的上升,会遇到很多的挑战,解决这些问题不仅仅是扩容机器这么简单,建立和使用合适的缓存机制才是根本。最开始,我们的Web系统架构可能是这样的,每个环节,都可能只有1台机器。 我们从最根本的数据存储开始看哈。一、 MySQL数据库内部缓存使用转载 2016-11-23 10:43:25 · 302 阅读 · 0 评论 -
亿级Web系统搭建(三) ——异地部署&小结
完成了上述架构建设之后,我们的系统是否就已经足够强大了呢?答案当然是否定的哈,优化是无极限的。Web系统虽然表面上看,似乎比较强大了,但是给予用户的体验却不一定是最好的。因为东北的同学,访问深圳的一个网站服务,他还是会感到一些网络距离上的慢。这个时候,我们就需要做异地部署,让Web系统离用户更近。一、 核心集中与节点分散有玩过大型网游的同学都会知道,网游是有很多个区的,一般都是按照转载 2016-11-23 10:43:56 · 1344 阅读 · 0 评论 -
从零到一,美芽的技术实战
美芽作为一个美妆视频社区,在 2015 年 2 月份上线之后,极受女性用户的欢迎。此次美芽 CTO 姚东旭在 UPYUN Open Talk No.4 厦门场,分享了美芽从零到一的整个产品生命周期,带给创业公司很多值得借鉴的地方。美芽在萌芽过程中,同很多初创产品一样,有常见的三个特点:较小的用户规模。虽然偶有例外,譬如“足迹”的爆发式增长,传言 DAU 有 300 万,而一转载 2016-11-23 10:44:42 · 366 阅读 · 0 评论 -
构建高并发高可用的电商平台架构实践(1)
一、 设计理念1. 空间换时间1) 多级缓存,静态化客户端页面缓存(http header中包含Expires/Cache of Control,last modified(304,server不返回body,客户端可以继续用cache,减少流量),ETag)反向代理缓存应用端的缓存(memcache)内存数据库B转载 2016-11-23 10:46:23 · 917 阅读 · 0 评论 -
构建高并发高可用的电商平台架构实践(2)
6. 数据存储数据库存储大体分为以下几类,有关系型(事务型)的数据库,以oracle、mysql为代表,有keyvalue数据库,以redis和memcached db为代表,有文档型数据库如mongodb,有列式分布式数据库以HBase,cassandra,dynamo为代表,还有其他的图形数据库、对象数据 库、xml数据库等。每种类型的数据库应用的业务领域是不一样的,下面从内存转载 2016-11-23 10:46:58 · 716 阅读 · 0 评论 -
高并发与高可用
转载 2016-11-24 11:01:40 · 969 阅读 · 0 评论 -
京东活动系统亿级流量应对之术
背景京东活动系统是一个可在线编辑、实时编辑更新和发布新活动,并对外提供页面访问服务的系统,地址如http://sale.jd.com/***.html。其高时效性、灵活性等特征,极受青睐,已发展成京东几个重要流量入口之一。近几次大促,系统所承载的PV均为数亿以上。随着京东业务的高速发展,京东活动系统的压力会越来越大。急需要一个更高效,稳定的系统架构,来支持业务的高速发展。本文主要对活动页面转载 2016-11-25 14:56:51 · 495 阅读 · 0 评论 -
Spring的IOC原理
1. IoC理论的背景我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑。图1:软件系统中耦合的对象如果我们打开机械式手表的后盖,就会看到与上面类似的情形,各个齿轮分别带动时针、分针和秒针顺时针旋转,从而在表盘上产生正确的时间。图1中描述的就是这样的一个齿轮组,它拥有多个独立的齿轮,这些转载 2016-12-08 09:35:04 · 212 阅读 · 0 评论 -
浏览器缓存知识小结及应用
阅读目录1. 浏览器缓存基本认识2. 强缓存的原理3. 强缓存的管理4. 强缓存的应用5. 协商缓存的原理6. 协商缓存的管理7. 浏览器行为对缓存的影响浏览器缓存,也就是客户端缓存,既是网页性能优化里面静态资源相关优化的一大利器,也是无数web开发人员在工作过程不可避免的一大问题,所以在产品开发的时候我们总是想办法避免缓转载 2016-12-14 09:19:58 · 275 阅读 · 0 评论 -
关于struts漏洞之---/struts/webconsole.html
使用扫描工具扫描出struts项目存放访问 路径:http:host:port/web//struts/webconsole.html,刚开始以为是在项目的struts.xml配置文件中开启了开发模式,后来发现无论开启与否,甚至显式的关闭开发模式,这个链接都可以访问,于是上网看看别人的解决办法,从先解决问题出发,按网上的办法进入如下路径:struts2-core-*.jar\org\a转载 2016-12-21 14:09:53 · 3219 阅读 · 0 评论 -
HTTP/2笔记之流和多路复用
本部分将讲解HTTP/2协议中对流的定义和使用,其实就是在说HTTP/2是若何做到多路复用的。一。流和多路复用的关系1. 流的概念流(Stream),服务器和客户端在HTTP/2连接内用于交换帧数据的独立双向序列,逻辑上可看做一个较为完整的交互处理单元,即表达一次完整的资源请求-响应数据交换流程;一个业务处理单元,在一个流内进行处理完毕,这个流生命周期完结。特点如下转载 2016-12-15 16:49:40 · 1025 阅读 · 0 评论 -
HTTP2技术变革的冲击和影响分析
HTTP2技术变革的冲击和影响分析HTTP2于今年2月28日正式通过IETF组织批准发布,正式定稿,那么什么是HTTP2,HTTP2将给我们带来哪些改变,将对我们的业务和产品产生哪些影响,应用安全研究部的协议分析研究员对此进行了深入的分析。HTTP协议发展及特点HTTP是往返“浏览器”与“WEB Server”的协议(即:HTTP Protocol)。HTTP 0.9转载 2016-12-15 16:51:18 · 388 阅读 · 0 评论 -
HTTPS、SPDY和HTTP/2的性能比较
Firefox 35已于最近发布,新版本默认支持HTTP/2协议(草案14版本),针对该升级HttpWatch也发布了相应的更新,使其能够在Firefox中支持HTTP/2,由于Google的web服务器现在能够同时支持HTTP/2草案14版本和SPDY协议,使得HttpWatch能够在同样的Web页面上对比HTTPS、SPDY和HTTP/2的性能。整个性能测试包含4个场景,使用的软件为F转载 2016-12-15 16:52:45 · 389 阅读 · 0 评论 -
HTTP/2 新特性浅析
HTTP/2 源自 SPDY/2SPDY 系列协议由谷歌开发,于 2009 年公开。它的设计目标是降低 50% 的页面加载时间。当下很多著名的互联网公司都在自己的网站或 APP 中采用了 SPDY 系列协议(当前最新版本是 SPDY/3.1),因为它对性能的提升是显而易见的。主流的浏览器(谷歌、火狐、Opera)也都早已经支持 SPDY,它已经成为了工业标准,HTTP Working-Gr转载 2016-12-15 16:54:17 · 211 阅读 · 0 评论 -
使用 HTTP/2 提升性能的 7 个建议
历史悠久的超文本传输协议,即HTTP标准,最近版本升级了。HTTP/2在2015年5月被批准,目前已经在很多Web浏览器和服务器中得到实现(包括NGINX Plus和开源NGINX)。大约有三分之二的浏览器已经支持HTTP/2,而且这个比例每月都在增加。HTTP/2构建在Google SPDY协议基础之上,Chrome将在2016年年初停止对后者的支持。NGINX是最早支持SPDY的,转载 2016-12-15 16:55:01 · 516 阅读 · 0 评论 -
HTTP/2性能更好,但是安全性又如何呢?
根据W3Techs的调查数据显示,目前大约有11%的网站使用了新型的互联网通信协议–HTTP/2,而在一年之前,其占比只有2.3%。没错,这个新的协议的确可以提供更好的性能,而且也可以与之前的HTTP/1.1兼容,但是我们真的有必要急于升级到HTTP/2吗?虽然协议本身暂时还没有漏洞,但是很多网站在使用这个协议时所采用的实现方法是存在安全漏洞的,这将导致网站的数据流量很转载 2016-12-23 12:10:47 · 645 阅读 · 0 评论 -
单点登录原理与简单实现
一、单系统登录机制1、http无状态协议web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服转载 2016-12-19 09:21:57 · 340 阅读 · 0 评论 -
常见性能优化策略的总结
1.形成可实践、可借鉴、可参考的各种性能优化的方案以及选型考虑点,同时配合具体的真实案例,其他人遇到相似问题时,不用从零开始。2. 有助于开阔视野,除了性能优化之外,也能提供通用的常见思路以及方案选型的考虑点,帮助大家培养在方案选型时的意识、思维以及做各种权衡的能力。文章在内部分享后,引起强烈分享,得到了不少同事和朋友的认可和好评,觉得对日常的工作有很好的指导作用。考虑到这些经验可转载 2016-12-26 09:14:16 · 473 阅读 · 0 评论 -
兼顾高可靠和低延迟,Google打算用QUIC协议替代TCP/UDP
大Google想到能否把这两种协议的优势结合起来,同时实现低时延和高可靠并将其应用到更高安全的协议上,于是就有了QUIC。本文就来详细介绍下QUIC协议。从TCP协议说起当前,web平台的数据传输都基于TCP协议。TCP协议在创建连接之前需要进行三次握手(图1),如果需要提高数据交互的安全性,既增加传输层安全协议(TLS),还转载 2016-12-30 09:33:02 · 4099 阅读 · 0 评论 -
系统负载能力浅析
一. 衡量指标用什么来衡量一个系统的负载能力呢?有一个概念叫做每秒请求数(Requests per second),指的是每秒能够成功处理请求的数目。比如说,你可以配置tomcat服务器的maxConnection为无限大,但是受限于服务器系统或者硬件限制,很多请求是不会在一定的时间内得到响应的,这并不作为一个成功的请求,其中成功得到响应的请求数即为每秒请求数,反应出系统的负载转载 2016-12-20 09:20:23 · 424 阅读 · 0 评论 -
大型分布式网站架构技术总结
本文是学习大型分布式网站架构的技术总结。对架构一个高性能,高可用,可伸缩,可扩展的分布式网站进行了概要性描述,并给出一个架构参考。一部分为读书笔记,一部分是个人经验总结。对大型分布式网站架构有很好的参考价值。一、大型网站的特点用户多,分布广泛大流量,高并发海量数据,服务高可用安全环境恶劣,易受网络攻击功转载 2016-12-21 09:10:03 · 335 阅读 · 0 评论 -
Web基础架构:负载均衡和LVS
在大规模互联网应用中,负载均衡设备是必不可少的一个节点,源于互联网应用的高并发和大流量的冲击压力,我们通常会在服务端部署多个无状态的应用服务器和若干有状态的存储服务器(数据库、缓存等等)。一、负载均衡的作用负载均衡设备的任务就是作为应用服务器流量的入口,挑选最合适的一台服务器,将客户端的请求转发给它处理,实现客户端到真实服务端的透明转发。最近几年很火的「云计算」以及分布式架构,本质转载 2017-01-15 09:29:19 · 408 阅读 · 0 评论 -
从浏览器到服务端的中文乱码深入分析
概述前段时间陆陆续续有一些同事跟我询问中文乱码问题,每个人的问题也都大同小异。而我最早之前也一直想写一篇这样的文章,无奈都腾不出富裕的时间,或者说拖延症比较严重(其实还是懒),这次就索性对自己狠一把,对这个问题做一个总结。我们知道http协议是请求-响应式的,平常出现的乱码问题也就都隐藏在这一问一答之中,如果能明白字符在这个期间所走的链路,以及在这个链路中都经历了怎样的字符转换,那转载 2017-02-07 13:57:18 · 1640 阅读 · 0 评论 -
反向代理与Real-IP和X-Forwarded-For
本文是「4.4 接入层限流」节中的「按照IP限制并发连接数配置示例」部分需要了解的内容。当我们访问互联网上的服务时,大多数时,客户端并不是直接访问到服务端的,而是客户端首先请求到反向代理,反向代理再转发到服务端实现服务访问,通过反向代理实现路由/负载均衡等策略。这样一来在服务端拿到的客户端IP将是反向代理IP,而不是真实客户端IP,因此需要一种办法来获取到真实客户端IP。如下图所示转载 2017-02-07 13:57:56 · 739 阅读 · 0 评论 -
HTTP请求错误400、401、402、403、404、405、406、407、412、414、500、501、502解析
HTTP 错误 400 400 请求出错 由于语法格式有误,服务器无法理解此请求。不作修改,客户程序就无法重复此请求。 HTTP 错误 401 401.1 未授权:登录失败 此错误表明传输给服务器的证书与登录服务器所需的证书不匹配。 请与 Web 服务器的管理员联系,以确认您是否具有访问所请求资源的权限。 401.2 未授权:服务器的配置导致登录失败 此错误表明转载 2017-01-12 10:47:38 · 1537 阅读 · 0 评论 -
美团外卖订单中心的演进
前言美团外卖从2013年9月成交第一单以来,已走过了三个年头。期间,业务飞速发展,美团外卖由日均几单发展为日均500万单的大型O2O互联网外卖服务平台。平台支持的品类也由最初外卖单品拓展为全品类。随着订单量的增长、业务复杂度的提升。外卖订单系统也在不断演变进化,从早期一个订单业务模块到现在分布式可扩展的高性能、高可用、高稳定订单系统。整个发展过程中,订单系统经历了几个明显的阶段,下转载 2017-01-19 09:13:03 · 1203 阅读 · 1 评论 -
淘宝高可伸缩高性能架构的相关框架介绍
一应用无状态(淘宝session框架)俗话说,一个系统的伸缩性的好坏取决于应用的状态如何管理。为什么这么说呢?咱们试想一下,假如我们在session中保存了大量与客户端的状态信 息的话,那么当保存状态信息的server宕机的时候,我们怎么办?通常来说,我们都是通过集群来解决这个问题,而通常 所说的集群,不仅有负载均衡,更重要的是要有失效恢复failover,比如tomcat采 用的集群节点转载 2017-01-19 09:13:48 · 362 阅读 · 0 评论