2018-09-28

redis

持久化:AOF/RDB

IO多路复用:select epoll evport kqueue

Nmap 虚拟内存 内存映射

网络转换 分发

binlog记录过程

redis 的AOF 只记录结果

内存数据结构 支持更多的数据结构 相对于memcached

linux

pgm -A `armory -leg projectnamehost` "grep 'Exception' /home/admin/projectname/logs/service.log"

BIONIOAIO

BIONIOAIO

aone/spring/maven

aone

  • 构建:分支合并、编译

  • 打二方包

  • 部署

  • 发布

  • 代码规约

  • 集成测试

    构建常见的问题:

    1. 环境变量缺失
    2. 多分支构建时,找不到某个类的某个方法/某个变量,但是本地编译ok,啥原因?

分批发布:保持对外提供的服务在线,不影响线上使用;

第一批暂定:观察,看日志,

## alitomcat&pandora

  1. tomcat原理

    启动时会加载自己lib/库,以及应用程序的lib,以及应用程序类class。

    自身类库与应用程序所依赖类库的隔离,如何实现的?

    通过类加载器实现的

    jvm的3种加载器:启动类加载器、扩展加载器、系统加载器

    jsp是怎么被编译的,加载器的机制是怎么样的?

    jsp是一个servlet,被类加载器加载

  2. Spring-boot与tomcat的关系

    spring-boot集成了tomcat,所以spring-boot可以直接执行main()函数进行启动,或者执行jar相关命令即可

    而传统的tomcat启动方式,需要依赖startup.sh启动脚本

    spring-boot

    的优点和缺点?优点很多,总结成一句话—减少各种配置、集成时间,提高开发和调试效率

  3. war包结构

    web应用打成war包之后,tomcat在部署时会先对其解压,解压后形成webapp/WEB-INF/classes和webapp*/WEB-INF/lib,classes下面放的是你的java包。

    spring-boot之后,我们打的是jar包,解压生成的是webapp**/BOOT-INF

    发布完成之后,需要去服务器上看看这个目录,尤其是lib目录。尤其是当出现jar包冲突时,更要看看,是否真的有两个一样的jar包在该目录下

HSF(同步调用)

hsf定义:添加hsf注解

hsf消费:spring-boot:在config中通过@Consumer注解定义

注意:

  1. 确定好自己服务的超时时间,一般是3秒;时间过长,占用连接池,阻塞应用
  2. 异常处理,hsf接口返回值一般都封装为result。为什么要封装?和http访问一样,status,定义友好的返回信息
  3. 调用hsf服务时,要先判断result.isSuccess,接下来判断result.data是否为null或者列表是否为空,否则可能NPE
  4. 循环调用:循环调用别人的hsf服务时,要控制循环次数,如果超过20次,容易把别人的hsf线程池打爆。如何解决?循环要控制次数
  5. 限流与降级:大促期间根据qps,进行限流和降级。
  6. 入参大小控制:如果上游调用时传入的参数很大,如果调用很频繁、并且内部处理很耗时,会导致什么结果?频繁GC、甚至引发FGC,并造成hsf线程池被打爆,使整个系统不可用。如果入参真的很大,怎么处理

metaq(异步调用)

  1. 同一个topic,但是不同应用消费不同的内容,需要加tag,形成topic+tag两级标识。特别是tag,直接在mq服务端就进行过滤,不需要push到客户端

  2. 消息风暴:如果编程不当,或者消费业务本身就很复杂,消费一次要处理很久,导致本次消费还没结束,服务器以为消费失败,于是重发消息,从而导致应用服务器消息堆积。这种堆积是指数级的,很快就会把应用搞挂。通过mq控制台可以看消息堆积量。解决办法:重启服务器;如果消息过多,重启消息服务器不行的话,到消息平台,先清空消息。

    在代码中如何避免?先返回给用户成功,然后异步去处理;或者构建缓存区,来处理用户的请求和消息

diamond

  1. 原理

    基于推拉模式,主要基于拉

    长连接和短连接的原理是啥? 需要看底层

    http协议,1.1开始就是长连接;长连接表示keepLive

    长短连接的优缺点?

    长连接:建立连接之后,不断开;优点:交流方便;缺点:连接是系统资源,占用系统内存

    一台linux服务器支持的最大连接数是

    diamond

  2. double check 两次检查

    解析:文本按换行符split,遍历数组,转换成对象或map

    (1)推送开关时,必须要double check

    (2)解析开关值时,要注意健壮性。特例:

    若一个开关包含多个参数,如果其中一个解析失败,会带来什么问题,如何解决?

JVM内存

  1. jvm内存

三大块:堆 栈 方法区

so,有哪几种oom场景?

堆的溢出、栈溢出、方法溢出

栈:方法调用是引用栈内存,无限调用

方法区:

堆:

只要有一个溢出,jvm就会直接退出

  1. 常见问题

    查询DB没做分页,导致频繁GC甚至FGC

    接受参数太大,并且QPS高,直接将系统搞死

    死循环,导致stack oom

    批处理耗时,并且QPS较高,系统load飙升,假死

  2. JVM问题排查

    top, jmap, jstack, jps, load, rt...

    各个工具怎么用,用来分析什么问题?

  3. 举例

    某个hsf请求处理很耗时,并且占用大量资源,怎么快速定位?

    top -h 那个线程跑的最多,最耗时

    jstack 根据pid,看对应那个类

 ## tair(缓存)

 * 如何保证tair与db之间的一致性?



 * tair异常:写成功,读不到,啥原因?

 tair满了,写不进去

 * tair失效:一定要进行失效机制,这是保证数据一致性的根本措施。容忍短时间内的数据不一致性,但是绝不允许长时间不一致
 * 写>读的场景下,是否要使用tair?不需要
 * 本地cache:tair自带本地cache热点数据功能,但是必须根据业务特点设置何时的失效期
 * 缓存分流:多个系统如果都依赖basic系统的缓存数据,当QPS很大时,basic系统因为tair访问流量过大触发tair限流,导致basic频繁读取DB,造成性能降低,如何破解?

 重复访问少,缓存命中概率低





 ## mysql

 b+tree的结构是啥?为啥比其他树快

 status字段能建索引吗?不需要键,因为状态值比较少

 批量查询时,limit start step查询如何提升效率  id,order by, 100w条的时候,需要注意



 ## eagleeye(鹰眼)

 load cpu时间片 任务

 在一个时间片内没做完,又来一个任务,load+1

 一个时间片时间没到就做完了,load=0



 load/qps的关系:

 qps高,load一定高吗?

 load的含义是啥

 如何设计程序,使qps即使很低,load也很高

 4核处理器上,load的健康值是多少

 正常业务系统的qps健康值是多少

 正常业务系统的线程数量是多少

服务治理框架

 hsf:

序列化 hessian 支持跨语言,速度慢

dubbo序列化也是hessian2

普通的轮询方案会给服务器带来过多访问压力,而且很多时候轮询请求都没有配置更新,白跑一趟,Diamond采用的是改进的长轮询方案,长短轮询结合,即轮询配置是否更新时,使用长轮询,减少配置没更新时无意义的访问;在获取配置时,使用短轮询,及时获取配置。

基于Http长轮询模型,这样减少了无意义的轮询请求量,提高了轮询的效率;也降低了系统负载,提升了整个系统的资源利用率。这种推拉结合的策略,做到了在长连接和短连接之间的平衡,实现上让服务端不用太关注连接的管理,效果上又获得了类似TCP长连接的信息推送的实时性。由于轮询之间的间隔,无法保证连续的配置更新,都会被客户端接受,但最后一次的配置更新一定会被客户端接受到,例如发布了A B C 配置,可能客户端只接受到了 A C,也可能只接受到 B C,或者只接收到 C。

参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343