写点什么

互联网技术个人理解

用户头像
嘻哈
关注
发布于: 2020 年 07 月 01 日

spring



刚开始工作的时候最流行是ssh(struts + spring + hibnater),到现在是spring + mybatis

之前是struts是作为MVC的主流框架,从struts1 到struts2 再到spring,struts没有目前spring使用的自由,需要遵循一些规范

同时struts会时不时暴露出一些漏洞,后面spring的mvc机制完善后,struts使用的越来越少,从学习成本和易用性、安全性来说spring成为了当前的王者。



至于mybatis 替代 hibnater,数据库作为应用系统性能的主要瓶颈,我认为是大家需要更加精细化掌控sql以便提升性能是技术人员追求也能为应用使用者带来更好的体验,

同时hibnater感觉越用越复杂,它提供的hql编程反而成为了拖累,所以被时代抛弃也是正常的结果



缓存(EHcache、redis)



在缓存中间件出现之前,为了高查询效率,经常在内存中存放一下热数据,提供应用的性能,但是这些数据声明周期的管理
很是头疼,难于驾驭,ehcache是本地缓存,完美的解决了单台应用使用缓存的问题,提高查询效率,缓解了数据库的压力。
但是当需要多台机器并行对外服务时,数据不一致性,登录用户的状态的转移,急需一种集中式缓存来解决,redis完毕的解决
了这些问题,同时其高性能以及各总集群方案,完毕的解决了互联网的需求






消息队列



1.大规模数据请求时,服务器的C10K、C100K问题,经常困扰我们,虽然C10K等问题的解决方案是NIO,但是
如果在某些场景中,比如用户行为日志,这些请求对我们很重要,又不用立马进行业务逻辑处理,MQ可以很轻松的接收请求,
然后我们的应用很从容的进行业务处理

2.多应用协同合作,又不想因为其中某个系统的问题,导致其他系统受到影响,于是采用异步消息通知的方式,每个应用处理
自己的逻辑,订阅关注的消息,然后进行业务处理,既保证业务的最终一致性,又保证了整个单个应用的性能不受其他应用的影响,实现高内聚低耦合






nginx服务器



1.反向代理:多台机器部署多个应用,使用不同域名访问
2.静态资源访问的处理
3.负载均衡,nginx实现了第7层网络的负载均衡,可以进行后端应用的健康检查,多种路由策略(Hash/权重)
,免费、性能好据说是5万TPS左右,创业公司必备







LVS



负载均衡器,有三种模式(NAT/TUN/IP通道),第4层网络的负载均衡器,据说可以到达80wTPS,免费性能还好
一般与nginx配合使用,我的理解是LVS是机房级负载均衡,nginx是应用级的






Mysql 集群




数据库一直是架构性能提升的瓶颈,不是说它不行,而是对它要求太多,所有的数据都需要它来保存,还要保证性能。
后面只能想各总办法了。
1.数据特点是写少读多,那就来个主从负责,主负责读和写、从机负责读,这样写的压力不会对读造成影响,多台机器
还能提高可用性
2.数据读写均衡,但是性能不够,那就来个主主架构,两天机器互为主备,同时对外提供服务
3.性能还是不够,那就多来几台,集群的方式对外提供服务了
4.还有就是垂直业务拆分、水平数据拆分,就是为了把单表、单库的数据量减少,空间换时间,复杂度提升了,性能也改善了






搜索引擎 lucene/elaticsearch




数据库中like是程序员永远的痛,右匹配like,还能使用前缀索引,但是实际业务场景,模糊搜索,单词搜索,
数据库完全搞不定。搜索引擎解决了这个问题,同时还支持分词搜索,还能设置加权显示想要的结果。其中elaticsearch
更是把搜索技术推上了新的巅峰,号称处理TB级别的数据,不由让人惊叹不已






NOSQL



hbase、mongodb,键值对存取数据,我理解的是如果数据不要求行数数据的查询和统计,使用NOSQL能够很大提升性能,尤其是
我经常用文章ID、文章内容存储到mongodb中,相对于内容存储到mysql,性能提升很大




发布于: 2020 年 07 月 01 日阅读数: 109
用户头像

嘻哈

关注

还未添加个人签名 2018.02.13 加入

还未添加个人简介

评论

发布
暂无评论
互联网技术个人理解