分布式思维课笔记

xiaoxiao2022-06-11  35

javaweb架构进化过程:

javaweb雏形 单系统,单数据库

javaweb 集群 当javaweb 雏形不能承受服务压力时,可以通过对原有系统的“复制”形成集群,从而缓解服务压力,当然有集群就需要有负载均衡。同时对数据库使用读写分离。

javaweb 分布式 在使用集群时,如果只是因为某个压力服务过大需要集群时,那么就会造成“浪费”。可以通过重要服务分离独立来解决,从而有了“分布式”。分布式中需要解决的就是服务远程调用,以及分布式事务。

javaweb 微服务 分布式似乎已经是很好的架构模型了。近些年又出现了微服务。如果说分布式是以技术为基础的横向拆分扩展,那么微服务就是以业务为核心的纵向切分。

高并发常见解决方案

缓存(list、redis、memached)横向拓展(集群负载)拆分高负载服务,独立为一个模块大表数据切分(mysql分库分区分表 --> mycat)使用搜索中间件:solr、elasticsearch

缓存

使用缓存时要解决两个问题:

缓存击穿 :缓存中不存在值时,从数据库中查雪崩:大量缓存数据同时过期,同一时刻数据库访问量骤增(过期时间设置上想办法)

消息队列

消息队列的意义在于使服务与服务之间解耦。

每个应用启动时,主动建队列后续无论是收信息,还是发信息都只管往队列放数据队列中数据该往哪里路由,由mq管理者来配置,跟应用程序无关

同步转异步

java jdk 自带 FetureTask 和 Callable 来实现。

转载请注明原文地址: https://www.6miu.com/read-4932072.html

最新回复(0)