挖财架构师分享:Scala在业务驱动中的应用与挑战

0 下载量 172 浏览量 更新于2024-08-27 收藏 1.4MB PDF 举报
在ArchSummit大会上,挖财资深架构师王宏江分享了关于Scala在挖财的实际应用和团队架构实践。首先,他阐述了挖财的团队背景和发展情况,过去一年里,开发团队由50人迅速扩展到200人,整个公司规模达到600人,技术人员占比约为1/3,略低于国内其他互联网创业公司的平均比例,但低于硅谷公司的工程师比例,如Twitter的44%。挖财强调业务驱动而非技术驱动,这意味着快速迭代和适应变化的能力至关重要。 在技术架构方面,挖财采用了一些常见的工具和技术。前端使用Tomcat作为Web容器,SpringMVC作为主要框架,同时也引入了Play框架进行补充。服务间通信通过Dubbo实现,微服务框架选择SpringBoot。服务注册依赖ZooKeeper,核心业务开发主要围绕Spring和Mybatis展开。数据存储方面,主要使用MySQL和HBase,分布存储则利用阿里巴巴开源的Cobar。消息处理和实时计算采用Kafka和Storm,日志管理和监控系统依赖ELK(Elasticsearch, Logstash, Kibana)和Zabbix。 值得注意的是,挖财曾使用MongoDB和Memcached,但由于人员变动和维护难度增加,最终决定弃用。MongoDB被HBase取代,而Memcached被Redis接替。这个决策反映了挖财对于运维能力和风险控制的重视,而非单纯追求技术先进性或特定问题的解决方案。 在业务架构层面,挖财遵循基础设施、服务层和应用层的分层设计。基础设施涵盖存储、消息、框架、发布、运维和监控等基础组件。服务层则是处理中间业务逻辑,应用层承载日常业务需求。这种结构体现了挖财对稳定性和可维护性的追求。 总结来说,挖财在应用Scala时,结合自身的业务需求、团队规模和技术栈,做出了明智的选择,并在实践中不断优化和调整,确保技术选型能够支持公司快速发展的业务需求,同时注重风险管理和运维效率。