第十天、项目服务选型

138 阅读2分钟

1. 关于技术选型

1.为什么要做选型

  • 降低开发成本
  • 提高研发效率

2. 架构的演变

  1. 第一代架构是单体应用,所有的模块都打包到一起去部署 - 这种架构叫做巨石架构,这种架构缺点很多
    • 不可靠,一个BUG就可能拖垮整个应用系统
    • 项目是单维的,拓展性很差,只能通过添加服务器来解决
    • 不可持续发展,项目会越来越臃肿
  2. SOA架构(Service Oriented Architecture),是面向服务的架构,服务之间通过相互依赖最终提供一系列完整的功能。各个服务通常以独立的形式部署运行,服务之间通过网络进行调用。设计上面之上而下。
  3. 微服务架构 本质上属于去中心化的SOA的拓展,强调服务彻底的组件化。一个组件就是一个产品,服务切分的力度更小。设计上面自下而上,服务之间通过轻量级的协议进行通信。 好处: - 业务隔离 - 可以并行开发 - 易于运维 - 单独部署

3. SpringBoot诞生

以前搭建项目,需要引入一系列的工具,搭建起来很麻烦。后面就出现了SpringBoot方便快速的搭建项目,开发只需要把注意力集中在业务上面就好。

  • 方便的创建可独立运行的Spring应用程序
  • 直接内嵌了tomcat,Jetty等轻量级服务器
  • 简化了项目的构建配置
  • 为Spring及第三方库提供了自动配置
  • 提供了生产级的特性
  • 无需生成代码或者xml配置

2. 选型的考虑

微服务架构是从下往上的设计,所以在选型的时候可以从底层开始往上层进行选型。在选型的过程中,要根据实际情况对各种工具进行全方面的比较,挑选最合适自己业务的一个技术或者框架。保持新技能性能-旧技术性能+替换成本>0。以下是一些选型的顺序:

  1. 数据访问层的选型
  2. 消息中间件的考虑
  3. 远程通信框架的选型
  4. 网关技术的选型
    • 流量网关。关注稳定、安全。比如Ng
    • 业务网关。提供更好的服务。比如gateway

注:一个好的选型对项目以后的拓展以及系统的稳定性是极其重要的。