需要掌握的技术栈

动态配置

  • 开关配置(boolean、String、Set、List、Map)
  • 灰度控制(基于动态开关的过滤、基于尾号的过滤)
  • 参考archaius和spring-cloud-config
  • 基于zk、consul的动态配置

缓存

  • 本地缓存: guava-cachecaffeine 可以重新(定时自动、事件触发)加载的本地缓存
  • 远程缓存: redis、memcached、多级回流缓存、缓存刷新(binlog触发)

数据库

DataSource

  • 分库分表功能、动态切换数据库功能
  • 客户端分库分表 sharding-jdbc
  • 中间件分库分表 (atlas等)
  • 管理平台: inception

binlog

自动化、发布部署、机器管理等

服务化

  • RPC框架、发布注册(基于zk等)、负载均衡
  • spring-boot spring-cloud 参考
  • grpc、thrift、line参考

Task

APM(服务监控)

监控报警

  • 本地打点 上报ES grafana展示
  • 日志管理、日志收集
  • 参考stagemonitor
  • falcon

限流降级

  • 降级容灾: hystrix(增加动态配置功能)
  • 限流: 并发量限流、容量限流(一段时间内的次数)

ZK

  • ZK集群管理
  • 可视化

Kafka

  • 可视化管理
  • 自动申请和分配的管理平台

HttpClient

  • 目的是为了使用方便, 参考retrofit、feign等

大文件存储

  • hdfs
  • 其他云存储

CDN

  • 调研和测试CDN厂商

配合客户端的功能

  • 长连接、推送(Netty、安卓、ios推送)
  • 客户端到后台链路监控
  • 客户端动态配置

数据中心

  • hive、hadoop
  • 可视化管理平台 参考调研airflow

机器学习

  • tensorflow
  • 参考实践下

协作工具

  • wiki、jira、gitlab或bitbucket