软件设计
Java海洋
从事JAVA 开发,大数据开发10多年,目前在一家互联网公司做技术负责人
展开
-
解读spring源代码心得
spring对于研究mvc框架和其他技术有很深的意义.所以努力研究spring源代码很有重要意义,如何解读源代码,很多人困惑,本人在写这篇东西的时候,也是经过了几个月的时间的摸索才有了一点眉目,希望与spring的爱好者共同分享.一,如何解读某某特定功能的某些源代码.1 比如,本人想知道spring是如何解析xml文件的,那么应该解读哪些java文件呢?我们就带着这个问题,找到哪些源文件,转载 2012-10-12 11:00:52 · 4563 阅读 · 0 评论 -
一位10年Java工作经验的架构师聊Java和工作经验
黄勇( 博客),从事近十年的 JavaEE 应用开发工作,现任阿里巴巴公司系统架构师。对分布式服务架构与大数据技术有深入研究,具有丰富的 B/S 架构开发经验与项目实战经验,擅长敏捷开发模式。国内开源软件推动者之一,Smart Framework 开源框架创始人。热爱技术交流,乐于分享自己的工作经验。著有《架构探险——从零开始写Java Web框架》一书。我的十年技术之路CSDN:转载 2015-09-10 13:44:26 · 90361 阅读 · 32 评论 -
淘宝,京东,苏宁易购技术架构(路线)分析和比较
最近因为参与项目的关系,对淘宝,京东,苏宁易购三家网站系统构架做了肤浅的研究,做了几张图,放在下面,给需要的同学。因为资料的不完整,有些可能不准确或是错误的,肯请各位指正。这三家代表了三种流派,淘宝走的是开源路线,个人也比较推崇这种方式,但对技术人员的要求较高,比较少有公司勇于走这种路线,可能只有马云这种对技术不懂的,才能放手让技术人员自由发展。转载 2015-05-12 08:34:03 · 2750 阅读 · 0 评论 -
TCP三次握手及四次挥手详细图解
下面是看到的一个帖子。给大家贴进来。。提前声明不是我自己写的哦。在这个神奇的国度,每个地方都有拥堵问题,公交站台,景区门口,银行柜台,甚至食堂窗口,大家都用同一种办法来解决这个问题:排队。所以我一直很纳闷,12306 为什么一开始没有实现排队的功能,是领导拍了脑袋?还是有其它不为人知的原因?废话少扯,还是说正经的吧。Redis 用在这里,不仅仅是一个 NoSQL 存储工转载 2012-10-09 11:06:29 · 1292 阅读 · 0 评论 -
负载均衡的基本算法
负载均衡的基本算法,主要有以下几种(参考F5产品):随机:负载均衡方法随机的把负载分配到各个可用的服务器上,通过随机数生成算法选取一个服务器,然后把连接发送给它。虽然许多均衡产品都支持该算法,但是它的有效性一直受到质疑,除非把服务器的可运行时间看的很重。轮询:轮询算法按顺序把每个新的连接请求分配给下一个服务器,最终把所有请求平分给所有的服务器。轮询算法在大多数情况下都工作的不错,但是如果负转载 2013-08-05 18:04:01 · 1203 阅读 · 0 评论 -
一个完整的负载均衡的例子
原理:tomcat 做个WEB服务器有它的局限性,处理能力低,效率低。承受并发小(1000左右)。但目前有不少网站或者页面是JSP的。并采用了tomcat做为WEB,因此只能在此基础上调优。目前采取的办法是Apache + Mod_JK + tomcat 来解决一部分请求,用户访问的是apache,但有jsp页面的时候才会去请求tomcat。如果量一大,那么tomcat无法承受,那么只能做转载 2013-08-01 15:07:12 · 5476 阅读 · 0 评论 -
log4j配置详解
log4j.properties 使用一.参数意义说明输出级别的种类ERROR、WARN、INFO、DEBUGERROR 为严重错误 主要是程序的错误WARN 为一般警告,比如session丢失INFO 为一般要显示的信息,比如登录登出DEBUG 为程序的调试信息配置日志信息输出目的地log4j.appender.appenderName = fully.qua原创 2013-07-10 14:40:23 · 876 阅读 · 0 评论 -
apache+tomact+db详解
一、先从J2EE工程的通用架构说起这是一个通用的Web即B/S工程的架构,它由:ü Web Serverü App Serverü DB Server三大部分组成,其中:² Web Server置于企业防火墙外,这个防火墙,大家可以认为是一个CISCO路由器,然后在CISCO路由器上开放了两个端口为:80和4转载 2013-02-01 15:14:35 · 2226 阅读 · 1 评论 -
设计模式的精髓
设计软件的几个原则,这个也是设计模式的精髓所在: 一、 开闭原则(OCP)开闭原则(Open-Closed Principle):一个软件实体应当对扩展开放,对修改关闭。客户的需求是不稳定的,通过扩展已有的软件系统而不是通过修改软件系统来满足客户的需求,这样的软件系统就满足开-闭原则,即软件系统要有一定的灵活性和适应性。已有的模块,特别是抽象层的模块不能修改,保证软件系统的稳定原创 2013-03-22 16:54:56 · 1620 阅读 · 1 评论 -
JAVA定时调度框架Quartz使用案例
背景: 近期项目中遇到跨区调拨商品的需求,比如A区和B区,需要判断A区或者B区某种sku是否需要从对方库调拨商品来补充货源,避免因缺失商品而出现订单延误,影响销售和对用户产生不良影响。问题: 数据量庞大,如果当查看的时候去获取数据,那么会严重影响系统的性能,甚至导致数据库和应用服务器无法响应。解决方案:原创 2013-03-13 16:53:31 · 1690 阅读 · 0 评论 -
java软件的扩展性研究
公司对基础软件平台的扩展性研究团队开始设立,我初定了如下的研究方向,欢迎大家补充。同时也希望能够给java开发者对于构建高扩展性java架构提供一些参考。 主要是分为:应用扩展性、数据扩展性、可复用扩展性、技术换代扩展性四个维度,另外增加了SAAS、PAAS架构研究方向。 主题一应用扩展性研究 1.应用包+服务器托管模式的多应用架构研究 该研究转载 2013-04-02 17:27:49 · 1200 阅读 · 1 评论 -
Apache+Tomcat负载均衡及Session绑定的实现
集群背景介绍1.1 术语定义 服务软体是b/s或c/s结构的s部分,是为b或c提供服务的服务性软件系统。 服务硬体指提供计算服务的硬件、比如pc机、pc服务器。 服务实体通指服务软体和服务硬体。 客户端指接受服务实体服务的软件或硬件。 1.2 两大关键特性 集群是一组协同工作转载 2013-02-01 15:16:58 · 1444 阅读 · 0 评论 -
java服务器在Linux下实现负载均衡
我们需要在前端放置一个Apache作为负载均衡器,后 台有若干台Apusic或者其它的类似于Tomcat/WebLogic等应用服务器,客户端发送到Apache的请求,将被分配到后台的这些真正完成请 求的服务器上。本文描述如何使用Apache作为负载均衡器的方法和不同的负载均衡的配置。 在某些场景中,我们需要在前端放置一个Apache作为负载均衡器,后台有若干台Apusic或者转载 2013-01-14 17:13:58 · 2175 阅读 · 0 评论 -
Struts2中的FilterDispatcher和StrutsPrepareAndExecuteFilter的区别
在Struts2开发中,很多人问到,声明过滤器的时候,为什么有的时候用"FilterDispatcher",而有的时候用"StrutsPrepareAndExecuteFilter"?两者都可以正常工作,那区别是什么呢?1. FilterDispatcher 例子 ...filter> filter-name>struts2filter-name> filt原创 2012-11-12 09:56:58 · 12272 阅读 · 4 评论 -
高并发网络架构解决方案
1:html静态化2:图片服务器分离3:数据库集群4:缓存5:负载均衡大型高并发高负载网站的系统架构我在Cernet做过拨号接入平台的搭建,而后在Yahoo3721负载搜索引擎前端平台开发,又在猫扑处理过大型社区猫扑大杂烩的架构升级等工作,同时自己接触和开发过不少大中型网站的模块,因此在大型网站应对高负载和并发的解决方案上有一些积累和经验,可以和大家一起探讨一下。原创 2012-10-31 17:18:26 · 1649 阅读 · 0 评论 -
java常用设计模式应用案例
设计模式;一个程序员对设计模式的理解:“不懂”为什么要把很简单的东西搞得那么复杂。后来随着软件开发经验的增加才开始明白我所看到的“复杂”恰恰就是设计模式的精髓所在,我所理解的“简单”就是一把钥匙开一把锁的模式,目的仅仅是着眼于解决现在的问题,而设计模式的“复杂”就在于它是要构造一个“万能钥匙”,目的是提出一种对所有锁的开锁方案。在真正理解设计模式之前我一直在编写“简单”的代码.这个“简转载 2012-10-12 16:15:08 · 11123 阅读 · 4 评论 -
Spring 源代码阅读指南
本文说明2点:1.阅读源码的入口在哪里?2.入门前必备知识了解:IOC和AOP一、我们从哪里开始 1.准备工作:在官网上下载了Spring源代码之后,导入Eclipse,以方便查询。2.打开我们使用Spring的项目工程,找到Web.xml这个网站系统配置文件,在其中找到Spring的初始化信息:listener> listener-class>org.springfra转载 2012-10-12 11:27:00 · 1907 阅读 · 0 评论 -
谈谈微服务中的 API 网关(API Gateway)
前言又是很久没写博客了,最近一段时间换了新工作,比较忙,所以没有抽出来太多的时间写给关注我的粉丝写一些干货了,就有人问我怎么最近没有更新博客了,在这里给大家抱歉。那么,在本篇文章中,我们就一起来探讨一下 API 网关在整个微服务分布式架构中的一个作用。背景我们知道在微服务架构风格中,一个大应用被拆分成为了多个小的服务系统提供出来,这些小的系统他们可以自成体系,也就是说这些小系统可以...转载 2018-07-17 21:34:36 · 1180 阅读 · 0 评论