技术栈(technology stack)就是一个公司的透视镜,从某些程度上可以展示出公司的技术实力。从技术桟也可以看出整个平台的技术要素,平台大小规模等,今天来给大家分享我司的技术全家桶。

总览

闲来无事就想着还可以总结总结什么,平台架构、事故解决方案等以前都写过了,这次就主要写写我们都用过那些技术吧。我分了五块内容来介绍我们的技术栈:前端、后端、中间件、运维和工具。画了一个思维导图方便大家整体预览。


点击这里看大图

接下来就展开来说

前端

我司的前端比较简单主要分为了三大块:PC前端、移动端、模板引擎。

  • PC前端 主要使用了H5、JS,还有很多其它的组件,但以前两者为主。少量的使用过angularjs,最后效果不是特别好,放弃了
  • 移动端 分了三块:安卓、IOS、WAP。安卓前期主要以Java语言为主,现在慢慢在考虑kotlin;IOS以Objective-c为主,少量使用Swift;WAP又称H5,用于微信或者手机浏览器,也是使用Html5、js、少量使用了VUE,H5端的一些JS组件和PC会有不同,一般都有对应的替代品比如:使用zepto替代jquery。
  • 模板引擎 前期一直使用的是Beetle,大量使用springboot后替换为Thymeleaf,Thymeleaf使用体验很不错。

后端

后端以开发语言的角度给大家介绍

后端使用的开发语言有:php、golang、python和Java。

  • php 我们公司的前端的网站都是使用php开发,框架主要使用了thinkphp,小项目试验性的用了laravel。
  • golang 主要用于大数据,使用gin框架,用beego做过一个后台。
  • python 没有在公司用过,自己写小爬虫玩。
  • java 公司最主要的开发语言,核心系统、支撑系统、服务组件均使用Java开发,下面详细介绍一下。

Java技术栈比较多,这里挑选了几个具有代表性的来讲:

  • spring 做Java开发的,几乎离不开spring全家桶了,不需要多介绍。
  • alibaba 阿里这两年非常牛逼,也开源了不少的东西,主要使用过dubbo和druid,都很优秀。
  • apache 如果说搞Java的离不开spring,那么搞开发的就离不开apache,我们主要使用了commons、cxf、zookepper等。
  • orm框架 基本以mybatis为主,hibernate和jpa为辅的模式。
  • quartz 定时任务使用的quartz

中间件

这里面是比较泛的中间件集合,把相关的组件也都包含进来,主要分为:数据库、web容器、消息、缓存、文件服务器和安全。

  • 数据库 业务主要使用mysql,需要跑批统计的离线数据由tungsten replicator同步到mongodb。
  • web容器 php使用的apache,Java使用的tomcat,静态资源代理使用的是nginx
  • 消息 最开始使用activemq,后来架构升级全面替换为rabbitmq
  • 缓存 满标控制使用memcached,后端业务缓存使用redis
  • 文件服务器 最开始使用nginx做图片服务器,后来上线合同就全面使用了fastdfs
  • 安全 https证书保证传输安全,shiro做权限控制,oauth做登录认证。

运维

运维是平台的生命线,主要分为六部分:监控、负载均衡、CI(持续集成)、服务器、自动化部署和网络

  • 监控 主要使用了zabbix来监控服务器的各项指标,少量使用shell脚本和crontab
  • 负载 使用VIP来做均衡负载,也就是LVS。
  • CI 持续集成工具主要使用了jenkins。Java依赖使用maven为主,gradle少量使用,版本控制svn为主,少量使用git
  • 服务器 线上服务器大多使用的是centos 6.5。少量使用7.0。测试环境使用vsphere来虚拟化
  • 自动化部署 这块还在研究,备选有:puppet、ansible、saltstack。
  • 网络 使用Wireshark做网络分析

工具

优秀的工具可以让工作事半功倍,节省很多时间。这里分开发、测试、数据库、画图和运维五个维度来介绍

  • 开发 Java常用的开发工具:eclipse和idea。前两年一直使用的是eclipse,但eclipse对spring boot支持的不够友好,后来就全面使用了idea;php开发工具比较多,我司开发人员主要使用phpstorm和zend,集成环境使用upupw;前端使用WebStorm和sublime3;golang开发工具liteide,IOS使用xcode。
  • 测试 自动化测试工具selenjum,性能测试使用jmeter或者loadrunner,开发人员一般使用jmeter。接口测试使用postman;移动端测试使用 appiumforandroid和appiumforIOS;抓包工具使用 firebug、MIniSniffer、Fiddler。
  • 数据库 mysql数据库可视化工具常用navicat,生产使用Workbench,少部分开发人员使用sqlyog和phpMyAdmin。mongodb使用MongoVUE,表设计用PowerDesigner。
  • 画图 架构图设计使用Visio,也尝试过processon;思维导图使用Xmind。
  • 运维 运维工具使用xftp或者SecureCRT

本文所有示例图均使用xmind,需要原图的同学请在公众号回复:xmind。

互金文章系列:
- 从零到百亿互联网金融架构发展史
- 一次生产事故的优化经历
- 一次dns缓存引发的惨案
- 一个脚本引发的血案
- 互联网金融大战黑客
- 百亿互金平台救火故事
- 如何做一个对账系统


喜欢我的文章,请关注我的公众号

百亿互金平台技术栈大起底相关推荐

  1. CSDN日报20170303——《百亿互金平台救火故事》

    [程序人生]百亿互金平台救火故事 作者:纯洁的虫子 一直以来总是想以什么方式去记录下自己在互金行业的这段经历,趁着自己还记得清楚,还能找到一些资料原型,一方面可以分享出来供大家参考,但是更重要就是多年 ...

  2. 百亿互金平台救火故事

    多年前,又是周六客服打电话过来,平台官网不能访问,app完全无法打开,客户在QQ群和微信群中各种反馈,说平台是不是跑路了?客服的多条400热线完全被打爆,电话已经接不过来- 前言 一直以来总是想以什么 ...

  3. TiDB 在大型互联网的深度实践及应用--大数据平台技术栈08

    回顾:大数据平台技术栈 (ps:可点击查看),今天就来说说其中的TiDB! 作者介绍 吕磊,摩拜单车高级 DBA 一.业务场景 摩拜单车 2017 年开始将 TiDB 尝试应用到实际业务当中,根据业务 ...

  4. RocketMQ实战--大数据平台技术栈06

    回顾:大数据平台技术栈 (ps:可点击查看),今天就来说说其中的RocketMQ! 作者丨张丰哲 www.jianshu.com/p/3afd610a8f7d 阿里巴巴有2大核心的分布式技术,一个是O ...

  5. 谈谈对 Canal( 增量数据订阅与消费 )的理解--大数据平台技术栈系列(3)

    之前说了,大数据平台技术栈 (可点击查看),今天就来说说其中的Cannal 来源:朱小厮, blog.csdn.net/u013256816/article/details/52475190 概述 c ...

  6. K8S 从懵圈到熟练--大数据平台技术栈18

    回顾:大数据平台技术栈 (ps:可点击查看),今天就来说说其中的K8S! 来自:阿里技术公众号 阿里妹导读:排查完全陌生的问题.不熟悉的系统组件,对许多工程师来说是无与伦比的工作乐趣,当然也是一大挑战 ...

  7. 那些扎堆上市的互金平台们,仍能引领时代潮流?

    近年来,随着中国移动互联网的跨越式发展,互联网金融顺势得以崛起,P2P.消费金融.第三方支付等各类业态的平台如雨后春笋般涌现,行业的发展历程也是跌宕起伏--既经历过资本的疯狂追捧,也遭受过监管的严格审 ...

  8. 2016.08互金平台移动端影响力50强

    2015年,也被称为互联网金融移动化的元年,强化移动端的竞争力已成为互联网金融平台的重要战略之一. 以最活跃的P2P网贷领域为例,根据网贷之家.盈灿咨询的投资者调研及主要平台的数据显示,在2015年末 ...

  9. 图解Hbase--大数据平台技术栈07

    回顾:大数据平台技术栈 (ps:可点击查看),今天就来说说其中的HBase! HBase简介 HBase是一个分布式的.面向列的开源数据库存储系统,是对Google论文BigTable的实现,具有高可 ...

最新文章

  1. python tcp server分包_如何创建线程池来监听tcpserver包python
  2. 计算机维护常识_系统篇
  3. 以太坊 p2p Server 原理及实现
  4. 洛谷P3694 邦邦的大合唱
  5. json解析数组 nlohmann_JSON 数组的遍历解析
  6. ZZULIOJ 1128: 课程平均分
  7. python读取视频占用内存太大_Python 读取大文件内存占用检测示例
  8. Hadoop、Zookeeper、Hbase分布式安装教程
  9. 【279天】每日项目总结系列017(2017.11.11)
  10. clickhouse 同步mysql_ClickHouse 常用管理命令
  11. 编码器分类及原理和测速应用(含代码)
  12. LaTeX 论文排版学习笔记(零基础)
  13. li标签中hover的使用及li标签的样式
  14. JAVA计算机毕业设计晨光文具店进销存系统设计与开发计算机(附源码、数据库)
  15. SQL注入攻击以及防护
  16. Mysql5.6 Performance_schema 深入浅出
  17. 转载:“技术支持工程师”薪资行情
  18. 亲测有效,解决MAC无法联网的问题
  19. 计算机c语言基础字符,2008计算机二级考试:C语言基础教程-C语言字符型数据
  20. 解决时间机器无法识别硬盘问题

热门文章

  1. 磁盘 扇区 柱面 linux,磁盘的基本知识:磁道、柱面和扇区
  2. OS | 磁盘地址结构 、柱面号 盘面号 扇区号的计算
  3. 路上有你:《架构师成长之路》终结篇 (附新年礼物)
  4. python xlrd模块下载_python xlrd模块
  5. [Errno 113] No route to host
  6. 纯lua脚本搜索算法优化
  7. 【Node 连载 5/9】如何用 Node 建设企业级应用网关
  8. 信息数智化招采系统源码——信息数智化招采系统
  9. 一招教你单片机固件快速瘦身
  10. Shader 中的颜色混合模式(Blend Mode)