技术栈

  • JDK:  saic 内部统一使用 jdk 1.8 版本
  • IDE:   推荐使用 idea (eclipse 落伍了),  下载地址:   https://www.jetbrains.com/idea/#chooseYourEdition
  • 微服务构建:  使用  gradle 4.7 作为微服务的构建工具,(勿使用 gradle 5.x, 因为我们的jacoco配置暂不支持gradle 5.x)
  • 公共组件构建: 使用 maven 3.5.x 作为公共组件的构建工具,主要用于 krpc, envconfig 等少量公共组件的构建,不用于微服务 (原因是gradle加optional依赖很麻烦,非内置功能)

 

  • 源代码管理  git
  • 打包构建 jenkins
  • 仓库:nexus    (仅用nexus存储少量公共组件,微服务本身构建发布都不通过nexus)
  • 设计文档编写:  Confluence      图:  Confluence  里的 drawio 插件

 

  • Spring 版本: 5.0.6
  • Spring Boot 版本: 2.0.2以上, 所有微服务均基于spring boot开发
  • RPC框架/HTTP网关:  krpc (saic自己研发的)
  • RPC框架底层NIO框架:  netty 4
  • RPC框架序列化: protobuffer 3.5

 

  • 日志: logback
  • JSON解析:  jackson (推荐) 或 fastjson  
  • 单元测试: junit
  • MOCK框架:  kmock  (saic自己研发的)
  • 数据库数据源: druid
  • 数据库访问: mybatis,   bpe工程里用 bpe db 插件

 

  • HTTP调用: RestTemplate,  bpe工程里用 bpe rest 插件
  • REDIS访问: 使用StringRedisTemplate操作redis (底层基于lettuce) ,  bpe工程里用 bpe redis 插件
  • KAFKA访问:使用 KafkaTemplate 操作kafka ,  bpe工程里用 bpe kafka 插件
  • RabbitMQ访问:使用 RabbitTemplate 操作rabbitmq ,  bpe工程里用 bpe rabbitmq 插件
  • MONGO访问: 使用MongoTemplate,  bpe工程里用 bpe mongo 插件

 

  • 注册与发现服务: consul
  • 配置服务: apollo
  • 分布式调度  xxl-job 1.9.2 (准备升级到 2.x.x版本)
  • 监控报警系统: kmonitor (saic自己研发的)
  • 全链路跟踪: cat (暂时,目前准备开发新的系统xxx替代cat)
posted @ 2021-08-23 09:09  无敌的小小哒  阅读(170)  评论(0编辑  收藏  举报