大公司网站java网站都一般采用什么架构?
时间:2023-11-06 03:06:01 | 来源:网站运营
时间:2023-11-06 03:06:01 来源:网站运营
大公司网站java网站都一般采用什么架构?:在某sns网站打工2年,说说我的看法。
1.web框架
rose(
Qieqie/paoding-rose · GitHub),基于spring mvc,采用"约定优先于配置"的思想,编写起来还是挺快的。
2.数据库
jade(
Qieqie/paoding-rose · GitHub),实现了数据库读写分离,分库分表等,一句简单的sql就可以实现对数据库的需求
@SQL("SELECT id,name,price FROM book WHERE id = :id")public Book select(@SQLParam("id") long id);
采用了BeanPropertyRowMapper实现了部分orm,但是写多了还是挺麻烦的o(╯□╰)o
3.rpc架构
第一代rpc框架网络层采用netty,序列化层是json,基于http自定义协议,服务器容器则是自己定制化的tomcat。主要遇到的问题就是java和c++之间的调用。
第二代框架就是完全基于thrift,thrift解决了上面的语言兼容性,还有一个好处就是提供了一站式解决方案,神马序列化啊,神马server啊(ps:我们采用的是THsHaServer),都不用你操心。
4.数据平台和处理
没在这个组呆过,只是了解一些。基本和各大公司的大数据处理一样,离线计算hive/pig,流式计算storm/Presto,内存计算spark,以此来满足各个业务对数据的不同需求。
5.消息中间件
我们组当时使用kafka,主要用于log统计和一些不太重要的异步处理。kafka的优点就是吞吐量很高,但是不能保证消息可靠性消费,比如消息消费失败直接丢弃或者不保证消息唯一性消费,这些可以在消费端自己做一些定制化处理。
没有说到的地方待补充。