简单聊聊java架构的演进
程序员文章站
2022-05-07 19:14:02
架构演进:单体架构: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