-
配置池怎么设计0
1.有个后台服务A,访问它需要一些用户信息(用户名,密码等)
2.想提供一个新的服务B,把这些配置信息管理起来,以池的方式对外提供服务。比如,配置10组用户信息,客户端C请求B时,从池里取出一组用户信息访问后台服务A,访问后,释放配置信息到池中供其他客户端使用
问题:B可能是以集群方式部署的,即有B1,B2等多台物理或逻辑机器,C每次请求可能到B1,也可能到B2,如何设计配置池满足这种需求
方案:采用缓存服务器存储配置信息。目前项目中没用到缓存服务器,如果因为这个功能增加一个,感觉有点小题大做了。是否还有其他更简单的方法。
2013年5月04日 09:14
3个答案 按时间排序 按投票排序
-
采纳的答案
1楼建议在上层增加BX服务,但还是没解决BX从B1/B2/B3……访问到的数据一致性问题。但是这种方式可以增加扩展性(即:如果后面你增加了缓存服务器,那么客户端C可能就要更改实现方式了,如果有了BX服务,那么只要更改BX访问缓存服务器即可)
我的理解是这样的。
1.配置池类似于无顺序的栈。(客户端C获取配置,就是出栈;客户端C释放配置,就是压栈,不过栈内数据是随机的)
2.由于配置池是放在B中,而B是随时可能做集群横向扩展的(目前不想增加缓存服务,但是又需要保证集群所有节点的配置信息一致)
不知道我的理解是否正确。
如果是这样的话,可以考虑以下方式:
配置池实现:
配置信息存放到集合中,配置池提供一个门面接口,只要访问这个门面接口,该接口通过随机算法(如果有特殊的均衡性要求),从集合中取出一个配置(并且从集合中remove掉取出的配置)
缓存实现:
1.在B服务中增加支持集群部署的分布式缓存(不需要单独部署缓存服务),只要缓存数据做变更,会通过底层的组播通信自动同步到所有节点。这样不管客户端C访问哪一台server,每个server都返回相同的数据:可考虑jbosscache、ehcache(oscache也能做到)。
优点:利用现有的应用,不需要单独部署
缺点:由于每次缓存数据做变更,会通过udp组播(jgroup)或者是jms通知所有集群节点更新数据,对生产环境有影响(如果缓存数据更新较少,则影响忽略不计)。
2.单独部署缓存服务器(你已经忽略了,暂时不考虑)2013年5月04日 10:28
-
看你的需求类似于的数据库连接池实现
1、写一个配置信息的应用/服务 单独部署
2、写一个配置信息获取的客户端,从应用/服务获取配置/释放配置,其他项目依赖
3、这样如果性能不好 还可以再扩展 比如加缓存之类的 因为有客户端 这些细节可忽略2013年5月04日 10:38
-
好复杂的池啊。
在B1、B2上层增加一个Web服务BX,所有获取配置信息的客户端C1、C2、C3,直接访问BX即可,具体在集群中选择哪个节点的工作交由BX去做,BX中还可以做一下缓存。2013年5月04日 10:07
相关推荐
总的来说,CASS池的曝气池设计是一个综合考虑微生物代谢、气体传递效率、工艺运行周期和设备选型的过程,需要精确计算和合理配置,以实现高效、稳定的污水处理效果。设计时还需要参考相关的专业书籍和研究文献,以...
花式喷水池装置PLC控制梯形图的设计与调试 一、PLC控制系统的设计 PLC(Programmable Logic Controller)是一种可编程的逻辑控制器,广泛应用于工业自动化控制领域。PLC控制系统的设计是指根据控制要求,选择合适...
3. **线程安全**:C3P0连接池设计为线程安全,可以在多线程环境中并发使用。 4. **支持JNDI**:可以将C3P0连接池注册到JNDI服务器,方便应用查找和使用。 5. **多种数据库兼容**:C3P0支持多种主流的数据库,如...
### Struts配置数据库连接池详解 #### 一、引言 在基于Struts框架的应用程序设计与开发过程中,为了确保良好的架构分离性以及提高代码的复用性与可测试性,通常会在Web/表示层(Presentation Layer)与业务逻辑层...
通过以上分析,我们可以看出OkHttp的连接池设计旨在优化网络通信的效率,降低延迟,并且提供了丰富的定制选项以适应不同应用场景的需求。理解并充分利用这些特性,可以帮助我们构建更加高效、可靠的网络应用。
- HikariCP:被誉为最快的JDBC连接池,其设计目标是极致的性能和稳定性。 - Tomcat JDBC Connection Pool:Tomcat服务器内置的连接池,轻量级且易于配置。 - BoneCP:另一个高性能的连接池,但已停止维护。 3. *...
在Java开发中,FTP(File Transfer Protocol)客户端的连接池设计是提高系统性能和资源管理效率的重要技术。连接池允许程序重复使用已经建立的FTP连接,避免了频繁创建和关闭连接带来的开销,提升了整体的运行效率。...
学习IIS需要理解其主要组件,如应用程序池、网站、虚拟目录等,并掌握如何创建、配置和管理这些元素。IIS不仅支持静态网页,还能处理动态内容,如ASP.NET应用程序。此外,安全设置也是IIS管理中的关键部分,包括SSL...
DBProxy 连接池设计文档 1. 目标 DBProxy 的主要目标是提供一个高效、稳定且可扩展的数据库连接池服务。它旨在优化数据库访问性能,通过复用已建立的数据库连接来减少系统资源消耗,同时提供管理功能以确保系统的...
5. **连接超时处理**:如果某个线程长时间未归还连接,连接池可以配置为自动断开该连接,以释放资源供其他线程使用。 #### 三、手动设计自定义数据库连接池 在实际开发过程中,有时可能会遇到标准的连接池解决方案...
基于Java的数据库连接池设计与优化技术可以极大地提高数据库的访问效率,实现了对连接池的灵活配置和 tinh动管理。本文提出的动态连接池的优化模型可以满足系统的实际需要,提高系统的性能和可靠性。
本篇文章将详细探讨如何在Java Web项目中配置Tomcat连接池以及涉及的相关知识点。 首先,我们需要了解什么是连接池。连接池是一种在应用程序启动时预先创建并维护一定数量的数据库连接的机制,当应用程序需要访问...
### 基于Java的数据库连接池技术的设计与实现 #### 概述 数据库连接池技术是现代软件开发中的一项关键技术,特别是在Java企业级应用中。它通过预先创建一定数量的数据库连接,并将这些连接组织成一个池,来提高...
- **审查初始池设计**:确保池设计符合网络配置的需求。 - **计算每个主机所需的物理NIC数量**:根据虚拟机的数量和类型,计算每个主机需要配备多少个物理网络接口卡。 - **计算带宽需求**:根据预期的工作负载...
面向运维自动化的云资源池设计包括IT服务管理流程自动化(ITSM Workflow)、配置管理数据库(CMDB)、服务保证和服务交付。通过自动化运维流程,如用户管理、容量规划、性能监控等,可以显著提高效率,减少人为错误...
本文档将叙述存储资源池系统及软件规划配置方案,涵盖存储资源设计原则、存储资源配置方案、存储架构选择、存储容量估算模型、备份需求、容灾节点存储需求等方面的知识点。 1. 存储资源设计原则 正确的存储设计对...
4. **精细化资源评估**:通过对业务需求的深入分析,合理规划资源池的规模和配置,避免资源浪费。 5. **多租户隔离技术**:在保证资源池共享的同时,通过多租户技术实现不同用户之间的资源隔离,提高安全性。 #### ...
蓄水池设计为方形,内部设有支柱,墙体和地面有特定的防水砂浆和水泥砂浆抹面处理。水池的结构包括钢筋混凝土构造,要求抗渗等级为S8,混凝土强度等级分别为C10和C25。 施工中需要重点控制的内容包括地基验收,以...
6. **配置参数**:如最大连接数、最小连接数、超时时间、空闲时间等都是可配置的,它们直接影响连接池的性能和效率。 总结来说,Kafka生产者连接池是通过复用连接资源来优化Kafka生产者性能的一种高效策略,结合...