欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

简单聊聊java架构的演进

程序员文章站 2022-11-30 19:30:54
架构演进:单体架构:All In One。多机部署:将程序和数据库已经存储文件系统单独的部署。集群部署:将程序部署多个。问题1:用户的请求到底要发送到哪台机器上。 - Nginx问题2:Session中的数据无法共享。 - Redis问题3:对于一些热点数据的查询,可能会导致数据库的宕机。 - Redis问题4:搜索数据,导致索引失效,全盘扫描,可能会导致数据库的宕机。 - ElasticSearch垂直架构:将功能模块单独的分离出来,自己部署自己的,不交互。分布式....

架构演进:

  • 单体架构:All In One。
  • 多机部署:将程序和数据库已经存储文件系统单独的部署。
  • 集群部署:将程序部署多个。
    • 问题1:用户的请求到底要发送到哪台机器上。 - Nginx
    • 问题2:Session中的数据无法共享。 - Redis
    • 问题3:对于一些热点数据的查询,可能会导致数据库的宕机。 - Redis
    • 问题4:搜索数据,导致索引失效,全盘扫描,可能会导致数据库的宕机。 - ElasticSearch
  • 垂直架构:将功能模块单独的分离出来,自己部署自己的,不交互。
  • 分布式架构:将功能模块单独的分离出来,独立部署,对外提供网络访问的接口。
    • Dubbo:采用RPC的通讯方式。
    • SpringCloud:采用Http的通讯方式。
    • 问题1:服务和服务之间异步通讯。 - RabbitMQ。
    • 问题2:服务和服务之间相互通讯需要通过ip:port去访问,项目维护大量ip:port很麻烦。 - Eureka
    • 问题3:服务和服务之间通讯需要负载均衡。 - Robbin
    • 问题4:简化服务和服务之间通讯,采用面向接口的方式。 - Feign
    • 问题5:线程的隔离,服务的降级,断路器。 - Hystrix。
    • 问题6:后台服务提供统一的入口。 - Zuul
    • 问题7:统一的配置中心,管理所有服务的配置文件。 - Config
  • 微服务架构:
    • 就是分布式架构的一种。
    • 微服务架构就是一个风格,没有统一的标准。
    • 将一个完整的项目,拆分成多个微小的服务。
    • 每个服务可以独立部署。
    • 支持多语言开发。
    • 采用Http的方式进行通讯。
  • 服务越多,维护的成本越高。 - Docker。
  • 传统的功能再分布式的环境下失效了。
    • 分布式锁,分布式事务,分布式任务。

本文地址:https://blog.csdn.net/m0_46802363/article/details/107199892