Top
首页 > IT产品和服务 > 第一资讯 > 正文

猎聘同道精英汇:51信用卡分享Java项目的技术选型

发布时间:2016-08-11 17:41        来源:搜狐        作者:

  据记者了解,在7月30日下午,猎聘同道精英汇在杭州举办了主题为“大神教你Java新技术”的行业分享会,主办方邀请到了51信用卡架构师王霖,他从编码的角度入手,结合51信用卡具体案例,深入浅出的给参会者分享了多年的项目经验。

  王霖,51信用卡架构师,毕业于杭电计算机系,十余年老码农。曾就职于淘宝、大众点评、东方财富网、IN等公司。

  下面是经过整理的王霖演讲实录。

  今天给大家的分享主要分四个部分:第一、“脚手架”; 第二、缓存; 第三、消息; 第四、存储。

  51信用卡这边有比较完善的微服务框架,基于consul、springboot等开源技术研发。 在项目开发流程上,基于脚手架技术,前后端可以快速进入并行开发模式。

  接下来是缓存,特别提下本地缓存。07年我在淘宝做商品类目系统的改造,那是淘宝最古老的中间件之一,整个淘宝的四级类目和网状的属性结构,有任何变更都直接推送到前端服务器上,然后在本地构建多种数据结构缓存起来。

  所以在淘宝的搜索页面搜索商品,出来的商品类目路径和类目属性是完全不用访问数据库,远程缓存都不用,性能非常好。也会遇到内存占用过大的问题,推到每个机器上有占用300兆的堆内存,淘宝为此还搞了虚拟机堆外存储的技术避免这块被垃圾回收。回到51这边,也有业务数据在本地缓存的案例,前端业务对配置数据是只读的,只有运营有入口去修改这个配置。这种场景下用户对配置的变更是不敏感的,所以能依此设计非常通用的业务配置缓存系统。

  这里涉及到十几个子项目,这个项目有几十万个配置项目,它会对接到运营的系统去调,核心是三个指标:Type(类型)、Key、Value。前端业务有很多需要这个配置项目是只读的,只有运营有权利去修改这个配置。这个案例有一个非常典型的特点,不同的用户对于配置的感知是未知的。

  第三个是消息分发。我们大量使用Kafka,RabbitMQ。 用kafka实现ack是比较繁琐的,简单起见可以和rabbitmq混用,用kafka保证高性能,同时用rabbit保证消息一定被处理。

  最后谈谈数据存储。51信用卡MySQL、MongoDB、cassandra、elasticsearch都在用。对于MySQL,注意事先考虑到运行期分表的策略,可以将要拆分的表的数据复制到另一张表上,然后可以将多余的hash不命中的数据删掉。 cassandra很适合日志型列很多的场景,我们用在操作日志、用户session等场景。 elastics要注意索引重建的代价,另外它的乐观锁和地理位置搜索功能我们也有使用案例。

  据悉,主办方猎聘为了避免技术分享会过于枯燥和乏味,在分享的中间环节,增加了趣味游戏,既增加了互动性,又拉近了与行业大牛的距离。同时,把分享会推向了 高潮。猎聘相关人士告诉记者,线下分享会的成功举办,标志着猎聘作为招聘类网站的服务延伸,线上与线下的打通,也符合猎聘发展的战略,即打造职业发展平 台,而非仅是招聘网站。

合作站点
stat