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

article/2025/11/8 7:22:42

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/

 转载请注明出处:http://www.cnblogs.com/cjh-notes/p/7912674.html

转载于:https://www.cnblogs.com/cjh-notes/p/7912674.html


http://chatgpt.dhexx.cn/article/apJrTvC7.shtml

相关文章

IOCP与ASIO关系

笔记 IOCP&#xff1a;Input/Output Completion Port&#xff0c;Windows独有的内核对象&#xff0c;内核级完成IO的传输 &#xff0c;数据到来的时候自动把数据搬运到用户态的内存区&#xff0c;不需要拷贝文件描述符FileDescription&#xff08;fd&#xff09;到内核态查询状…

IOCP工作原理

文章来源&#xff1a;http://blog.csdn.net/zhongguoren666/article/details/7386592 本文主要探讨一下windows平台上的完成端口开发及其与之相关的几个重要的技术概念&#xff0c;这些概念都是与基于IOCP的开发密切相关的&#xff0c;对开发人员来讲&#xff0c;又不得不给予足…

Windows IOCP

Windows IOCP IOCP全称I/O Completion Port&#xff0c;中文译为I/O完成端口。IOCP是一个异步I/O的Windows API&#xff0c;它可以高效地将I/O事件通知给应用程序&#xff0c;类似于Linux中的Epoll。 简介 IOCP模型属于一种通讯模型&#xff0c;适用于Windows平台下高负载服务器…

IOCP小结

文章目录 一 什么是完成端口&#xff08;completion port&#xff09;对象二 使用IOCP的方法创建完成端口对象I/O服务线程和完成端口完成端口和重叠I/O 三 恰当地关闭IOCP四 IOCP大概的处理流程五 一个简单示例具体编程流程 当应用程序必须一次管理多个套接字时&#xff0c;完成…

IOCP高性能服务器的实现

应用场景说明&#xff1a;完成端口在面向现实应用的许多网络通信中应用很广泛&#xff0c;例如大型多人在线游戏&#xff0c;大型即时通信系统&#xff0c;网吧管理系统以及企业管理系统等具有大量并发用户请求的场合。 实现目标说明&#xff1a;通过完成端口模型构建一款服务…

IOCP 详解

IOCP 详解 网络上关于epoll的介绍资料多如牛毛&#xff0c;大多数已经讲解的非常细致。相比而言epoll只有三个接口调用&#xff0c;IOCP却有一堆的接口调用&#xff0c;更关键的是Windows的闭源性质&#xff0c;我们不知道调用之后Windows究竟做了哪些操作。众所周知IOCP是基于…

IOCP简介

1.1 环境要求本文读者需要熟悉C、TCP/IP、Socket编程、MFC&#xff0c;和多线程。源码使用Winsock 2.0和IOCP技术&#xff0c;要求&#xff1a;Windows NT/2000或以上&#xff1a;要求Windows NT3.5或以后版本Windows 95/98/ME&#xff1a;不支持Visual C.NET&#xff0c;或完整…

什么是IOCP

百度词条 输入输出完成端口&#xff08;Input/Output Completion Port&#xff0c;IOCP&#xff09;, 是支持多个同时发生的异步I/O操作的应用程序编程接口 一个IOCP对象&#xff0c;在操作系统中可关联着多个Socket和&#xff08;或&#xff09;文件控制端。 IOCP对象内部有一…

IOCP

载自&#xff1a;http://blog.csdn.net/markman101/article/details/6235516 本文主要探讨一下windows平台上的完成端口开发及其与之相关的几个重要的技术概念&#xff0c;这些概念都是与基于IOCP的开发密切相关的&#xff0c;对开发人员来讲&#xff0c;又不得不给予足够重视的…

IOCP模型与网络编程

IOCP模型与网络编程 一。前言&#xff1a; 在老师分配任务&#xff08;“尝试利用IOCP模型写出服务端和客户端的代码”&#xff09;给我时&#xff0c;脑子一片空白&#xff0c;并不知道什么是IOCP模型&#xff0c;会不会是像软件设计模式里面的工厂模式&#xff0c;装…

Windows下的IOCP模型(一):介绍与简单使用

一、IOCP简介 IOCP&#xff08;I/O Completion Port&#xff0c;I/O完成端口&#xff09;是Windows操作系统中伸缩性最好的一种I/O模型。I/O 完成端口是应用程序使用线程池处理异步 I/O 请求的一种机制。处理多个并发异步I/O请求时&#xff0c;使用 I/O 完成端口比在 I/O 请求时…

完成端口(IOCP)编程探讨

FW: http://www.zhuaxia.com/item/473350387 完成端口(IOCP)编程探讨 2007-08-26 16:06:00 来自&#xff1a;C博客-首页原创精华区 新建目录...根目录新手试用频道 本文主要探讨一下windows平台上的完成端口开发及其与之相关的几个重要的技术概念&#xff0c;这些概念都是与…

异步通信之IOCP详解

一、 概述 学习完网络基础&#xff0c;在写C/S应用程序时&#xff0c;大多童靴写服务器基本都没有用到io模型&#xff0c;基本都是采用“accept同步拥塞通讯和多线程方式”与客户端通讯。但当有成千上万客户端请求连接并与服务器通讯时&#xff0c;多线程的创建与CPU上下文的切…

IOCP详解

IOCP详解 IOCP&#xff08;I/O Completion Port&#xff0c;I/O完成端口&#xff09;是性能最好的一种I/O模型。它是应用程序使用线程池处理异步I/O请求的一种机制。在处理多个并发的异步I/O请求时&#xff0c;以往的模型都是在接收请求是创建一个线程来应答请求。这样就有很多…

IOCP技术详解

这几周我接触了Windows网络通讯中的IOCP模型,自己在网上找了相关的知识进行学习&#xff0c;自己又下了好多服务器端的代码&#xff0c;但都运行不了&#xff0c;也是自己菜&#xff0c;能力还需加强。幸好我师父资助了我一个能运行的服务端IOCP代码&#xff0c;自己参照网上的…

Python正则表达式模式

在 Python 程序中&#xff0c;模式字符串使用如下特殊的语法来表示一个正则表达式&#xff1a; 字母和数字表示它们自身&#xff0c;一个正则表达式模式中的字母和数字匹配同样的字符串&#xff1b;当大多数字母和数字前加一个反斜杠时&#xff0c;它们会拥有不同的含义&#…

Python正则表达式实例详解

一、正则表达式语法 正则表达式是用匹配或者描述字符串的工具。 用处&#xff1a; a.判断字符串是否满足某个条件—判断输入的字符串是否是邮箱/手机号码。是否是ip地址 b.提取满足条件的字符串 c.字符串替换 Python中通过re模块中相应的方法来支持正则表达式的匹配、查找和替…

Python正则表达式语法快速入门

文章目录 1 正则符号初阶代码举例1&#xff1a;不同符号的组合代码举例2&#xff1a;符号加&#xff0c;代表连续的一个或多个代码举例3&#xff1a;匹配字符串开始代码举例4&#xff1a;匹配字符串结束代码举例5&#xff1a;匹配单词边界 2 正则符号进阶代码举例1&#xff1a;…

python正则表达式入门

&#x1f64a;今天我们来学习python的正则表达式的部分&#xff0c;先说下为什么要学习这一部分呢&#xff0c;当然是因为正则表达式处理文本类型的数据实在是太方便了。为以后进入nlp领域打打基础&#xff01; 先给大家推荐一个网站: 用于正则表达式验证. 大致就长这个样子。…

python使用正则表达式

一、使用正则表达式步骤 1、寻找规律&#xff1b; 2、使用正则符号表示规律&#xff1b; 3、提取信息&#xff0c;如果每一个字符都能匹配&#xff0c;则匹配成功&#xff1b;一旦有匹配不成功的字符则匹配失败。 二、正则表达式中常见的基本符号 1&#xff0e;点号“.”一…