自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 收藏
  • 关注

转载 MessagePack简析

一、MessagePack是什么先看官方的定义:MessagePack是一种高效的二进制序列化格式。它允许您像JSON一样在多个语言之间交换数据。但是,它更快并且更小。从官方定义中,可以有如下的结论:MessagePack是一个二进制序列化格式,因而它序列化的结果可以在多个语言间进行数据的交换。从性能上讲,它要比json的序列化格式要好。...

2018-02-14 21:31:00 721

转载 容量规划

容量规划是个资源管理的命题,其目标是解答运行中的系统需要多少容量以及在什么时候需要这些容量的问题,更简单的说法就是回答我们需要在什么时候加多少机器的问题。容量规划整体上是一个从上到下,再从下到上的一个过程,先是明确公司整体的目标,而后各个业务域和系统进行拆解,估算出系统的需求,而后再逐步汇总,统计出整个公司对各种机器资源的需求量和到位进度。一、明确公司或系统核心指标...

2018-01-20 21:25:00 337

转载 大促准备(十)备注

上面的步骤虽然是有先后顺序的,但是在真正执行时并不是单向的,而是会有跳跃或者反复的检讨总结非常重要,确保不要犯重复的问题信任但需要确认,一定要确认,一定要确认,一定要确认,不放过任何一个预料之外的现象,要找到问题的根源并予以解决,而不能有侥幸心理转载于:https://www.cnblogs.com/sunzhenchao/p/7834409.html...

2017-11-14 20:15:00 219

转载 大促准备(九)复盘

老话讲:失败是成功之母,然而如果下一次的尝试时还是用上次失败时的老方法大概率还是要失败。因而更确切的说法是检讨是成功之母,失败了但进行了检讨找到了问题的根源,然后进行修正,用修正后的方法再次进行尝试获得成功的可能性将会大大增加。复盘的作用就是如此,一方面总结在大促准备过程中碰到的问题,避免下次再犯;另一方面是把这个过程中的经验抽象总结为方法论,形成套路,为之后的同学减少障碍。比如这个...

2017-11-14 20:14:00 136

转载 大促准备(八)大促当天执行

经过了前面的各种准备,大促终于到了,在大促当天要关注的事情也是相当多的,需要有条不紊的按部就班的执行。1.值班安排大促期间执行、验证、观察的事项还是比较多的,最好是有两个人进行主备,每一件事情最好能够double check,并且做好事项的分工。2.应用服务器磁盘空间清理|重启系统在运行过程中通常会打印多种的日志,日志打印的速度要比系统的执行速度慢上不少,如果在打印日志的...

2017-11-14 20:13:00 250

转载 大促准备(七)压测

压测分为全链路压测和单系统服务接口压测两种,对于全链路压测要准备的事情和要改造的东西是特别多的,是一个相对庞大的系统工程,大致业务架构如下,可以单独列出一个系列来讲,这里只讲单系统的服务接口压测。压测可以选择的框架有多种,可以根据系统所采用的代码、熟悉程度等选择一个,更好的方式是在开源的压测框架之上开发一个压测平台,降低学习成本,方便统一管控。下面的流程是假设公司内部有统一的压测...

2017-11-14 20:12:00 163

转载 大促准备(六)预案配置和演练

一.为什么要有预案事有轻重缓急,对于一个系统也是如此,在大促期间通常会将系统中一些不太重要的业务或操作给降级,比如详情日志打印、营销类的消息、业务控制等,将资源用于大促中不得不操作的业务上;或者在大促过程中进行链路的切换,比如启用近端、启用异步执行或者合并执行等。一个系统通常有多个这样的操作,如果一个一个执行,操作的工作量、确认工作量、总执行耗时都会比较大,并且容易造成遗漏,因为为了...

2017-11-14 20:11:00 263

转载 大促准备(五)压测改造

压测是准备大促过程中至关重要的一个环节,在真正开始压测之前系统通常要做一定的改造,以使得压测请求的代码执行路径更符合实际情况,主要进行的改造和准备主要有如下内容1、存储准备对于压测服务中涉及到db(msyql、hbase、ob)的系统,在压测前需要联系DBA、PE先准备好所需的压测表。对于缓存(tair、tbase)也需要进行压测缓存key和正式key区隔处理,可以和zcache...

2017-11-14 20:10:00 155

转载 大促准备(四)限流配置

限流主要是针对非核心服务调用者进行的。1、确定限流对象原则上,大促核心链路上的服务都要配置限流,以免大促期间的流量超过预估值把服务器压垮。同时还要考虑出口限流,主要是对db的限流,配置一个读写总流,以避免把服务器压垮。2、确定限流实现方式限流实现方式主要有两种:对Facade包中inteface的方法配置限流定义一个专门的service,这个service中的...

2017-11-14 20:09:00 140

转载 大促准备(三)资源估算

这里的资源估算,主要是指系统使用的应用服务器数量的估算,对于存储及中间件的机器需求对应的pe及dba会进行估算,我们主要是进行验证。应用服务器的估算简单的说就是:服务调用总量/单机容量。然而在真正操作时需要注意下面因素:大多数系统是分zone部署的,因而需要把总的服务调用量按照服务分布转换为对应zone的调用总量每一个zone通常会提供多个服务,但这些服务...

2017-11-14 20:07:00 132

转载 大促准备(二)调用量统计

一、接口调用统计询问上游调用方或总pm在大促期间对我们系统对应服务的调用峰值及峰值发生时间、是否为强依赖。编号服务峰值峰值时间所在zone场景调用方是否强依赖...

2017-11-14 20:06:00 231

转载 大促准备(-)态度意识

一、大促无小事大促是服务端系统的头等大事,是自身技术水平、业务了解程度最好的检验场,也是扩大自身影响力最好的舞台。在大促准备过程中对于任何不符合预期的动态需要百分之百的重视,确保了解背后的原因,评估其影响,如果不能彻底消除,必须要有相应的预案和对策,并且这些预案和对策是经过验证可行的。二、信任但要确认大促准备过程中会有大量的协同工作,比如弹性机房的各种配置、上游系统的降级预案...

2017-11-14 20:05:00 102

转载 消息投递保证

一.消息投递保证分类消息的投递保证主要是三种形式:1.At most once—Messages may be lost but are never redelivered.最多一次 --- 消息可能丢失,但绝不会重发。2.At least once—Messages are never lost but may be redelivered.至少一次 --- 消息绝...

2017-08-16 21:31:00 152

转载 面试总结

最近一直在进行面试,每一位面试者都需要花费30~40分钟的时间,对此进行了下简单的总结,概况起来有如下内容:1.确定基本的要求,明确需要具备的素质和能力2.从应聘者自己的工作出发,了解其考虑问题的思路,有没有全面详细的考虑,在工作过程中主要解决的难题是什么?解决的思路是什么?对自己工作中用到的那些技术进行了深入的了解?3.对工作的内容有没有进行总结,工作内容如何能够复制到其他的类似场...

2017-07-28 23:05:00 61

转载 一次young gc耗时过长优化过程

1 问题源起上游系统通过公司rpc框架调用我们系统接口超时(默认超时时间为100ms)数量从50次/分突然上涨到2000次/分,在发生变化时间段里我们的系统也没有做过代码变更,但上游系统的调用确发生了变化。由于处于主要链路上,sre同学找过来询问原因,所以开始了问题排查。2 问题初步定位排查rpc超时的基本思路是这样的:1) 服务端处理确实超时...

2017-04-14 22:42:00 1090

转载 java 非阻塞算法实现基础:unsafe类介绍

一、为什么要有Unsfae、我们为什么要了解这个类1. java通常的代码无法直接使用操作底层的硬件,为了使java具备该能力,增加了Unsafe类2.java的并发包中底层大量的使用这个类的功能,了解这个类有助于了解java 并发包,理解为什么并发包中的类的并发性能为什么会比使用synchronized好二、Unsafe的主要功能1.读功能 读功能有两...

2017-03-13 11:14:00 98

转载 make no mistake, we are the last line of defense.

make no mistake, we are the last line of defense.转载于:https://www.cnblogs.com/sunzhenchao/p/6206155.html

2016-12-21 01:15:00 84

转载 tcp为什么需要3次握手4次挥手

一、起因 在网络请求中,为了提升性能,通常会采用长连接的方式避免在每一次交互都进行网络链接的创建和关闭,而长连接就是tpc的链接方式。因而有必要对tcp的创建链接和关闭有所了解。在网络上查询了一些知识,加以理解,整理成了如下的总结,然后给组装到自己的认识体系中。二、创建链接三次握手 tpc创建链接需要三次握手: 1)client 发送链接请...

2016-12-19 14:49:00 67

转载 xfire框架内部基本结构解析

1 概述xfire是webservice的一个实现框架,是apache旗下CXF的前身,是一个比较被广泛使用的webservice框架,网上有很多关于如何使用xfire或cxf的hello world案例,但是对于它是如何运行起来的介绍比较少,最近在排查问题时对xfire的代码进行了debug,因而对xfire的运行有了大概了解,在此进行下简单总结。 2 Service...

2015-12-24 18:09:00 187

转载 电商大促准备流程v2

1 概述对于电商企业而言,每年都会有几次大的促销活动,像双十一、店庆等,对于第一次参加这个活动的新手,难免会有些没有头绪,因而将自己参加双十一、双十二活动中的过程心得进行下总结,一方面供以后工作中继续使用,另一方面也供大家参考。 2 主链路梳理当前主流的IT架构基本上都是SOA的架构,一个业务的完成需要多个系统的参与,这些参与的系统便形成一个链路。而主链路就是双十一...

2015-12-02 19:15:00 343

转载 目标 实现 方法

早上在用电脑的时候,突然发现C盘的剩余空间只有十几M了,想安装 一个新的软件都装不了。在联想到最近电脑变得越来越慢,应该和C盘的剩余空间过小有关,因而就动了清理下C盘空间的念头。 之前觉得最有效率的方法是重装系统,这样C盘的空间一下子能够空出不少。重装系统那就找系统盘,就找到了以前在电脑F盘中的GHO文件,拷到了一个U盘中,然后重启电脑,开始设置启动顺序。折腾了两三次,但总是提示“需要...

2015-07-25 22:01:00 150

转载 提高Java代码质量:使用枚举定义常量(转)

一、分析常量的声明是每一个项目中不可或缺的,在Java1.5之前,我们只有两种方式的声明:类常量和接口常量。不过,在1.5版之后有了改进,即新增了一种常量声明方式,枚举常量。代码如下:enum Season{ Spring,Summer,Autumn,Winter; } 二、场景那么枚举常量与我们的经常使用的类常量和静态常量比有什么优势呢?1.枚举...

2014-12-03 15:54:00 87

转载 各种字符串Hash函数比较(转)

常用的字符串Hash函数还有ELFHash,APHash等等,都是十分简单有效的方法。这些函数使用位运算使得每一个字符都对最后的函数值产生影响。另外还有以MD5和SHA1为代表的杂凑函数,这些函数几乎不可能找到碰撞。常用字符串哈希函数有BKDRHash,APHash,DJBHash,JSHash,RSHash,SDBMHash,PJWHash,ELFHash等等。对于以上几种哈希函数...

2014-10-17 14:56:00 63

转载 osgi:设置httpservice端口号

使用osgi开发http类的Service,在启动时默认端口是80。但有可能这个端口已经被本机上的其他程序占用。那么解决问题的方法有两种:1)关闭或修改占用程序的端口; 2)修改osgi启动时的端口。修改osgi启动时的端口号也很简单,在你的run configurations 中的参数列表中中的vm参数中进行添加即可,具体如下图:转载于:https://www.cnblog...

2014-10-03 17:53:00 210

转载 osgi: HttpService A null service reference is not allowed.

最近在学习osgi,在练习HttpService的过程中,一直出现“A null service reference is not allowed”这样的报错,代码本身没有问题,在网上也搜了不少地方,在《深入理解OSGi》、《osgi原理与最佳实践》这两本书中也没有找到具体的解决方法。万般无奈,只好靠自己了,经过多次尝试,一次无意间配置osgi run Configuration时选择了...

2014-09-05 16:09:00 367

转载 Java Web中涉及的编解码

用户从浏览器发起一个HTTP请求,存在编码的地方是URL、Cookie、Paramiter。服务器端接收到HTTP请求后要解析HTTP协议,其中URL、Cookie和POST表单参数要解码,服务器端可能还需要读取硬盘数据(数据库、文件),这些数据都可能存在编码问题。当Servlet处理完所有请求的数据后,需要将这些数据再编码通过Socket发送到用户请求的浏览器里,再经过浏览器解码成为文...

2014-08-11 15:44:00 152

转载 http协议之cookie标准RFC6265介绍

cookie是现代web系统开发中非常重要的一个技术,最近对cookie标准RFC6265进行了了解,从中选取了部分内容。1.cookie的主要作用因为HTTP协议是无状态的,对于一个浏览器发出的多次请求,WEB服务器无法区分是不是来源于同一个浏览器。所以,需要额外的数据用于维护会话。 Cookie 正是这样的一段随HTTP请求一起被传递的额外数据。2.cookie的主要作用...

2014-08-07 19:15:00 416

转载 信息传输完整性、保密性、不可抵赖性实现

信息传输完整性--通过消息摘要实现先通过摘要算法对要传输的信息进行计算得到摘要信息,而后将摘要信息一并传输给接收方。接收方收到信息后,采用相同的摘要算法对原始信息进行计算得到一个摘要信息,而后和从发送方传递的摘要信息比对,如果相等,则表示信息完整,没有被篡改。信息的保密性--通过对称加密算法实现,再将对称密码加密后发送到接收方利用对接加密算法对要传输的信息进行加密,而后...

2014-06-11 19:42:00 4171

转载 web开发基础--字节序

字节是网络传输上的最小单位,是web开发中需要了解的一个知识点。1.有效位在谈字节序前需要先了解有效位,有效位分为两种:最低有效位(LSB: Least Significant Bit) 和最高有效位(MSB:Most Significant Bit)。在二进制数中,LSB是最低加权位,与十进制数字中最右边的一位类似;MSB是最高加权位,与十进制数字中最左边的一位类似。通常,MS...

2014-05-27 13:58:00 79

转载 CDN和镜像站点比较

CDN和镜像站点是常用的提高网站访问速度的两种方式,但这两种方式具体是什么、二者间有什么相同和不同之处,本文对此做一粗浅介绍。一、镜像站点1.1定义镜像网站是指将一个完全相同的网站源程序放到几个服务器,分别有自己独立的URL,在这些服务器上互为镜像网站。它和主站并没有太大差别,或者可算是为主站作的后备措施。有了镜像网站的好处是:如果不能对主站作正常访问(如某个服务器死掉...

2014-03-07 15:05:00 341

转载 java 之DelayQueue实际运用示例

在学习Java 多线程并发开发过程中,了解到DelayQueue类的主要作用:是一个无界的BlockingQueue,用于放置实现了Delayed接口的对象,其中的对象只能在其到期时才能从队列中取走。这种队列是有序的,即队头对象的延迟到期时间最长。注意:不能将null元素放置到这种队列中。Delayed,一种混合风格的接口,用来标记那些应该在给定延迟时间之后执行的对象。此接口的实现必...

2014-01-11 16:21:00 571

转载 JVM之---垃圾回收

JVM通过GC来回收堆和方法区中的内存,GC的基本原理首先会找到程序中不再被使用的对象,然后回收这些对象所占用的内存。1.收集器 通常采用收集器的方式实现GC,主要的收集器有引用计数收集器和跟踪收集器。 1.1引用计数收集器 引用计数收集器采用的是分散式的管理方式,通过计数器记录对象是否被引用。当计数器为零时,说明此对象已经不再被使用,于是可进行回收。...

2013-12-20 16:59:00 79

转载 Redis与Memcached简单对比(转)

很多开发者都认为Redis不可能比Memcached快,Memcached完全基于内存,而Redis具有持久化保存特性,即使是异步的,Redis也不可能比Memcached快。但是测试结果基本是Redis占绝对优势。一直在思考这个原因,目前想到的原因有这几方面。Libevent。和Memcached不同,Redis并没有选择libevent。Libevent为了迎合通用性造成代码...

2013-12-13 15:27:00 81

转载 JVM之---Java源码编译机制

Sun JDK中采用javac将Java源码编译为class文件,这个过程包含三个步骤: 1.分析和输入到符号表(Parse and Enter) Parse过程所做的工作有词法和语法分析。词法分析要完成将代码字符串转变为Token序列。语法分析则是根据语法将Token序列生成抽象语法树。 Enter过程将符号输入到符号表,通常包括确定类的超类型和接口、...

2013-11-27 17:43:00 83

转载 高性能网站建设指南---前端工程师技能精髓

题记:无意间在公司图书馆看到这本书,感觉内容写得很不错,很细很有条理。虽然自己并非前端工程师,然而也需要对此有所了解,供以后在架构设计、系统优化时考虑这些因素,特在此将对该书进行摘录,供不时之需。也希望有更多的同行能够了解到这本书,进而提升自己所负责网站的展现速度,给与用户更好地访问体验。 只有10-20%的最终用户响应时间花在了下载HTML文档上。其余的80-90%...

2013-10-24 16:48:00 171

转载 Mybatis之reflection包源代码解析(一)

一、序言 Mybatis作为ORM,实现了对象与关系数据库间的映射。Mybatis中的映射包含两个方面: 1.将对象中的值(parameterType所指定的对象)映射到具体的sql中,例如: <insert id="insertAuthor" parameterType="domain.blog.Author"> insert into Author...

2013-09-18 11:00:00 248

转载 Mybatis源代码分析之parsing包

parsing,从字面上理解就是编译解析的意思,那么这个包中的内容就应该和mybatis配置文件的编译解析有关系。本文首先会按照引用层次来分别介绍这个包中各个类的作用,而后再用实际的例子解释它们是如何组合到一起去解决了什么样的问题。一、类和接口介绍1.TokenHandlerpublic interface TokenHandler { String handleT...

2013-06-28 16:15:00 181

转载 Java代码质量检查工具汇总

最近在研读Mybatis的源代码,发现其官网上列出了几个报告,这几个报告都是关于Mybatis代码质量的:http://mybatis.github.io/mybatis-3/project-reports.html因而百度了相关的资料:JDepend http://www.blogjava.net/hengheng123456789/archive/2007/...

2013-06-14 18:50:00 96

转载 Mybatis源代码分析之包间依赖介绍(一)

通常而言,作为一个系统中的类、接口和注解,或多或少都会被该系统中其他的类、接口或者注解所引用,相互间存在着被我们称为继承、实现、组合、关联、依赖等关系。但是有时出于系统版本的迭代升级,一些类、接口和注解慢慢的不再被系统中的其他类所调用;或者是其提供的功能相对独立,与系统中其他类、接口和注解没有关系。一个正式商用的系统中的类文件没有上万也有数千个,但如何才能发现这些类间的关系?难道要一...

2013-06-14 17:00:00 46

转载 团购结算系统多台web服务器全国上线小结

最近负责的一个项目全国上线,这个系统从2013年2月份开始先进行了6个城市为期4个月的试用,新增了不少关于系统可用性及系统在试用过程中业务方希望添加的功能,同时也修正了几个发现的bug。因为试用期只有6个城市,因而也没有做负载均衡,只是使用了一台web服务器;而全国上线时却有130多个城市,经测算预计访问量将增加20倍左右,为了防止访问量增加而导致web服务器性能下降,同时也为防止一台w...

2013-05-27 19:21:00 81

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除