`
lxy2520
  • 浏览: 6440 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

分布式系统基于缓存机制的实时开关系统——可将一个指令同时推送给N个主机

 
阅读更多

基于Memcached的开关机制

林小应

1. 问题描述

如果,应用系统需要调用远程服务,且现在有两个版本的服务, newServiceoldService。怎样在不停应用的情况下实现动态切换呢?

如果将serviceurl放进数据库也是一个办法,但放到哪一个数据库呢,我们的数据库是分布式多库。

答案是:可以放到Memcached中!

2. 期望

能实时、方便的改变应用系统中的变量值

3. 设计原理

在应用系统中定义一个变量名称,再启动一个线程,不断扫描MC,获取该变量的值。

如果想要改变应用系统中的变量值,只需要改变MC中的值就可以了。

我们的具体方案:

将指令系统分成单一指令和多指令

单指令SingleCommand:一个名称——一个指令值 如:实例数据是否使用异步方式 asyn4Inst

多指令:一组名称——一组指令值 如:基于13个本地网的一组多指令JS13AreasCommand

模型:

抽象指令Model

/**
 * @author linxy 2012-01-22
 * 
 */
public abstract class AbCommand {
	…
}


单指令

/**
 * 指令
 * 
 * @author linxy 2013-01-22
 * 
 */
public class SingleCommand extends AbCommand implements Serializable {…


基于13个本地网的指令

/**
 * 江苏13个本地网区域有效的命令
 * @author linxy 2013-01-22
 *
 */
public class JS13AreasCommand extends AbCommand{…

/**
 * 清缓存命令
 * @author linxy 2013-01-23
 *
 */
public class MCVersionRefreshCommand extends JS13AreasCommand{…


4. 用法示例

如果要使用指令系统,只需要做以下两步:

一、在配置文件中增加对应的指令配置,包括名称和类型

如单指令配置

多指令配置

二、在代码中获取指令值

//获取单指令cmdName:
CmdUtil.getSingleCommand(cmdName);
//获取areaCode地区的cmdName指令:
CmdUtil.getJS13AreasCommand(cmdName, areaCode);


qq:346420558

分享到:
评论

相关推荐

    分布式缓存系统Memcached

     现在一些.NET开发人员开始放弃ASP.NET内置的缓存机制,转而使用Memcached——一种分布式的内存缓存系统。当运行在单独的Web服务器上,你可以很容易地清除一个已经确认被改变了的缓存。可惜,ASP.NET没有一个很好的...

    基于redis的分布式缓存系统架构分析_张威.pdf

    这个代理程序监控Sentinel的切换行为,一旦发生主从切换,它会将新主节点的地址推送给Twemproxy,更新配置并重启Twemproxy,实现无中断的自动切换。 **分布式缓存系统的改进** 构建双主Redis集群(m1和m2)的...

    《分布式系统原理与范型》.pdf

    《分布式系统原理与范型》作为一本系统介绍分布式系统基本原理与实践应用的书籍,涵盖了分布式系统设计与实现的核心理念。分布式系统指的是由多个可以独立运行的计算单元构成的系统,这些计算单元通过通信网络相互...

    分布式系统架构——使用Redis做MyBatis的二级缓存 - CSDN博客1

    MyBatis的二级缓存机制允许开发者自定义缓存实现,这就为我们使用Redis这样的分布式缓存系统提供了可能。Redis是一个高性能的键值存储系统,适合存储大量的字符串、列表、集合、哈希表等数据结构,并支持丰富的操作...

    基于分布式系统的JAVA聊天系统

    本文将深入探讨一个基于分布式系统的JAVA聊天系统,它实现了客户端与服务器端的有效通信,并具备完善的容错机制。我们将从系统设计、核心技术、通信协议以及容错策略等多个角度进行详细解析。 首先,我们要理解什么...

    分布式系统设计模式——ppt模式

    首先,可伸缩设计模式是分布式系统设计中的一个关键主题。它关注的是如何在系统负载增加时有效地增加系统的计算能力或存储能力。可伸缩性可以通过垂直伸缩和水平伸缩两种基本方式实现。垂直伸缩通常指提升单个节点的...

    基于日志数据的分布式软件系统故障诊断综述.pdf

    本文综述了基于日志数据的分布式软件系统故障诊断的研究现状和关键技术。随着智能化技术的发展,特别是在智能运维(AIOps)领域,日志数据的故障诊断技术逐渐成为学术界和工业界研究的热点。日志数据作为软件运行...

    基于变化数据捕获机制的分布式缓存一致性策略.pdf

    然而,分布式缓存系统在设计与实现过程中,面临着一个重要的挑战——缓存一致性问题。 缓存一致性指的是当分布式系统中的数据发生更新时,各个缓存节点上存储的数据副本必须保持一致。这是分布式系统设计的核心问题...

    基于ZooKeeper的一种分布式系统架构设计与实现.pdf

    分布式系统架构设计与实现是当今互联网领域中一个非常重要的研究方向,特别是随着移动互联网的快速发展以及大数据应用水平的不断提高,分布式系统的关键业务组件需求越来越高,包括更好的可扩展性、可靠性和实时性。...

    分布式系统缓存一致性设计与应用.pdf

    研究者提出了不同的缓存一致性解决方案,包括基于事务内存的分布式编程环境中的缓存一致性维护机制和基于对象存储文件系统的协作式缓存一致性策略。缓存一致性的研究方向多样,取决于应用场景的不同需求。 本文提出...

    基于WCF的分布式缓存系统设计.pdf

    WCF技术是微软.NET框架3.5中的一个重要组成部分,用于实现分布式系统的远程数据传输。它整合了.NET远程调用(Remoting)、Web服务(WebService)、套接字(Socket)等多种通信机制,同时融合了HTTP和FTP等互联网通信...

    基于分布式协同缓存机制的Web Proxy研究

    ### 基于分布式协同缓存机制的Web Proxy研究 #### 概述 随着互联网的快速发展,用户对Web服务的需求日益增长,Web缓存技术作为提高用户体验和减轻服务器负载的有效手段,得到了广泛的应用。传统的单点Web缓存已经...

    分布式系统原理与范型第二版课后习题答案

    分布式系统是一种由多台计算机组成的网络系统,这些计算机在用户看来就像是一个单一的系统。它们通过网络互相通信和协调工作,以共同完成任务。分布式系统的设计和实现涉及许多核心概念和原则,例如透明性、开放性、...

    基于Cassandra的实时气象数据分布式存储系统.pdf

    每个数据项都会被复制到N个节点(N是通过参数配置的副本因子),系统利用数据的复制机制将存储在各节点上的数据复制到其他结点上,实现了数据的高度可获得性和安全性。 1.2 数据模型 Cassandra使用宽列存储模型,...

    分布式系统缓存设计

    本文将浅析分布式系统缓存设计的相关知识点,内容涵盖了缓存系统的必要性、缓存的层级、缓存面临的问题及其解决方案,以及缓存数据结构的设计和管理方法。 一、缓存系统的重要性 分布式系统缓存设计之所以重要,是...

    管理系统系列--【基于shiro的权限管理系统——分布式版】一个用spring、mybatis、redis和shir.zip

    【标题】:“管理系统系列--【基于shiro的权限管理系统——分布式版】”是一个全面的教程,旨在介绍如何构建一个利用Spring、MyBatis、Redis和Shiro技术的分布式权限管理系统。这个项目旨在提供一个安全、高效且可...

    分布式系统原理介绍.pdf

    CAP理论是分布式计算中的一个著名理论,指出在一个网络分区发生的情况下,系统要么保证一致性,要么保证可用性,但不能同时保证两者。 由于分布式系统的复杂性,系统设计者需要掌握多种技术和算法,并在实践中不断...

    分布式系统原理与范型

    第二部分给出了一些实际的分布式系统:基于对象的分布式系统、分布式文件系统、基于文档的分布式系统以及基于协作的分布式系统,介绍了一些实际系统的设计思想和实现技术。全书结构清晰,内容全面经典,系统性与先进...

    分布式系统——概念和设计 英文版

    用户通常将分布式系统视为一个整体,而非单个组件的集合。 2. **分布式计算基础**:书中首先介绍了分布式计算的基本原理,包括通信机制、消息传递、并发控制等,为后续深入探讨分布式系统的设计和实现奠定了坚实的...

    基于ZooKeeper的分布式缓存的设计与实现.pdf

    ZooKeeper被设计为一个高性能的分布式协调服务框架,可以管理分布式环境中各个缓存服务器之间的共享状态数据,以支持分布式缓存系统的稳定运行。ZooKeeper本质上是一个分布式的小文件存储系统,可以维护和协调分布式...

Global site tag (gtag.js) - Google Analytics