Table des matières
开源项目以及Terracotta公司" >Terracotta开源项目以及Terracotta公司
核心平台DSO" >Terracotta核心平台DSO
Maison base de données tutoriel mysql Terracotta 3.2.1简介 (一)

Terracotta 3.2.1简介 (一)

Jun 07, 2016 pm 03:30 PM
简介

Terracotta 开源 项目以及Terracotta公司 Terracotta是一款由美国Terracotta公司开发的著名开源Java集群平台。它在JVM与Java应用之间实现了一个专门处理集群功能的抽象层,以其特有的增量检测、智能 定向 传送、分布式协作、服务器镜像、分片等技术,允许用

Terracotta开源项目以及Terracotta公司

Terracotta是一款由美国Terracotta公司开发的著名开源Java集群平台。它在JVM与Java应用之间实现了一个专门处理集群功能的抽象层,以其特有的增量检测、智能定向传送、分布式协作、服务器镜像、分片等技术,允许用户在不改变现有系统代码的情况下实现单机Java应用向集群话应用的无缝迁移。使得用户可以专注于商业逻辑的开发,由Terracotta负责实现高性能、高可用性、高稳定性的企业级Java集群。

Terracotta公司目前在美国、欧洲、澳大利亚、印度等地有近百名员工,为Terracotta商业用户提供7x24技术支持、解决方案咨询等服务。同时在Terracotta开源产品之上提供适用于企业用户的高端产品。

Terracotta公司在2009年收购了著名的Java开源缓存项目Ehcache以及Java任务调度项目Quartz。经过对该项目的深度整合,Terracotta推出了易用性更高的分布式缓存、分布式任务调度以及分布式Web Session等快捷解决方案,进一步方便了开发人员开发分布式Java应用。

Terracotta核心平台DSO

Terracotta核心平台是一个基于JVM的集群解决方案,允许用户在不修改代码的情况下把单机Java应用程序运行在多JVM的集群中。

其主要功能特点如下:

  • 实现单机Java应用到集群环境的平滑移植
  • 允许Java程序像访问本地数据数据一样访问集群共享数据,并且实现对共享数据的集群范围内的访问同步
  • 提供给予网络的虚拟内存管理,允许Java程序访问超过其内存空间(heap)的数据
  • 数据保存在服务器端,因此客户端JVM宕机不会造成数据丢失
  • 增量数据传递,智能数据推送,最大限度减少对网络的负担,使得客户端JVM可以横向扩展
  • 主从服务器配置,支持多台从服务器,实现高可用服务器
  • 服务器分片,实现服务器数据存储及数据吞吐量横向扩展
  • 通过JMX开放服务器监控信息
  • 提供可视化监控和管理界面,大大方便对整合集群的共享数据、性能数据、软硬件指标等的实施监控、调试、优化

 

Terracotta 3.2.1简介 (一)

Terracotta DSO核心平台提供了一个稳健、高效、高可用、易用、易管理的Java集群平台。

Terracotta为了进一步帮助J2EE开发人员充分利用其核心平台提供的各项特性,针对Java开发人员常用的Java技术平台提供了一系列快捷模式(Express Mode)的解决方案,包括Ehcache分布式缓存、Hibernate分布式二级缓存、Web Session集群、

分布式Java任务调度Quartz等等。

Terracotta 3.2.1简介 (一)

使用快捷模式,可以避免客户端程序对JDK和应用服务器的依赖、避免配置tc-config.xml文件等等。用户直接拷贝相应的jar文件,对方案相关的配置文件进行简单修改(比如ehcache.xml, hibernate.cfg.xml文件等等),就可以实现集群化了。

后面将逐一介绍Terracotta快捷模式支持的解决方案。

分布式缓存-Terracotta EhcacheHibernate二级缓存

Ehcache是独立于Terracotta开发的开源Java缓存项目。由于其高效、易用等特点,已经被超过70%Java开发人员直接活间接使用。

Ehcache也是Hibernate项目缺省,也是功能支持最完备的耳机缓存解决方案。

Terracotta2009年收购了Ehcache项目,并且对其进行深度整合。

Terracotta 3.2.1简介 (一)

 

整合后的Ehcache保留了其原有的API,增加基于Terracotta集群的分布式缓存。用户可以通过对ehcache.xml的简单配置,实现对原有基于Ehcache构建的代码的集群化升级。

            maxElementsInMemory="10000"

            eternal="false"

            timeToLiveSeconds="120"

            />

 

           maxElementsInMemory="10000"

           eternal=”true”>

          

 

           maxElementsInMemory="10000"

           timeToLiveSeconds="3000">

          

 

整合后的分布式Ehcache有如下特点:

  • 简单、易用的分布式缓存
    • 沿用Ehcache单机版API
    • 直接支持Hibernate二级缓存实现
    • 服务器集群支持
    • 减少数据库30%-90%负载
  • 高效、可靠
    • 本地内存的访问速度
    • 动态缓存数据持久话
    • 客户端于服务器端均可横向线性扩展
    • 自动数据分片
    • 虚拟缓存内存管理,无限缓存空间
    • 多级缓存动态均衡
  • 企业用户支持
    • 支持工业标准JMX
    • 可视化管理工具
    • 动态监控、调试、优化

由于Ehcache本身就是Hibernate标准二级缓存实现,因此将单机版的Hibernate二级缓存扩展到分布式缓存于将Ehcache扩展成分布式缓存一样简单。其优势也可以自动继承。

Terracotta 3.2.1简介 (一)

 

20103月,Terracotta推出了Ehcache 2.0,其中包含了大量的新的功能:

  • Hibernate 3.3二级缓存SPI的支持
    • Hibernate3.3以前为了保证数据库于缓存数据的一致性,对二级缓存的访问有大量的锁操作,导致并发性能不高;
    • 3.3以后,Hibernate二级缓存部分代码进行了重构,提出了新的CacheRegionFactory的接口。大大提高对二级缓存的使用效率。Ehcache 2.0完全支持新的缓存接口;
  • Java分布式事务的全面支持
    • Ehcache可以通过配置,设定一个缓存为XAResource,自动加入分布式事务管理器启动的分布式事务;
    • 能够自动检测常用的分布式事务管理器;
    • 支持Spring、EJB等的分布式事务管理
  • 延迟写(Write Behind)和直通写(Write Through)
    • 提供Writer接口,负责将缓存数据写入数据库或者其他存储介质中;
    • Write Behind允许将数据保存在缓存中,再用后台线程把缓存数据异步保存到数据库或者其他存储介质中。由于缓存数据保存在Terracotta服务器上,不会由于客户端JVM宕机导致数据丢失。Write Behind是通过缓存提高数据写入速度的有效方式;
    • Write Through则是在将数据写入缓存后,马上调用Writer写入数据库中;
  • 批量导入缓存数据
    • 为了保证缓存数据一致性,每一次写操作都有同步处理,对于大量数据导入影响比较大;
    • 提供了coherent标记,来打开或者关闭同步处理。缺省为true,提供同步功能;进行大量数据导入的时候,可以暂时关闭该标记,或者10倍以上的数据导入速度;
    • setCoherent(), isCoherent(), waitForCoherent()
  • Cache级别的一致性、可用性、数据分片等支持
    • Coherent标记
    • syncrhonizedWrite
    • copyOnRead/copyOnWrite
    • 集群事件监听
    • UnlockedReadsView
  • NonStopCache
    • 在Terracotta服务器阵列出故障的时候仍然能够继续工作
    • 不会锁死本地应用
    • 超时设置
  • 管理功能
    • 新的基于Web的管理界面
    • 大部分Cache配置可以在配置界面中实时修改、即时生效

Terracotta 3.2.1简介 (一)

 

 待续。。。

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Benchmark de performances Python ORM : comparaison de différents frameworks ORM Benchmark de performances Python ORM : comparaison de différents frameworks ORM Mar 18, 2024 am 09:10 AM

Les frameworks de mappage objet-relationnel (ORM) jouent un rôle essentiel dans le développement de Python, ils simplifient l'accès et la gestion des données en créant un pont entre les bases de données objet et relationnelles. Afin d'évaluer les performances de différents frameworks ORM, cet article comparera les frameworks populaires suivants : sqlAlchemyPeeweeDjangoORMPonyORMTortoiseORM Méthode de test Le benchmark utilise une base de données SQLite contenant 1 million d'enregistrements. Le test a effectué les opérations suivantes sur la base de données : Insérer : Insérer 10 000 nouveaux enregistrements dans la table Lire : Lire tous les enregistrements de la table Mettre à jour : Mettre à jour un seul champ pour tous les enregistrements de la table Supprimer : Supprimer tous les enregistrements de la table Chaque opération

Introduction au framework Yii : comprendre les concepts de base de Yii Introduction au framework Yii : comprendre les concepts de base de Yii Jun 21, 2023 am 09:39 AM

Le framework Yii est un framework de développement PHP hautes performances, hautement évolutif et hautement maintenable, très efficace et fiable lors du développement d'applications Web. Le principal avantage du framework Yii réside dans ses fonctionnalités et méthodes de développement uniques, tout en intégrant également de nombreux outils et fonctions pratiques. Concept de base du framework Yii, le modèle MVC, Yii adopte le modèle MVC (Model-View-Controller), qui est un modèle qui divise l'application en trois parties indépendantes, à savoir le modèle de traitement de logique métier et le modèle de présentation de l'interface utilisateur. .

Application de Python ORM dans les projets Big Data Application de Python ORM dans les projets Big Data Mar 18, 2024 am 09:19 AM

Le mappage objet-relationnel (ORM) est une technologie de programmation qui permet aux développeurs d'utiliser des langages de programmation objet pour manipuler des bases de données sans écrire directement de requêtes SQL. Les outils ORM en python (tels que SQLAlchemy, Peewee et DjangoORM) simplifient l'interaction avec les bases de données pour les projets Big Data. Avantages Simplicité du code : ORM élimine le besoin d'écrire de longues requêtes SQL, ce qui améliore la simplicité et la lisibilité du code. Abstraction des données : ORM fournit une couche d'abstraction qui isole le code de l'application des détails d'implémentation de la base de données, améliorant ainsi la flexibilité. Optimisation des performances : les ORM utilisent souvent la mise en cache et les opérations par lots pour optimiser les requêtes de base de données, améliorant ainsi les performances. Portabilité : ORM permet aux développeurs de

Obtenez une compréhension approfondie de 7 modèles de conception Java couramment utilisés Obtenez une compréhension approfondie de 7 modèles de conception Java couramment utilisés Dec 23, 2023 pm 01:01 PM

Comprendre les modèles de conception Java : une introduction aux 7 modèles de conception couramment utilisés, des exemples de code spécifiques sont nécessaires. Les modèles de conception Java sont une solution universelle aux problèmes de conception de logiciels. Ils fournissent un ensemble d'idées de conception et de principes comportementaux largement acceptés. Les modèles de conception nous aident à mieux organiser et planifier la structure du code, rendant le code plus maintenable, lisible et évolutif. Dans cet article, nous présenterons 7 modèles de conception couramment utilisés en Java et fournirons des exemples de code correspondants. Patte Singleton

Implémenter une persistance efficace des données à l'aide de Python ORM Implémenter une persistance efficace des données à l'aide de Python ORM Mar 18, 2024 am 09:25 AM

Le mappage objet-relationnel (ORM) est une technologie qui permet de construire un pont entre les langages de programmation orientés objet et les bases de données relationnelles. L'utilisation de pythonORM peut simplifier considérablement les opérations de persistance des données, améliorant ainsi l'efficacité et la maintenabilité du développement d'applications. Avantages L'utilisation de PythonORM présente les avantages suivants : Réduire le code passe-partout : ORM génère automatiquement des requêtes SQL, évitant ainsi d'écrire beaucoup de code passe-partout. Simplifiez l'interaction avec la base de données : ORM fournit une interface unifiée pour interagir avec la base de données, simplifiant ainsi les opérations sur les données. Améliorer la sécurité : ORM utilise des requêtes paramétrées, qui peuvent empêcher les vulnérabilités de sécurité telles que l'injection SQL. Promouvoir la cohérence des données : ORM assure la synchronisation entre les objets et les bases de données et maintient la cohérence des données. Choisissez ORM pour avoir

Ajoutez du charme GUI à vos projets avec Python Tkinter Ajoutez du charme GUI à vos projets avec Python Tkinter Mar 24, 2024 am 09:46 AM

Tkinter est une bibliothèque puissante pour créer des interfaces utilisateur graphiques (GUI) en python. Il est connu pour sa simplicité, sa compatibilité multiplateforme et son intégration transparente avec l'écosystème Python. En utilisant Tkinter, vous pouvez ajouter une interface conviviale à votre projet, améliorant ainsi l'expérience utilisateur et simplifiant l'interaction avec votre application. Création d'une application GUI Tkinter Pour créer une application GUI à l'aide de Tkinter, effectuez les étapes suivantes : Importez la bibliothèque Tkinter : importtkinterastk Créez la fenêtre principale de Tkinter : root=tk.Tk() Configurez la fenêtre principale : Définissez le titre, la taille et la position de la fenêtre. , etc. Ajouter des éléments GUI : Utilisation de Tki

Python vs Jython : qui est le roi du développement multiplateforme ? Python vs Jython : qui est le roi du développement multiplateforme ? Mar 22, 2024 pm 12:21 PM

Python et Jython sont des langages de programmation populaires, mais ils sont optimisés pour différents cas d'utilisation et présentent des avantages et des inconvénients uniques en matière de développement multiplateforme. Avantages de Python : bibliothèques étendues et support communautaire Facile à apprendre et à utiliser, adapté aux débutants Très portable, peut fonctionner sur plusieurs plates-formes Prend en charge plusieurs paradigmes de programmation, y compris la programmation orientée objet, fonctionnelle et impérative Inconvénients : Performances inférieures, ne convient pas au traitement informatique intensif tâches Consommation élevée de mémoire Peut nécessiter des outils et une configuration supplémentaires sur certaines plates-formes Avantages de Jython : Entièrement compatible avec Python, peut utiliser toutes les bibliothèques et outils Python Exécuté sur la machine virtuelle Java (JVM), offrant une intégration transparente avec l'écosystème Java plus performante que Py

Du novice au maître : un cours accéléré sur Java Git Du novice au maître : un cours accéléré sur Java Git Mar 27, 2024 pm 10:41 PM

Git est un système de contrôle de version distribué qui aide les équipes à collaborer sur le développement de logiciels. Pour les développeurs Java, comprendre Git est crucial car il fournit une plate-forme pour gérer les modifications de code, suivre l'historique du code et collaborer avec d'autres. Installez Git pour les débutants (comprenez les bases) : installez le logiciel Git et définissez les variables d'environnement. Créer un référentiel : utilisez gitinit pour créer un référentiel local. Ajouter des fichiers : utilisez gitadd pour ajouter des fichiers à la zone de préparation. Valider les modifications : utilisez gitcommit pour valider les modifications de la zone de préparation vers le référentiel local. Dépôts de clonage intermédiaires (collaboration et contrôle de version) : utilisez gitclone pour cloner une copie locale à partir d'un référentiel distant. Branchement et fusion : utilisez des branches pour créer des copies isolées de votre code

See all articles