影响一个项目开发快慢的因素,除了团队水平、规范是否统一等,还有项目架构选型的因素。一个项目的架构若是选的不好,从开发到上线的一系列过程都有可能受到影响。
- 对于开发架构,若是选择巨石框架或是SOA框架,相比起微服务框架来说,就显得比较笨重、不灵活,在扩展性上也差了很多,在开发过程上就已经慢了;
- 在数据库连接池选型上,当前比较热门的选择是druid、hikari,如何选择?还是得看那句老话,具体问题具体分析。看当前项目比较偏重于支持多功能还是比较偏重速度。druid支持许多hikari不支持的功能,包括性能方面支持PSCache、LRU、SLB负载均衡,稳定性方面支持ExceptionSorter,支持扩展,监控方面支持SQL级监控和Spring/Web关联监控,安全方面支持诊断支持、SQL防注入和配置加密等。因此,如果项目需要能支持多功能的数据库,就选择druid,如果比较看重的是速度,则选择hikari,据说这是世界上最快的数据库。
- 消息中间件选型:当前支持java的热门选择有kafka、rocketMQ、RabbitMQ,选型上应重视扩展性和性能,以及看团队的驾驭能力和技术栈。
T31项目我们团队架构选型:
- 微服务框架:springCloud
- 服务治理:springCloud alibaba——Nacos
- 远程通信:Feign
- 网关:springCloud gateway
- 数据库连接池:Druid
- 消息中间件:RocketMQ
- 缓存:redis
- 数据库相关:mysql、tkmybatis/spring data jdbc