• 150608

    文章

  • 1145

    评论

  • 13

    友链

  • 最近新加了换肤功能,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

单体转变集群 —— 有哪些优化的技术手段?


》出现的问题:宕机、性能、饿死(隔离,个别请求无响应)

  • 访问数据库的性能,使用长连接减少握手,提高通讯效率
  1. 引入连接池,池化技术
  2. 分治优于读写分离(分开治理即按业务等进行分表,绝对分治即减少表之间依赖,减少事务问题;读写分离存在同步和性能问题)

 

  • 应用内线程并发,提高运行效率
  1. 使用线程池threadlocal,考虑通讯是否有状态?无状态http协议,无锁化提高效率;有状态例如dubbo协议,存在消息Id,归属哪个线程方便回调,就需要调整线程数来提高效率
  2. 多个业务做多个线程池隔离(资源隔离),减少线程等待

 

  • 缓存,不同于存储(缓存对数据没有绝对保证,可放热数据,要考虑分布式事务一致性问题,所以一致性要求极高的数据建议要用数据库去做分治)
  1. 加入redis前置缓存,减少数据库瓶颈,分担数据库压力,提高有效数据库请求(可考虑将数据库数据转移至缓存,将减去部分数据库请求)
  2. redis设置集群,分担redis单台压力,redis单台宕机重启后(只影响了出现故障redis的数据),减少数据库回传重启redis缓存或者不做回传当透传数据库后回写到重启redis的压力。不做redis集群主从同步(redis分治),保持独立的单实例单节点,否则极易出现脏数据和低性能。分布式下数据一致性难度太高。

 

 

 

 


695856371Web网页设计师②群 | 喜欢本站的朋友可以收藏本站,或者加入我们大家一起来交流技术!

0条评论

Loading...


发表评论

电子邮件地址不会被公开。 必填项已用*标注

自定义皮肤 主体内容背景
打开支付宝扫码付款购买视频教程
遇到问题联系客服QQ:419400980
注册梁钟霖个人博客