首页 > 其他分享 >分布式缓存

分布式缓存

时间:2023-09-18 15:38:22浏览次数:38  
标签:缓存 架构 业务 集中式 集群 本地 分布式

集群/垂直架构缓存:

1 集群架构(1-2):

  • 集群架构1: a. 所有业务都访问同一个集中式缓存. b. 业务是混合进行部署,业务划分不清楚.
  • 集群架构2(多个应用单独部署): a. 不同的业务做独立的划分,独立的部署. b. 每种业务使用独立缓存,从业务层将缓存进行互相隔离,防止互相影响. c. 业务项目根据一定的边界做了简单的拆分,分别做了集群部署. => 推荐DDD d. 业务间可以通过接口来访问.

2. 集群架构3:

  • 在一定程序降低了耦合度,当并发量增大时,使用本地缓存和集中式缓存二级缓存相结合的架构. a. 将一些变化较少的数据放到本地缓存中,来抗并发. b. 一些变化较多的数据放到集中式缓存中配合使用.
  • 对于缓存一致性要求不高,允许出现不同项目实例间. a. 在同一响应时间,会出现本地和集中缓存不一致的情况.

3. 集群架构4:

  • 可以监听将本地缓存与集中缓存,实现本地缓存数据同步,来处理缓存一致性的问题. a. 用户在后台修改集中式缓存信息,有专门的程序来监听缓存变化,再将变化的数据发到zookeeper中. b. 由zookepper来统一通知所有业务项目的本地缓存,再做更新.
  • 如果中间某个环节的中断了,该如何保证变化的数据不丢失? a. 可以通过各种机制和业务需求来保证.

4. 集群架构特点:

  • 特点: a. 以单体项目为基础进行业务系统的划分. b. 系统之间存在数据冗余,系统耦合度较高.
  • 优点: a. 项目架构简单,开发成本低. b. 可以针对某一系统瓶颈进行适当扩展. c. 不同系统可以用不同的技术实现.
  • 缺点: a. 全部功能依然在一个系统中,后期难为维护. b. 集群扩展到一定程度就会产生瓶颈.

标签:缓存,架构,业务,集中式,集群,本地,分布式
From: https://blog.51cto.com/u_16237074/7511121

相关文章

  • MinIO分布式部署
    目录先决条件网络和防火墙网络防火墙负载均衡顺序的主机名驱动器要求XFS格式性能最优最小IO顺序的驱动器名任意迁移时间同步考虑相同的硬软件环境存储容量规划推荐的操作系统预先存在的数据部署分布式MinIO在每一个节点上安装MinIO创建服务文件minio.service创建环境文件添加TLS/S......
  • 分布式一致性算法——Raft
    RaftLeaderElection背景介绍Raft是一种用于管理Log的分布式一致性算法,在了解Raft之前首先需要了解为什么需要Log?对于不同的系统,无论是中间件疑惑是其余的系统,我们如果想要求其满足CAP协议中的一致性,需要尽量保证多节点的数据是相同的,也就是所谓的“共识”。下文中将这些需要......
  • 极速上手Python分布式爬虫
    随着互联网的快速发展,获取大量数据已成为许多项目的核心需求。而Python分布式爬虫是一种高效获取数据的方法。今天,我将个大家分享一下,想要极速上手Python分布式爬虫的一些知识,让你能够迅速掌握这一实用的技术。什么是分布式爬虫?分布式爬虫是一种利用多台机器协同工作的爬虫系统。它......
  • 分布式系统设计
    1.分布式系统组件---消息队列RocketMq(重要特性:事务消息,半事务机制首选方案,最终一致性,死信队列,补偿方案)2.分布式系统组件---消息队列Kafka3.高并发系统,提升QPS,提升并发能力利器----Redis集群高可用方案4.大型分布式数据库系统选型和研究--- TiDB......
  • 深入探讨Spring Cloud Config的分布式事件
    介绍SpringCloudConfig是一个分布式配置管理工具,它可以将应用程序的配置集中管理,并提供了RESTAPI和Web界面来访问这些配置。在分布式系统中,配置管理是非常重要的,因为它可以帮助我们快速地修改应用程序的配置,而不需要重新部署应用程序。在本文中,我们将深入探讨SpringCloudConf......
  • .net core 浏览器缓存设置
    1、浏览器缓存设置  [ResponseCache(Duration=20)] 将ResponseCache特性设置在接口方法上就可以了,Duration中的时间是以秒为单位2、服务端缓存设置 a、将app.UseResponseCaching()方法放在app.MapControllers()方法之前  b、如果使用了app.UseCors()方法,要确保app.......
  • MySQL——分布式锁
    锁锁是一种抽象概念,是一种思想。并发环境下,多个线程会对同一资源争抢,可能导致数据不一致的问题。因此,很多编程语言都引入了锁。Java中的锁互斥锁(悲观锁(有锁同步))操作系统悲观地认为如果不严格同步线程调用,那么一定会产生异常,互斥锁将会将资源锁定,只供一个线程调用,阻塞其他线程(......
  • 分布式
    单机服务器常发生的问题在单机服务器中,常常会面临以下几个问题:服务器电脑宕机:这是最常见的问题之一,当服务器的硬件或者软件出现故障时,可能导致服务器无法正常运行。这种情况下,系统管理员需要及时排查故障原因,并修复问题,以保证服务器的稳定性和可用性。网络异常:网络连接是服......
  • 深入探讨Spring Boot中的Redis缓存
    介绍Redis是一种高性能的内存数据库,常用于缓存和消息队列等场景。在SpringBoot中,我们可以通过集成Redis来实现缓存功能。本文将深入探讨SpringBoot中的Redis缓存,包括如何配置、如何使用以及一些注意事项。配置在SpringBoot中,我们可以通过在application.properties或applicati......
  • 单机缓存
    1.单体架构缓存应用:(1).数据库查询缓存:早期java简单的数据缓存:a.本地缓存(map)b.缓存第三方组件库(ConcurrentHashMap、OSCache)主要应对缓存一些数据库的查询数据.弊端:a.配置信息、通用信息,本地缓存无法形成一致性.(2).集中式缓存:如memcached分布式集群,用于存放一些......