zoukankan      html  css  js  c++  java
  • 技术选型参考概述

        1.规范
        如果有被HTTP劫持的可能,必须使用HTTPS.移动端使用的H5页面被劫持的可能性很大.
        各服务私有DB库表不允许在线业务跨服务直读取.
        不要将公司代码上传到Github等公网代码管理网站上.

        2.代码管理
        版本管理:Git
        协作流程:Git flow或者Github flow
        工作流程:查看后面的Git工作流程规范

        3.技术栈
        缓存:
          分布式缓存:Redis采用4.x版本,集群基于Sentinel或Cluster
          本地缓存:Guava
        NoSQL:
          支持复杂的JSON结构,JSON查询和持久化,推荐使用MongoDB.支持简单的数据类型,推荐使用Redis.
        数据库: MySQL: 5.7 or upper
        搜索引擎: ES: 6.5 or upper
        消息队列:Kafka
        Kafka的消息,如果是给外部系统用的,使用JSON.如果是内部系统内部用并且对性能要求高,使用Google的Protobuf.用Java做Kafka的研发,不要使用Spring的封装,直接使用Kafka的API.
        Web容器: Tomcat 8.5 or upper
        PRC: gRPC或者dubbo

        4.Java
        Build tool: Gradle, Maven
        IDE: IntelliJ IDEA
        Java version: 1.8 or upper
        JDK: Oracle JDK 8u202是Oracle JDK8最后一个免费的update,统一使用8u202或者8u202以前的Oracle JDK 8.
        Library:
        1.Guava
        2.Apache Commons library
        3.Hutool
        JSON:Jackson
        Test:JUnit, Google Truth
          Mock Test Framework: Mockito, powerMock
        Logging: Log4j2, slf4j, Logback
        Schedule: XXL-JOB

        5.Spring
        Spring boot
        Security framework: Spring Security
        Spring Cloud:
          Registry Center: Nacos
          Config Center: Nacos
          RestFul: Open Feign
          Gateway: Gateway(Zuul), APISIX
          Flow control: Sentinel
          Latency and Fault Tolerance(Circuit Breaker):Resilience4j
          Distributed Transaction: Seata
          Distributed tracing: Spring Cloud Sleuth + ZipKin, Jaeger
        
        6.MySQL
        ORM: MyBatis-plus
        Connection Pool: Druid, Hikari
        Redis: Lettuce, Jedis
        Distributed database middleware: Sharding Sphere
       
        7.api文档
        API and Doc: Swagger + Yapi

        8.其他
        系统间访问,RESTful或者gRPC

        9.大数据
        实时分析:Spark Streaming
        离线分析:Spark
        语言:Java, Scala
        大宽表:HBase

        a.代码样式
        使用google-java-format,
        即https://github.com/google/google-java-format.
        打开Preferences->Java->Code Style->Organize Imports, 设定import顺序为: com java javax org

  • 相关阅读:
    New Skateboard
    1127
    一张图看懂开源许可协议,开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别
    vim 快捷键绑定
    使用git 上传项目到gitee/github
    Linux进程/线程调度策略与 进程优先级
    【框架】共享内存组设计思路与实现(更新中)
    linux下六大IPC机制【转】
    详解Linux内核红黑树算法的实现
    Linux 内核里的数据结构:红黑树(rb-tree)
  • 原文地址:https://www.cnblogs.com/zhtzyh2012/p/14865721.html
Copyright © 2011-2022 走看看