返回顶部

优秀的技术选型(摘选)

1. 优秀的技术选型(摘选)

1.1. 缓存

  • redis因为是单线程,不适合高耗时操作,对数据量比较大的缓存还是memcached比较合适

1.2. 分库分表

  • sharding-jdbc,驱动层,不需要额外机器
  • mycat,代理层,如果有运维团队,又舍得机器可以用这个

1.3. 数据同步

  • mysql在分库分表时,要做的一个重要操作,数据迁移
  • 对mysql来说,canal是国内用的最多的方案,其次databus
  • canal、maxwell等支持将要同步的数据写入mq,后续处理方便
  • ETL(抽取,清洗,转换),使用source,task,sink路线,常用工具datax,logstash,gobblin,sqoop等

1.4. 微服务

  • 注册中心通常用 consul、nacos、eureka、zookeeper
  • 熔断组件 sentinel、resilience4j、hystrix
  • 调用链 jaeger、skywalking、sleuth+zipkin、cat
  • 配置中心 apollo、disconf、spring-cloud-config
  • 网关 nginx(openresty、kong)、zuul2、traefik

1.5. 分布式工具

  • 协调工具 consul、etcd、zookeeper
  • 事务 seata(前fescar)

1.6. 监控系统

  • zabbix 在主机数量不多时是非常好的选择
  • prometheus 最流行的配合grafana进行前端展示
  • influxdata的influxdb和telegraf
  • elkb使用es存储的工具链(elasticsearch、logstash、kibana、beats)同样比较流行

1.7. 调度

  • quartz比较老的调度方案,分布式调度采用数据库锁的方式,界面需要自行开发
  • elastic-job-cloud应用比较广泛,但系统运维复杂,学习成本高
  • xxl-job国人开发,可以后台配置,学习成本较低

1.8. 入口工具

  • centos + haproxy + lvs + keepalived + ansible

1.9. OLT(A)P

  • 当数据量到达一定程度,需要建立数据仓库
  • 搜索方面solr和elasticsearch,后者实时性更好
  • 列式存储方面,基于Hadoop的hbase,使用最广泛
  • tidb国产新贵,兼容mysql协议
  • 时序数据库方面,opentsdb用在超大型监控系统多些,druid和kudu,在处理多维度数据实时聚合方面更胜一筹

1.10. CI/CD

  • 支持持续集成和虚拟化 jenkins是打包发布首选,idea的公司还写了一个TeamCity也可参考
  • gitlab搭建的git服务器中,gitlab CI也可以用

1.11. 问题排查

  • 发生内存溢出,可以用jmap导出堆栈后用mat分析
  • 线上实时分析可以用 arthas和perf

选自:学完这100多技术,能当架构师么?

posted @ 2019-08-14 17:33  老梁讲Java  阅读(533)  评论(0编辑  收藏  举报