分布式缓存之Ehcache与terracotta - Terracotta服务器概念篇

1、介绍

Terracotta服务器为Terracotta产品提供分布式数据平台。Terracotta服务器集群被称为Terracotta服务器阵列(TSA)。Terracotta服务器阵列可以从单个服务器,到一个用于高可用性(HA)的基本的双服务器串联,再到一个提供可配置的规模、高性能和深度故障转移覆盖的多服务器阵列。

Terracotta服务器的主要特性包括:

  • 分布式内存数据管理:在内存中管理比数据网格多10-100x的数据
  • 不复杂的可伸缩性:简单的配置和部署选项,用于扩展以满足日益增长的需求并促进容量计划
  • 高可用性:正常运行和服务的即时故障转移
  • 可配置的健康监测:Terracotta健康检查器监控客户端和服务器的健康状况
  • 持久化状态:自动永久存储所有当前共享内存数据,并在服务器重启后实现快速的恢复
  • 节点自动重连:临时断开的服务器实例和客户端重新加入集群,而不需要操作员干预

服务器目录说明

server
└─bin -- 可执行文件,如启动服务器的文件 start-tc-server
└─conf -- 配置文件
└─lib
└─plugins

2、配置文件

Terracotta配置文件是一个xml格式的文件,名为tc-config。

该文件用于配置单个Terracotta服务器阵列(TSA)条带的所有成员。

您可以使用工具包中提供的示例配置文件作为Terracotta配置的基础。一些示例中有描述配置元素的内联注释。

2.1 配置部分的解释


元素名称

描述

Servers

Servers部分定义了组成集群的所有服务器。通过配置和运行至少2个服务器,可以实现高可用性。

请注意,如果没有明确配置哪个服务器充当主动或被动的角色,这样可能会在集群的生命周期中发生变化。

服务器部分中的每个服务器元素都是由name属性指定的名称标识的:

<server ... name="ServerName">


Plugins


Plugins部分通过注册和配置可提供给这些服务器的附加服务,以及提供对所有服务可用的通用配置信息,扩展了列出的服务器的功能。

使用扩展点是服务器使用您的应用程序端点(服务)的必要条件。


Properties


tc-properties部分公开了一个键-值对的列表,以进一步定制集群的行为。注意,这个部分通常是空的。

2.2 简单的配置示例

这是一个非常简单的服务器配置文件的示例。

<tc-config xmlns="http://www.terracotta.org/config">
<servers>
<server host="localhost" name="testServer0">
<logs>terracotta-kit-test/testServer0/logs</logs>
<tsa-port>26270</tsa-port>
<tsa-group-port>26271</tsa-group-port>
</server>
</servers>
</tc-config>

这显示了标准配置的关键组件,但是只描述了一个没有使用扩展点的服务器。

关键点:

  1. 配置名称空间http://www.terracotta.org/config。
  2. 只有一个名为testServer0的服务器。(服务器名称很重要,因为它在启动服务器时会被使用;在实际部署中,应该用完整的主机名或服务器的IP地址替换localhost。)
  3. 给出了一个日志目录的相对路径。(在实际部署中,应该用完整的主机名或服务器的IP地址替换localhost。)
  4. tsa-port是客户端连接到服务器时使用的端口(默认为9410)。
  5. 尽管在这种情况下没有其他服务器(默认为9530),但tsa-group端口是用于跨服务器通信的。
  6. 在上面的示例配置中,不可能重新启动或故障转移,因为重新启动支持需要一个扩展点,该扩展点提供了该功能,而故障转移至少需要在集群中至少有两个服务器。

2.3 参数替换

参数替换提供了在Terracotta服务器配置文件中使用预定义的系统属性替换变量的方法。因此,可以根据特定于机器的属性来智能地填充大量的字段。参数替换通常用于主机名、IP地址和目录路径替换。

可使用的参数替换如下:


参数名称


描述


%h


完整的主机名


%i


IP地址    


%H


用户主目录


%n


用户名


%o


操作系统名称


%a


处理器架构


%v


操作系统版本


%t


临时目录(在Linux或Solaris上,例如,/tmp)


%(property)


JVM的Java系统属性(例如%(Java.home),%(logs.path))


%D


时间戳 (yyyyMMddHHmmssSSS)

可以在适当的地方使用这些参数,包括期望字符串或值路径的元素或属性。

3、启动服务器

启动脚本参数:

  • [-f /path/to/tc-config.xml] - 指定配置文件路径
  • [-n server_name] - 在配置了多个服务器的情况下指定启动服务器名称

On Windows:

cd <path/to/terracotta/kit>/server/bin
start-tc-server.bat -f <path/to/server/config>/tc-config.xml

On Unix/Mac:

cd <path/to/terracotta/kit>/server/bin
./start-tc-server.sh -f <path/to/server/config>/tc-config.xml

注意:在启动Terracotta服务器前,请先检查需要的java版本。Terracotta5.x需要Java 8的支持。

检查下面的信息日志,以确认服务器是否成功启动, Terracotta Server instance has started up as ACTIVE node on 0:0:0:0:0:0:0:0:9410 successfully, and is now ready for work.

windows下启动成功示例:

Terracotta服务器下载地址:http://www.terracotta.org/open-source/

时间: 2024-08-30 10:01:07

分布式缓存之Ehcache与terracotta - Terracotta服务器概念篇的相关文章

Java 开源分布式缓存框架Ehcache

Ehcache 是一个Java实现的开源分布式缓存框架,EhCache 可以有效地减轻数据库的负载,可以让数据保存在不同服务器的内存中,在需要数据的时候可以快速存取.同时EhCache 扩展非常简单,官方提供的Cache配置方式有好几种.你可以通过声明配置.在xml中配置.在程序里配置或者调用构造方法时传入不同的参数. 以下是EhCache 的架构图: Ehcache有以下特点: 存取速度非常快,性能很不错. 可以应用多种缓存策略. 分级缓存,用户可以指定哪些数据在硬盘中缓存,哪些数据在内存中缓

memcache缓存服务器概念篇

1,memcache简介 mamcache是一套分布式的高速缓存系统,可以提高网站访问的速度,尤其是对于一些大型的公司或者频繁访问数据库的网站访问速度提升效果十分显著,memcache是一个开源免费的软件,memcache通过键值对的访问将数据缓存在内存当中,减少从后端数据读取数据的次数. 2,memcache分布式缓存系统 分布式:将数据分散存储在不同服务器上.缓存系统:严格意义上来说,memcache不是一个nosql数据库,只是提供内存缓存功能系统,那怎么理解别人来说memcache是一个

Window平台搭建Redis分布式缓存集群 (一)服务器搭建及性能测试

百度定义:Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型),为了保证效率,数据都是缓存在内存中. 区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步. 以前公司一直在使用ehcache缓存,但是随着业务增多和用户访问量的增多

5个强大的Java分布式缓存框架推荐

在开发中大型Java软件项目时,很多Java架构师都会遇到数据库读写瓶颈,如果你在系统架构时并没有将缓存策略考虑进去,或者并没有选择更优的缓存策略,那么到时候重构起来将会是一个噩梦.本文主要是分享了5个常用的Java分布式缓存框架,这些缓存框架支持多台服务器的缓存读写功能,可以让你的缓存系统更容易扩展. 1.Ehcache – Java分布式缓存框架 Ehcache是一个Java实现的开源分布式缓存框架,EhCache 可以有效地减轻数据库的负载,可以让数据保存在不同服务器的内存中,在需要数据的

Java分布式缓存框架

http://developer.51cto.com/art/201411/457423.htm 在开发中大型Java软件项目时,很多Java架构师都会遇到数据库读写瓶颈,如果你在系统架构时并没有将缓存策略考虑进去,或者并没有选择更优的缓存策略,那么到时候重构起来将会是一个噩梦.本文主要是分享了5个常用的Java分布式缓存框架,这些缓存框架支持多台服务器的缓存读写功能,可以让你的缓存系统更容易扩展. 1.Ehcache – Java分布式缓存框架 Ehcache是一个Java实现的开源分布式缓存

EhCache 分布式缓存/缓存集群

开发环境: System:Windows JavaEE Server:tomcat5.0.2.8.tomcat6 JavaSDK: jdk6+ IDE:eclipse.MyEclipse 6.6 开发依赖库: JDK6. JavaEE5.ehcache-core-2.5.2.jar Email:[email protected] Blog:http://blog.csdn.net/IBM_hoojo http://hoojo.cnblogs.com/ http://hoojo.blogjava.

EhCache RMI 分布式缓存/缓存集群

EhCache 系统简介 EhCache 是一个纯 Java 的进程内缓存框架,具有快速.精干等特点. EhCache 的主要特性有: 快速.精干 简单: 多种缓存策略: 缓存数据有两级:内存和磁盘,因此无需担心容量问题: 缓存数据会在虚拟机重启的过程中写入磁盘: 可以通过 RMI.可插入 API 等方式进行分布式缓存: 具有缓存和缓存管理器的侦听接口: 支持多缓存管理器实例,以及一个实例的多个缓存区域: 提供 Hibernate 的缓存实现: EhCache集群解决的问题:  由 于 EhCa

Ehcache分布式缓存实现

开篇 ehcache提供三种网络连接策略来实现集群,rmi,jgroup还有jms.同时ehcache可以可以实现多播的方式实现集群,也可以手动指定集群主机序列实现集群. Ehcache支持的分布式缓存支持有三种RMI,JGroups,JMS,这里介绍下MRI和JGrpups两种方式,Ehcache使用版本为1.5.0. 环境为两台机器 server1 ip:192.168.2.154,server2 ip:192.168.2.23 RMI方式 rmi的方式配置要点(下面均是server1上的配

高性能服务器架构思路(五)——分布式缓存

版权声明:本文由韩伟原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/167 来源:腾云阁 https://www.qcloud.com/community 在分布式程序架构中,如果我们需要整个体系有更高的稳定性,能够对进程容灾或者动态扩容提供支持,那么最难解决的问题,就是每个进程中的内存状态.因为进程一旦毁灭,内存中的状态会消失,这就很难不影响提供的服务.所以我们需要一种方法,让进程的内存状态,不太影响整体服务,甚至最好