摘要: 假如你有个地域性很强的导购网站,在北京有个子站,在杭州又有一个,两个子站在后台对应单个JAVA应用。这时你会怎么设计URL的结构以区别不同的子站? 用hangzhou.hello.com/xxx代表杭州,beijing.hello.com/xxx代表北京;或者是hello.com/hangzhou/xxx代表杭州,hello.com/beijing/xxx代表北京;或者干脆都用统一的hello.com/xxx,让服务端记住用户在首页的选择然后根据这个信息来判断? 这些方案各有利弊。我最推荐子域名区隔方案(hangzhou.hello.com/xxx),因为它在代码容错方面有突出的优势。要解决的 阅读全文
posted @ 2013-01-14 12:30 chenjianjx 阅读(1020) 评论(0) 推荐(0) 编辑
摘要: 这里的页面静态化是指前端的一个页面(或页面中的一个元素)使用纯静态html,然后通过ajax读取后端的json/xml数据,以获得动态内容。 它的反面是普通的MVC技术:用户请求发出后,先让后端取得数据,再直接渲染到jsp/asp/php等动态页面脚本上。 后端逻辑的可重用性是指:新建一个页面(或页面中的一个元素)时,只需新写View层代码(html或jsp),后端可以不改或者改得很少。 跟普通MVC相比,页面静态化方案可以使后端逻辑更容易重用。这是因为:1. 静态化方案中的数据模型职责往往比较单一,而普通MVC中的数据模型中可能掺杂页面逻辑相关的东西,导致不可重用。2. 静态化方案天然支持“ 阅读全文
posted @ 2012-11-16 17:03 chenjianjx 阅读(1176) 评论(0) 推荐(0) 编辑
摘要: 如何回答这个问题:答案见附件中的ppt:http://files.cnblogs.com/chenjianjx/%E6%A0%B9%E6%8D%AE%E5%AD%90%E7%B3%BB%E7%BB%9F%E7%9A%84%E6%80%A7%E8%83%BD%E6%8E%A8%E5%AF%BC%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F%E7%9A%84%E6%80%A7%E8%83%BD-%E5%8D%95%E7%BA%BF%E7%A8%8B%E7%89%88-v20120912.ppt 阅读全文
posted @ 2012-09-25 08:42 chenjianjx 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 对于一个网站,已知服务端的服务线程数和处理单个请求所需的时间时,该如何算出高并发时用户从点击链接到收到响应的时间?注意这个时间并不等于服务端处理单个请求的时间,因为高并发时,很多用户请求需要排队等待,你要把这个额外的等待时间算进去。这个问题很重要,因为它的结果直接影响你的网站的用户体验。这篇文章就是来帮你算这个时间的。你可以使用本文附带的程序来算,也可以通过本文提炼出的公式来算。另外还有一个问题:所谓RT(响应时间)和QPS,究竟要不要考虑用户请求的排队等待时间? 本文认为,对于RT我们应该区分出“服务器眼中的RT”和“客户端眼中的RT”,但对于QPS却不必区分。后文会辨析这些概念,同时还会给 阅读全文
posted @ 2012-09-12 13:43 chenjianjx 阅读(6812) 评论(0) 推荐(1) 编辑
摘要: MySQL Jdbc驱动在默认情况下会无视executeBatch()语句,把我们期望批量执行的一组sql语句拆散,一条一条地发给MySQL数据库,直接造成较低的性能。 只有把rewriteBatchedStatements参数置为true, 驱动才会帮你批量执行SQL (jdbc:mysql://ip:port/db?rewriteBatchedStatements=true)。不过,驱动具体... 阅读全文
posted @ 2012-08-14 14:06 chenjianjx 阅读(26578) 评论(1) 推荐(4) 编辑
摘要: 网上能找到的OSGi教程,都喜欢在开篇时就教你如何在eclipse里做一个OSGi的东西,就算你跟着做了(如果有足够的耐心),还是不知道OSGi是怎么一回事;更可气的是,这些教程还会配上大段大段的eclipse截图,以达到浪费篇幅的目的。鉴于这种情况,我只好找本英文OSGi书看了看。这本书上没有eclipse截图,我看时觉得很满意,所以顺便把入门部分微缩一下,给大家做个简短的教程。Why OSGi? OSGi用于在同一个JVM内部实现“模块化” (“组件化”)。首先,它用来实现模块化,提供模块化的一些常见特性:1. 模块向外只暴露特定的接口,内部实现对外不可见2. 模块可独立部署3. 像服务治 阅读全文
posted @ 2012-05-24 15:41 chenjianjx 阅读(5584) 评论(2) 推荐(5) 编辑
摘要: 常听到有人说异步计算比同步计算性能要好,把前后台系统的交互方式做成异步,可以减少阻塞,从而缩短系统整体的响应时间。听起来很有道理,但这个说法有点跳跃,让人不免疑惑。比如说,谁的阻塞减少了?虽然少了阻塞时间,但服务器执行一个请求所需的时间还是要那么多,响应时间怎么被缩短了?我在网上搜了搜,没有找到答案,只好自己来解答。答题时我画了些图来推演上述理论,并最终说服了自己;下面就来分享这些图,但愿你看完后,能有所收获。如果你只想知道结论,请直接跳到第2章。1. 图示异步计算与响应时间的关系1.1. 虚拟场景及概念定义假设系统的应用由前端和后端两部分组成,前端模块接收用户请求,转发给后端模块;后端模块处 阅读全文
posted @ 2012-03-27 22:05 chenjianjx 阅读(3579) 评论(1) 推荐(0) 编辑