放在草稿箱很久的总结博客,今天发一下,一是告诉自己要不断总结新的知识点,总结生活。二是要告诉自己博客多久没有写啦,本月要补上啦。不然就感觉自己没有前进反而倒退了。(2016年4月21日23:45:00)。
2015总结比每年来的晚了一些。
2015年是逐渐步入正轨的一年,如论是生活上还是工作上,都开始逐渐稳定。
感谢他人,同时感谢自己,不再玻璃心,收拾行囊,不断前进。引用热播剧《芈月传》,经典台词:“我虽出生王族,却一直被人踩在脚下,一无所有,我不墨守成规,也不怀挟偏见,我既能一掷决生死,又能一笑泯恩仇”,这样的态度和胸襟值得我学习。
看了看2014的总结,去掉所有的光,剩下那些沉淀的东西,2014的我在告诉自己踏实些。
2015 从技术上
有时候人需要憋,不憋到一定程度,不恐惧到一定的程度,就不会达到极致。就像那个词,乐极生悲,在技术上恰恰相反,以前会因为担心自己弄不出一个东西害怕着急,现在的自己感觉没有什么是自己弄不出来的,没有什么是自己研究不透的,尤其是越弄不出来越会精神,越会兴奋,总是会山重水复疑无路,柳暗花明又一村。不过还是要念叨一下自己新接触的东西。
工具
8月初入职**网,陌生的多,挑战大,我就会很兴奋,之前一直在用myEclipse编译环境开发,来到这边接触到了Intellij,从green hand到old hand,现在已经游刃有余了,哈哈,比myeclipse好用多了。框架上,springMVC+spring + mybatis,MVC,View层使用的模板引擎,一种是freemarker 一种是velocity,初次使用感觉像是自己编了一套jstl的规范,后来慢慢的知道模板引擎让我们彻底的分开视图和业务逻辑层,不会在界面上有任何的java后台代码,使开发人员能更好的分工。有些产品我们用java作为服务端提供接口,客户端可能是android、iso或者html5,不过都大同小异啦。
对于intellij的一些使用小技巧总结博客如下:(勿喷)
http://blog.csdn.net/column/details/intellijsharp.html
代码提交工具
一直用的是Subversion,现在用的是git,在自己本地添加了一个缓冲仓库,这样避免了很多麻烦。此外,intellij的git操作也很强大。
使用面向服务体系结构(soa)
使用阿里开源的dubbo,dubbo是一个分布式服务框架,致力于提高性能和透明化的RPC远程服务调用方案,是阿里soa服务化治理方案的核心框架,采用dubbo+zookeeper实现分布式管理。搭建过dubbo客户端和服务器的demo,总结博客如下:
http://blog.csdn.net/lovesummerforever/article/details/48138393
http://blog.csdn.net/lovesummerforever/article/details/48180937
http://blog.csdn.net/lovesummerforever/article/details/48180957
http://blog.csdn.net/lovesummerforever/article/details/48180971
http://blog.csdn.net/lovesummerforever/article/details/48975703
http://blog.csdn.net/lovesummerforever/article/details/48997797
http://blog.csdn.net/lovesummerforever/article/details/48998667
http://blog.csdn.net/lovesummerforever/article/details/48998787
http://blog.csdn.net/lovesummerforever/article/details/49000703
http://blog.csdn.net/lovesummerforever/article/details/49001091
当然会有如下问题,dubbo是用在局域网内的吗?可以用于企业之间的接口联调吗?dubbo可以放到公网上吗?dubbo是将大量请求进行分流,从而达到及时处理的目的。而之前不用dubbo,采用spring的rpc,能实现一个生产者对应一个消费者,而一个生产者+生产者复制对用多个消费者。dubbo的底层协议?缺省协议基于netty3.2.2+hessian3.2.1 dubbo超时时间设置?dubbo方法接口是否可以重载?等问题,不可以哦
缓存技术
使用redis缓存用户经常访问的数据,可以存储,set,list,hash,String,Object类型。例如对于实时的历史显示,为了减少并发的压力,可以设置较短时间的缓存,这样增加接口的效率。使用redis缓存实现session共享,当用nginx进行负载均衡的时候,用户访问session数据同步是一个问题,采用redis实现session共享,解决用户数据不同步问题。
当缓存文件过大时,总会出现这样或者那样的问题,缓存时间的设置,内存空间的大小等都需要我们注意。对于上万级,百万级或者千万级的缓存,我们还可以使用SSDB作为大数据的缓存使用,SSDB支持set map kv,list等数结构,用来替代或者与Redis配合存储十亿级别的数据,被众多互联网企业使用。
数据库负载均衡
使用360开源的Altas实现mysql数据库负载均衡和读写分离。
Altas主要功能是,读写分离、从库的负载均衡、IP过滤,Sql语句黑白名单,自动分表。官方文档:http://www.oschina.net/p/atlas/
说到数据库这,除了读写分离和自动分表,还要注意sql语句,在设计接口时,如何避免业务逻辑复杂的sql,以及sql的优化。
单元测试
采用Junit进行接口的单元测试,可以实现简单的单元测试,简单的业务逻辑可以满足开发人员的需求。一个更加灵活的测试是,mock测试,当真实的对象具有不可确定的行为,产生不可预测的效果,(例如股票和天气等)真实对象很难被创建,它的某个行为也很难被触发,这时候可以使用mock对象作为真实对象的替代品,或者和其他开发小组或新的硬件打交道的时候。
当然自己写的接口,可以自行使用jemeter工具进行压测。
负载均衡
采用tomcat+nginx负载均衡,采用面向服务器的框架来负载均衡。
搜索
普通的搜索,使用sql的搜索,sql语句 select * from table where clumn like '%aa%'; 每次都要去访问数据,从而增加了数据库的访问压力。采用索引,一方面在数据库中添加常用查询字段的索引,另一方面使用第三方搜索引擎机制,使用solr独立企业级搜索应用服务器,用户可以通过http请求,向搜索引擎服务器提交一定格式的xml文件,生成索引;也可以通过http get操作查找请求,并得到xml格式的返回结果。当然,solr服务器有自己的负载均衡机制,我们可以solr+缓存技术同时使用,提高效率。
多线程
多线程是指从软件或者硬件上实现多个线程并发执行技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多余一个线程,进而提升整体处理性能。那多线程什么时候用呢?多线程适用于cpu有空闲,想提高系统资源的利用率,或者需要异步操作的时候用。在这里使用在批量修改权限,以及某些批量更新上。
异步操作
采用rabbitmq异步消息队列,使用场景:项目中一些无需及时返回数据且耗时较多的操作提取出来,进行异步操作,这种异步操作大大节省了服务器的请求响应时间,从而提高了系统的吞吐量。例如,异步更新某些数据,某些写入日志操作等。
2015 其他
书单
2015年初看了几本技术类的书,《maven实战》、《jquery权威》、《js权威》,《redis原理》大概翻了一遍,一些非技术类的书,看完了《菜根谭》虽然有些文言文的意思,但是受益匪浅,让我们在姹紫嫣红的世界中沉淀下来。《明朝那些事儿》在地铁上看完了全七册,有意思有意思,推荐的一本很有意思的历史书,明朝的那些皇帝印象最深刻的就是开国皇帝朱元璋了,喜欢他的神威英武,平定四海,性格严明,杀伐决断!朝代的兴衰,个人的荣辱,当局者迷旁观者清啊。《向前一步》讲述的作为女子需要自己争取自己的权利,需要站出来。看完《黄金时代》电影,于是后来买了萧红的《呼兰河传》才发小小学课本上的火烧云片段是来自萧红的呼兰河传,萧红的呼兰河传让我看到在那个冰凉的世界中,她就是那个蜡烛,有光有温暖。最近看的《就当一次路过》短片小说的集合,有几个短片还可以,刺破现实。读书的时光总是那么少大多数的时间都被工作和手机占据着,买了个kindle,2016年,新的开始,不运动就读书。
思想上
温饱思“淫欲”,想要的多了,自然生活琐碎事就多了,所谓的着急或者说是急功近利,是因为欲望大了。
改变
佛说,我不入地狱,谁入地狱,地狱都走过了,到了哪里不是天堂呢?
总结
本色做人,角色做事,多总结demo。