您的位置:首页 > 编程语言 > Java开发

关注java体系的技术方向

2016-06-04 16:37 746 查看
虽然现在一直在.net体系下工作,随着工作经验的积累。考虑架构的时候难免需要涉及到java开源体系的东东。就找找了java架构师的要求,如下:
第一个:
1.计算机相关专业,大专及以上学历,热爱互联网产品研发;
2. 6年以上工作经验,有互联网应用开发经验,能够独立设计完整网站/系统;
3. 熟悉JAVA、J2EE体系结构,熟练掌握主流开发框架(SpringMVC、Struts 、Freemarker、Mybatis、Hibernate等);
4. 熟悉Eclipse+Maven的开发部署环境;
5. 熟悉常用Web容器及代理工具 Nginx,tomcat,jetty等。
6. 熟练掌握Mysql数据,能够编写较复杂的SQL语句。
7. 熟悉常用noSql产品,mongodb,redis等。
8. 熟悉消息中间件及缓存技术(memcached ,ehcache,activeMQ等),有应用经验者优先。
9. 熟悉Unix/Linux操作系统,能熟练使用常用的命令。
10.了解分布式应用系统设计或应用、有异构系统之间数据通信经验者优先;
11.有移动产品服务端开发经验者优先;
12.善于思考,诚信正直,主动积极,沟通能力强,有良好的团队精神
第二个:
1、本科或以上学历,计算机相关专业。3年以上JAVA开发经验
2、熟练使用主流开源框架,如Spring、MyBatis、SpringMVC、Activity、Drools等,了解Freemarker、Velocity等前端引擎
3、熟悉MYSQL数据库开发技术及相关工具,熟练掌握SQL
4、熟悉Web前端技术,包括XHTML/XML/Ajax/CSS/Javascript/jQuery/Bootstrap等
5、熟悉MySQL开源数据库,熟练应用nosql(redis、mongoDB)
6、熟悉使用Tomcat、Nginx等应用服务器软件
7、熟悉Linux操作系统
 8、有支付经验者、互联网公司经验者优先。
第三个:
1) 五年以上Java领域的设计与开发经验,有主导大型平台系统研发的经历,有良好的组件级建模能力,擅长平台架构设计、熟悉系统性能优化,能够设计复杂、高并发、大数据量的系统;

2) JAVA基础知识扎实,精通J2EE架构体系,熟悉Spring、Hibernate等主流开源框架,至少深入研究过一个以上的知名开源产品;

3)熟悉NoSQL、MQ、Cache、TCP/IP等原理;

4) 对数据库的基本理论和内部实现机制有比较深刻的理解,熟悉主流数据库(Oracle、MySQL等),熟练掌握SQL、存储过程等,拥有较好的数据库设计能力;

5) 责任心强,具备独立分析和解决问题的能力,有较好的组织、协调能力及团队合作意识,能够承受工作压力;

6) 热爱技术,喜欢尝试最新的技术,能够自我驱动,并能从技术趋势和思路上能影响技术团队;

7) 熟练使用shell\python等脚本语言的优先;

8) 有Hadoop、HBase、Hive、ZooKeeper等相关开发和优化经验的优先。

9)熟悉.net开发,有工作经验者优先;

10)有独立带团队经验优先考虑;

总体来说,对于架构师来说,无论是.net还是java难免要收到java开源体系的影响,毕竟这方面有太多的成熟案例以及免费开源吸引了太多公司的使用。
看了这么多其实现在java体系用的东东,.net也已经加入了进来。在架构体系用是大同小异的。
抛开语言不说,看看下面一个常见的架构图:



1.负载均衡
Nginx上面的几个要求基本都有,这个属于软件负载,可以在windows以及linux下使用,当然是推荐linux了,现在很多大型公司采用的是硬件F5, 但是价格以及 nginx的成熟,还是用 nginx了。
2.分布式缓存
这个.net 下有微软的appfabric,java体系下是memcache,当然.net也可以使用了。
随着nosql 的兴起,redis做缓存很很常见。当然是否合适自己的场景,还得自己把握。
值得一说的是分布式缓存毕竟没有本地缓存的速度快,毕竟涉及到网络传输,如果可以,应该优先使用本地缓存。如果网站使用了负载均衡,必须使用分布式缓存的场景,比如用户在线状态等,又是另外的问题。
3.数据库
这个java体系,小的公司,包括现在很多互联网公司,都是mysql,mysq实不容小窥
mysql (master/slave)复制原理及配置 ,
http://blog.csdn.net/mer1234567/article/details/7405775
这中应用依然成型。oracel就不说了,很早就具备主从数据的功能。
对应微软体系,用sql server的居多,sql server就发展慢了,最早也就是靠发布订阅来实现类似的功能,知道sql server 2012才用了alwayon 技术。
SQL Server AlwaysOn架构及原理
http://dufei.blog.51cto.com/382644/1384210/
还是得说下nosql,这个方面java,.net都是一样的,虽然都是开源下诞生的,现在基本已经都可以使用了
主流的redis,Mongodb都没问题了。
NoSQL开篇——为什么要使用NoSQL
http://www.infoq.com/cn/news/2011/01/nosql-why/
这个文章很好的解释了为什么好使用NoSQL,
易扩展
NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。
大数据量,高性能
NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。一般MySQL使用Query Cache,每次表的更新Cache就失效,是一种大粒度的Cache,在针对web2.0的交互频繁的应用,Cache性能不高。而NoSQL的Cache是记录级的,是一种细粒度的Cache,所以NoSQL在这个层面上来说就要性能高很多了。
灵活的数据模型
NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。这点在大数据量的web2.0时代尤其明显。
高可用
NoSQL在不太影响性能的情况,就可以方便的实现高可用的架构。比如Cassandra,HBase模型,通过复制模型也能实现高可用。
代码层更是有太多相通的东西
分层就不说了
最常见的三层结构,无论.net还是java都是大同小异的。
最后可以看出,.net体系很多时候还是再参考开源体系,最近微软开始开源,redis之类收到了官方的支持,希望.net可以发展的更好。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: