{"id":7552,"date":"2021-06-02T03:49:54","date_gmt":"2021-06-02T03:49:54","guid":{"rendered":"https:\/\/berg-software.com\/?p=7552"},"modified":"2021-06-02T03:49:56","modified_gmt":"2021-06-02T03:49:56","slug":"memory-sharing-von-grundlegend-bis-vollstaendig-mit-hazelcast-imdg","status":"publish","type":"post","link":"https:\/\/www.berg-software.com\/de\/memory-sharing-von-grundlegend-bis-vollstaendig-mit-hazelcast-imdg\/","title":{"rendered":"Memory-sharing: von grundlegend bis vollst\u00e4ndig, mit Hazelcast IMDG"},"content":{"rendered":"\n[et_pb_section fb_built=&#8220;1&#8243; fullwidth=&#8220;on&#8220; _builder_version=&#8220;4.4.1&#8243;][et_pb_fullwidth_post_title meta=&#8220;off&#8220; featured_placement=&#8220;background&#8220; _builder_version=&#8220;4.6.6&#8243; title_font=&#8220;||||||||&#8220; title_text_color=&#8220;#ff6317&#8243; title_font_size=&#8220;3.5em&#8220; meta_font=&#8220;|300|||||||&#8220; meta_text_color=&#8220;#ffffff&#8220; meta_font_size=&#8220;1em&#8220; background_enable_color=&#8220;off&#8220; use_background_color_gradient=&#8220;on&#8220; background_color_gradient_start=&#8220;rgba(248,248,248,0.85)&#8220; background_color_gradient_end=&#8220;rgba(248,248,248,0.75)&#8220; background_color_gradient_overlays_image=&#8220;on&#8220; min_height=&#8220;20vh&#8220; height=&#8220;400px&#8220; custom_padding=&#8220;6vh||6vh||false|false&#8220; locked=&#8220;off&#8220;][\/et_pb_fullwidth_post_title][\/et_pb_section][et_pb_section fb_built=&#8220;1&#8243; admin_label=&#8220;intro&#8220; _builder_version=&#8220;4.4.6&#8243; custom_padding=&#8220;|||0px||&#8220; locked=&#8220;off&#8220;][et_pb_row use_custom_gutter=&#8220;on&#8220; _builder_version=&#8220;4.4.6&#8243; custom_margin=&#8220;||||false|false&#8220; custom_padding=&#8220;6vh||||false|false&#8220; border_color_left=&#8220;rgba(0,0,0,0)&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.4.1&#8243;][et_pb_text _builder_version=&#8220;4.7.7&#8243; text_font=&#8220;||||||||&#8220; text_font_size=&#8220;1.1em&#8220; text_line_height=&#8220;1.6em&#8220; quote_font=&#8220;|700|||||||&#8220; quote_text_align=&#8220;left&#8220; quote_font_size=&#8220;16px&#8220; header_2_text_color=&#8220;#ff6317&#8243; header_2_font_size=&#8220;1.5em&#8220; header_2_line_height=&#8220;0.9em&#8220; header_3_font_size=&#8220;23px&#8220; header_4_font=&#8220;||||||||&#8220; header_4_font_size=&#8220;16px&#8220; header_4_line_height=&#8220;1.5em&#8220; header_5_font_size=&#8220;14px&#8220; custom_margin=&#8220;||||false|false&#8220; custom_padding=&#8220;||||false|false&#8220; border_color_left=&#8220;#ff6317&#8243;]<p>Memory-Sharing-Systeme k\u00f6nnen recht anspruchsvoll sein. Zum Beispiel m\u00fcssen die Anwendungen die Daten \u00fcberall gemeinsam nutzen\/zug\u00e4nglich\/optimiert sein, und das in Echtzeit. Das kann bei einer Messaging-Anwendung genauso passieren wie bei Zeiterfassungssystemen f\u00fcr Mitarbeiter oder komplexen ERP-Systemen.<\/p>\n<p>Die Entwicklung einer eigenen, dedizierten L\u00f6sung ist m\u00f6glich, aber ein einfacherer Weg w\u00e4re die Verwendung\/Integration einer Out-of-the-Box-Plattform. Ja, sie decken nicht immer alle Ihre Bed\u00fcrfnisse ab, aber sie k\u00f6nnen umfassend genug sein, um einen guten Ausgangspunkt zu bilden, der nur geringf\u00fcgige Anpassungen und\/oder Erweiterungen ben\u00f6tigt.<\/p>\n<p>Dies stimmt sich mit unseren Erfahrungen beim Aufbau von <a href=\"https:\/\/hazelcast.org\/imdg\/\" target=\"_blank\" rel=\"noopener noreferrer\" title=\"Go to: Hazelcast IMDG\">Hazelcast IMDG<\/a>: Wir begannen mit einer relativ kleinen Anwendung, entdeckten dann neue Werkzeuge \/ Funktionen und hatten schlie\u00dflich ein komplettes \u00d6kosystem.<\/p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row use_custom_gutter=&#8220;on&#8220; admin_label=&#8220;Intro&#8220; _builder_version=&#8220;4.7.7&#8243; custom_margin=&#8220;||||false|false&#8220; custom_padding=&#8220;6vh||0px||false|false&#8220; border_color_left=&#8220;rgba(0,0,0,0)&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.4.1&#8243;][et_pb_text _builder_version=&#8220;4.7.7&#8243; text_font=&#8220;||||||||&#8220; text_font_size=&#8220;1.1em&#8220; text_line_height=&#8220;1.6em&#8220; quote_font=&#8220;|700|||||||&#8220; quote_text_align=&#8220;left&#8220; quote_font_size=&#8220;16px&#8220; header_2_text_color=&#8220;#ff6317&#8243; header_2_font_size=&#8220;1.5em&#8220; header_2_line_height=&#8220;0.9em&#8220; header_3_font_size=&#8220;23px&#8220; header_4_font=&#8220;||||||||&#8220; header_4_font_size=&#8220;16px&#8220; header_4_line_height=&#8220;1.5em&#8220; header_5_font_size=&#8220;14px&#8220; custom_margin=&#8220;||||false|false&#8220; custom_padding=&#8220;|20px|||false|false&#8220; hover_enabled=&#8220;0&#8243; border_color_left=&#8220;#ff6317&#8243; sticky_enabled=&#8220;0&#8243;]<h2>1. Unser spezieller Fall, unsere Bed\u00fcrfnisse und unsere Optionen f\u00fchrten uns zu Hazelcast<\/h2>\n<p>In unserem speziellen Fall handelt es sich um eine Client-Server-App, mit Echtzeit-Datenfl\u00fcssen vom Client zum Server. Wir m\u00fcssen Teile der Daten von mehreren Maschinen \u00fcber verschiedene Netzwerke zusammenf\u00fchren. Es gibt keine hohe Nutzlast, aber wir brauchen eine absolut stabile und stetige Verbindung. In diesem Fall hilft es nicht, einen Push\/Pull-Mechanismus f\u00fcr die Datenkommunikation zu verwenden, also brauchen wir einen gemeinsamen Datenbereich, in dem die Daten abgelegt werden sollen.<\/p>\n<p>Der erste Ansatz war, ein Client-Server-Kommunikationstool zu entwickeln, das Kommunikation, Merge, Brain Split usw. beinhaltet. Aber im Jahr 2020+ haben wir die M\u00f6glichkeit, auf bestehende &#8222;Paketl\u00f6sungen&#8220; zur\u00fcckzugreifen, die wir an unsere Bed\u00fcrfnisse anpassen k\u00f6nnen. Anstatt das System also selbst zu entwickeln\/implementieren, haben wir eine kurze Liste mit bestehenden Plattformen erstellt: Hazelcast, Redis, RabbitMQ, Apache Kafka.<\/p>\n<p>Wir haben uns f\u00fcr Hazelcast entschieden, und zwar aus mehreren Gr\u00fcnden:<\/p>\n<p>Erstens <strong>hat es einen kleinen Footprint<\/strong>: Es braucht nicht viel Speicherplatz, es sind nicht mehrere Server n\u00f6tig &#8211; wir haben es einfach in unsere Anwendung eingebettet.<\/p>\n<p>Dann <strong>hat es alle unsere Grundbed\u00fcrfnisse erf\u00fcllt<\/strong>:<\/p>\n<ul>\n<li>In-Memory-Datenbank,<\/li>\n<li>Second-Level-Cache,<\/li>\n<li>persistierende Datenbank,<\/li>\n<li>Warteschlangen-Implementierung,<\/li>\n<li>gro\u00dfes Verbindungsmanagement.<\/li>\n<\/ul>\n<p>Obwohl wir mit kleinen Teilen angefangen haben, haben wir immer mehr hinzugef\u00fcgt: maps, shared objects, und topics. Hier ist, was wir <a href=\"https:\/\/hazelcast.org\/imdg\/imdg-features\/\" target=\"_blank\" rel=\"noopener noreferrer\" title=\"Go to: Hazelcast IMDG features\">von \/ mit Hazelcast<\/a> verwendet haben:<\/p>\n[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.7.7&#8243; custom_margin=&#8220;||||false|false&#8220; custom_padding=&#8220;20px||0px||false|false&#8220; border_color_left=&#8220;rgba(0,0,0,0)&#8220; locked=&#8220;off&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.4.1&#8243;][et_pb_gallery gallery_ids=&#8220;7537&#8243; fullwidth=&#8220;on&#8220; hover_icon=&#8220;%%186%%&#8220; _builder_version=&#8220;4.7.7&#8243; _module_preset=&#8220;default&#8220; max_width=&#8220;65%&#8220; module_alignment=&#8220;left&#8220;][\/et_pb_gallery][et_pb_code _builder_version=&#8220;4.7.7&#8243; _module_preset=&#8220;default&#8220;][\/et_pb_code][\/et_pb_column][\/et_pb_row][et_pb_row use_custom_gutter=&#8220;on&#8220; admin_label=&#8220;wer&#8220; _builder_version=&#8220;4.7.7&#8243; custom_margin=&#8220;||||false|false&#8220; custom_padding=&#8220;6vh||0px||false|false&#8220; border_color_left=&#8220;rgba(0,0,0,0)&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.4.1&#8243;][et_pb_text _builder_version=&#8220;4.7.7&#8243; text_font=&#8220;||||||||&#8220; text_font_size=&#8220;1.1em&#8220; text_line_height=&#8220;1.6em&#8220; quote_font=&#8220;|700|||||||&#8220; quote_text_align=&#8220;left&#8220; quote_font_size=&#8220;16px&#8220; header_2_text_color=&#8220;#ff6317&#8243; header_2_font_size=&#8220;1.5em&#8220; header_2_line_height=&#8220;0.9em&#8220; header_3_font_size=&#8220;23px&#8220; header_4_font=&#8220;||||||||&#8220; header_4_font_size=&#8220;16px&#8220; header_4_line_height=&#8220;1.5em&#8220; header_5_font_size=&#8220;14px&#8220; custom_margin=&#8220;||||false|false&#8220; custom_padding=&#8220;|20px|||false|false&#8220; border_color_left=&#8220;#ff6317&#8243;]<h2>2. Wie wir Hazelcast benutzen<\/h2>\n<h3>2.1. Ruf mich an, um mich zu erinnern<\/h3>\n<p>Hazelcast wurde zuerst vom Server, dann von jedem Client hochgefahren, wodurch ein Cluster entstand.<\/p>\n<p>In der ersten Phase haben wir eine All-in-One-Warteschlange implementiert, bei der die Objekte von den Clients zum Master flie\u00dfen. Zu diesem Zeitpunkt haben wir nur Nachrichten zwischen den Anwendungen ausgetauscht.<\/p>\n<p>Ein HTTP-Anruf w\u00fcrde vom Client zum Server gesendet werden, um drei Dinge zu erreichen:<\/p>\n<ul>\n<li>&#8222;wir sind da&#8220; kommunizieren,<\/li>\n<li>den Namen des Hazelcast-Clusters abrufen,<\/li>\n<li>und stellen die Verbindung her.<\/li>\n<\/ul>\n<p>Aber dann treffen wir auf einige <strong>nicht-standardisierte Situationen<\/strong>:<\/p>\n<ul>\n<li>ungew\u00f6hnliche Kundenarchitekturen, bei denen Http-Anrufe abgelehnt werden,<\/li>\n<li>der Client und der Server befanden sich in verschiedenen Netzwerken.<\/li>\n<\/ul>\n<p>Verbindungsmanagement ist nicht nur ein Hintergedanke. Die Verbindung von Anwendungen (z. B. \u00fcber geografische Grenzen hinweg) erfordert oft einen erheblichen Zeit- und Entwicklungsaufwand. Gerade bei sensiblen, firewalled Anwendungen ist es f\u00fcr die Kundenfirma recht kompliziert, Kommunikationsports zu \u00f6ffnen. Sehr kleine Details k\u00f6nnen gro\u00dfe (und negative) Folgen haben. Mit Hazelcast haben wir einen vorgefertigten Algorithmus, der entweder die passenden Verbindungen findet oder die angegebenen Ports verwendet. Aufgrund seiner Entdeckungsstrategien k\u00f6nnen wir ihm einfach sagen: &#8222;Geh und finde Clients im Netzwerk, dann verbinde dich&#8220;.<\/p>\n<p>Wir wollten also sehen, ob Hazelcast unsere nicht standardisierten F\u00e4lle l\u00f6sen kann &#8211; und es hat sie gel\u00f6st. Unabh\u00e4ngig davon, ob wir uns im selben Netzwerk befinden oder Proxies verwenden, ist Hazelcast in der Lage, alle Knoten zu verbinden und einen Kommunikationskanal aufzubauen. Dies l\u00f6ste eine Menge Infrastrukturprobleme, so dass wir Hazelcast zum Standard machten, um alle anderen Kommunikationsmechanismen zu ersetzen. Hazelcast hat sich zu einem essentiellen Teil des \u00d6kosystems entwickelt, und zwar in einem solchen Ausma\u00df, dass die Client-App gar nicht erst startet, wenn sie sich nicht mit dem Server verbinden kann.<\/p>\n<h3>2.2. \u2026Aber ruf mich nicht zu oft an<\/h3>\n<p>Die n\u00e4chste Speed-Bump, die mit der <strong>Latenz<\/strong> zusammenh\u00e4ngt, trat auf, als wir anfingen, gro\u00dfe Datenmengen in die verteilte Warteschlange zu verschieben, die als Kommunikationskanal zwischen dem Server (&#8222;Consumer&#8220;) und den Clients (&#8222;Producer&#8220;) verwendet wird. Ein Objekt nach dem anderen in eine Warteschlange zu stellen und sie dann auf Serverebene zusammenzufassen, f\u00fchrte zu einer zus\u00e4tzlichen Latenz (die proportional zur Datenmenge war).<\/p>\n<p>Da die Reihenfolge der Objekte, die von verschiedenen Servern kommen, nicht so wichtig war, bestand unsere L\u00f6sung darin, die Objekte in Container zu packen und dann die Container mit Hazelcast zu verwenden. Anstatt dass wir Tausende von einzelnen Nachrichten lesen und pausieren, um zu pr\u00fcfen, ob jede von ihnen aktuell ist, packt und platziert der Client sie nun in Hazelcast. Das Ergebnis: eine dramatisch verbesserte Leistung.<\/p>\n<h3>2.3. Wollen Sie mehr?<\/h3>\n<p>Die L\u00f6sung der Warteschlangen-Latenz gab uns die Zuversicht, dass Hazelcast auf weitere Bereiche erweitert werden kann. Also untersuchten wir, wie verschiedene Informationen (z. B. Konfigurationen) auf alle Knoten verteilt werden k\u00f6nnen. Wir begannen mit der Verwendung von Maps, die vom Server initialisiert und an die Clients verteilt werden.<\/p>\n<p>Aber die Verwaltung der Maps an zwei verschiedenen Orten (sowohl in Hazelcast als auch in der Datenbank) kann kompliziert werden. Es gibt Momente, in denen alle Anwendungen geschlossen sind, wobei alle Informationen in der Datenbank gespeichert sind; beim Neustart m\u00fcssen dann alle Informationen aus der Datenbank zur\u00fcck in den Speicher bewegt werden.<\/p>\n<p>Deshalb haben wir auf persistierte Maps umgestellt und lassen Hazelcast die Daten in der Datenbank persistieren, d.h. Hazelcast speichert, wann immer es optimal ist.<\/p>\n<h3>2.4. \u2026Und mehr?<\/h3>\n<p>Als selbst die Maps nicht mehr ausreichten, gingen wir zu Topics \u00fcber (vorher festgelegte Kommunikationskan\u00e4le, sozusagen Peer-to-Peer).<br> Zum Beispiel w\u00fcrden wir in einer Konfiguration mit mehreren Anwendungen nur mit einer bestimmten kommunizieren wollen. Statt einer &#8222;Jeder-an-Jeden&#8220;-Kommunikation, bei der fast jede Anwendung sagt: &#8222;Das ist nicht f\u00fcr mich&#8220;, helfen uns Topics, genau (und nur) an die beabsichtigte App zu liefern.<br> Auf diese Weise haben wir einen noch fortschrittlicheren Mehrkanal-Kommunikationsmechanismus erreicht, bei dem wir einen Dialog zwischen zwei bestimmten Knoten f\u00fchren k\u00f6nnen, ohne andere zu ber\u00fchren.<\/p>\n<h3>2.5. Persistierende Daten<\/h3>\n<p>F\u00fcr einfache Aufgaben war der Persistenzmechanismus sehr einfach und n\u00fctzlich. Wenn wir jedoch mehr verlangten, scheiterte die Persistenz (z. B. wegen der Gleichzeitigkeit). Mehrere Prozesse versuchten, gleichzeitig zu schreiben, konnten aber wegen der \u00dcberlastung der Anforderung nicht speichern.<\/p>\n<p>Unsere L\u00f6sung war, einen &#8222;Listener&#8220; zu implementieren: Jedes Mal, wenn etwas Neues im Speicher erscheint, legen wir es beiseite, bis wir genug davon haben, und speichern es dann alle auf einmal. Anstatt also mehrere Speichervorg\u00e4nge zu machen (jeder mit &#8220; Haben Sie die Datenbank?&#8220; \/ &#8222;ist sie aktiv?&#8220; \/ &#8222;ist genug Platz vorhanden?&#8220; \/ &#8222;kann ich jetzt schreiben?&#8220; \/ &#8222;ok, ich schreibe&#8220;), machen wir das jetzt nur einmal.<\/p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row use_custom_gutter=&#8220;on&#8220; admin_label=&#8220;what type of access&#8220; _builder_version=&#8220;4.7.7&#8243; custom_margin=&#8220;||||false|false&#8220; custom_padding=&#8220;6vh||0px||false|false&#8220; border_color_left=&#8220;rgba(0,0,0,0)&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.4.1&#8243;][et_pb_text _builder_version=&#8220;4.7.7&#8243; text_font=&#8220;||||||||&#8220; text_font_size=&#8220;1.1em&#8220; text_line_height=&#8220;1.6em&#8220; quote_font=&#8220;|700|||||||&#8220; quote_text_align=&#8220;left&#8220; quote_font_size=&#8220;16px&#8220; header_2_text_color=&#8220;#ff6317&#8243; header_2_font_size=&#8220;1.5em&#8220; header_2_line_height=&#8220;0.9em&#8220; header_3_font_size=&#8220;23px&#8220; header_4_font=&#8220;||||||||&#8220; header_4_font_size=&#8220;16px&#8220; header_4_line_height=&#8220;1.5em&#8220; header_5_font_size=&#8220;14px&#8220; custom_margin=&#8220;||||false|false&#8220; custom_padding=&#8220;|20px|||false|false&#8220; border_color_left=&#8220;#ff6317&#8243;]<h2>3. Weitere Schwachpunkte von Hazelcast (und L\u00f6sungen)<\/h2>\n<p>F\u00fcr unseren speziellen Fall kam Hazelcast out-of-the-box mit ein paar suboptimalen Teilen, die aber alle schnell gel\u00f6st wurden:<\/p>\n<h3>3.1. Speicherauslastung \/ CPU-Last<\/h3>\n<p>F\u00fcr die F\u00e4lle, in denen der Speicher oder die CPU \u00fcber festgelegte Schwellenwerte hinausgehen, hat Hazelcast einen internen \u00dcberwachungsmechanismus. Da wir die eingebettete Version verwendet haben (d. h., Hazelcast und unsere App sind Teil desselben \u00d6kosystems), konnten wir die Warnung von Hazelcast auch f\u00fcr unsere App verwenden. Auf diese Weise haben wir die Notwendigkeit beseitigt, ein paralleles Warnsystem zu implementieren.<\/p>\n<p>F\u00fcr die extremen F\u00e4lle, in denen wir trotz der Warnungen nicht in der Lage sind, den Speicher und\/oder die CPU-Last zu reduzieren, schaltet Hazelcast die Dinge einfach ab &#8211; was wir auch f\u00fcr unsere App tun, zusammen mit einer Notmeldung an den Benutzer.<\/p>\n<h3>3.2. Hazelcast Verbindung abbrechen<\/h3>\n<p>Der Lauf in Virtualisierungsumgebungen bringt potenzielle Zeitanpassungen mit sich &#8211; es kann zu Differenzen zwischen dem CPU-Takt und dem angepassten Systemtakt der virtuellen Umgebung kommen (d. h. &#8222;Taktspr\u00fcnge&#8220;). Wenn die Differenzen \u00fcber einen Schwellenwert hinausgehen, initiiert Hazelcast einen Verbindungsabbruch.<\/p>\n<p>Letztendlich ist dies kein gro\u00dfes Problem, da es mit bestimmten Konfigurationen der VMware-Virtualisierung gel\u00f6st werden kann.<\/p>\n<h3>3.3. Lesen aus Hazelcast mit hoher Geschwindigkeit<\/h3>\n<p>Allein das Lesen aus einer Map l\u00f6st eine Synchronisation zwischen den Notizen aus, um zu garantieren, dass das, was gelesen wurde, wirklich die neuesten Daten sind. Als wir also unver\u00e4nderliche Daten aus Hazelcast lesen mussten, haben wir einen Cache auf zweiter Schicht implementiert, der immer dann aktualisiert wird, wenn sich etwas in den Maps \u00e4ndert. Das Ergebnis ist, dass das Lesen aus diesem Cache der zweiten Schicht und das Schreiben\/L\u00f6schen in Hazelcast erfolgt (wodurch Ereignisse ausgel\u00f6st werden, um den Cache zu aktualisieren).<\/p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row use_custom_gutter=&#8220;on&#8220; admin_label=&#8220;conclusion&#8220; _builder_version=&#8220;4.7.7&#8243; custom_margin=&#8220;||||false|false&#8220; custom_padding=&#8220;6vh||||false|false&#8220; border_color_left=&#8220;rgba(0,0,0,0)&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.4.1&#8243;][et_pb_text admin_label=&#8220;ACL rights&#8220; _builder_version=&#8220;4.7.7&#8243; text_font=&#8220;||||||||&#8220; text_font_size=&#8220;1.1em&#8220; text_line_height=&#8220;1.6em&#8220; quote_font=&#8220;|700|||||||&#8220; quote_text_align=&#8220;left&#8220; quote_font_size=&#8220;16px&#8220; header_2_text_color=&#8220;#ff6317&#8243; header_2_font_size=&#8220;1.5em&#8220; header_2_line_height=&#8220;0.9em&#8220; header_3_font_size=&#8220;23px&#8220; header_4_font=&#8220;||||||||&#8220; header_4_font_size=&#8220;16px&#8220; header_4_line_height=&#8220;1.5em&#8220; header_5_font_size=&#8220;14px&#8220; custom_margin=&#8220;||||false|false&#8220; custom_padding=&#8220;|20px|||false|false&#8220; border_color_left=&#8220;#ff6317&#8243;]<h2>Fazit<\/h2>\nSich f\u00fcr Hazelcast zu entscheiden war die richtige Entscheidung, da es uns eine Menge Entwicklungsaufwand erspart hat (vor allem was die Kommunikation angeht). Obwohl es einige Schwachstellen gibt, k\u00f6nnen sie alle vermieden oder optimiert werden. Und das Beste daran? Es ist kostenlos![\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8220;1&#8243; _builder_version=&#8220;4.4.1&#8243; custom_padding=&#8220;|||0px||&#8220; locked=&#8220;off&#8220;][et_pb_row use_custom_gutter=&#8220;on&#8220; gutter_width=&#8220;3&#8243; admin_label=&#8220;\uff3f&#8220; _builder_version=&#8220;4.4.6&#8243; custom_margin=&#8220;||||false|false&#8220; custom_padding=&#8220;4vh||8vh||false|false&#8220; border_color_left=&#8220;rgba(0,0,0,0)&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.4.6&#8243;][et_pb_text _builder_version=&#8220;4.7.7&#8243; text_font=&#8220;||||||||&#8220; text_font_size=&#8220;1.1em&#8220; text_line_height=&#8220;1.6em&#8220; quote_font=&#8220;|700|||||||&#8220; quote_text_align=&#8220;left&#8220; quote_font_size=&#8220;16px&#8220; header_2_text_color=&#8220;#ff6317&#8243; header_2_font_size=&#8220;1.5em&#8220; header_2_line_height=&#8220;0.9em&#8220; header_3_font_size=&#8220;23px&#8220; header_4_font=&#8220;||||||||&#8220; header_4_font_size=&#8220;16px&#8220; header_4_line_height=&#8220;1.5em&#8220; header_5_font_size=&#8220;14px&#8220; custom_margin=&#8220;||||false|false&#8220; custom_padding=&#8220;||||false|false&#8220; border_color_left=&#8220;#ff6317&#8243;]<h2>\uff3f<\/h2>\n<p>Sie w\u00fcrden gerne Ihre Erfahrungen im Bereich ZSLs \/ ACLs mit uns teilen? Wir freuen uns auf Ihre <a href=\"https:\/\/berg-software.com\/de\/kontakt-berg-software\/\" target=\"_blank\" rel=\"noopener noreferrer\">Kontaktaufnahme<\/a>!<\/p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8220;1&#8243; _builder_version=&#8220;3.22&#8243; background_color=&#8220;#eeeeee&#8220; custom_padding=&#8220;50px||50px||false|false&#8220; border_color_top=&#8220;#ff6317&#8243;][et_pb_row column_structure=&#8220;1_3,1_3,1_3&#8243; _builder_version=&#8220;4.4.1&#8243; custom_padding=&#8220;0px|||||&#8220; locked=&#8220;off&#8220;][et_pb_column type=&#8220;1_3&#8243; _builder_version=&#8220;4.4.1&#8243;][et_pb_social_media_follow _builder_version=&#8220;4.4.4&#8243; text_orientation=&#8220;left&#8220;][et_pb_social_media_follow_network social_network=&#8220;linkedin&#8220; url=&#8220;https:\/\/www.linkedin.com\/company\/berg-computers-srl\/&#8220; _builder_version=&#8220;4.4.4&#8243; background_color=&#8220;#007bb6&#8243; follow_button=&#8220;off&#8220; url_new_window=&#8220;on&#8220;]linkedin[\/et_pb_social_media_follow_network][et_pb_social_media_follow_network social_network=&#8220;twitter&#8220; url=&#8220;https:\/\/twitter.com\/berg_software&#8220; _builder_version=&#8220;4.4.4&#8243; background_color=&#8220;#00aced&#8220; follow_button=&#8220;off&#8220; url_new_window=&#8220;on&#8220;]twitter[\/et_pb_social_media_follow_network][et_pb_social_media_follow_network social_network=&#8220;facebook&#8220; url=&#8220;https:\/\/www.facebook.com\/bergCOMPUTERS&#8220; _builder_version=&#8220;4.4.4&#8243; background_color=&#8220;#3b5998&#8243; follow_button=&#8220;off&#8220; url_new_window=&#8220;on&#8220;]facebook[\/et_pb_social_media_follow_network][et_pb_social_media_follow_network social_network=&#8220;instagram&#8220; url=&#8220;https:\/\/www.instagram.com\/berg_software\/&#8220; _builder_version=&#8220;4.4.4&#8243; background_color=&#8220;#ea2c59&#8243; follow_button=&#8220;off&#8220; url_new_window=&#8220;on&#8220;]instagram[\/et_pb_social_media_follow_network][\/et_pb_social_media_follow][\/et_pb_column][et_pb_column type=&#8220;1_3&#8243; _builder_version=&#8220;4.4.1&#8243;][et_pb_post_nav in_same_term=&#8220;on&#8220; show_next=&#8220;off&#8220; _builder_version=&#8220;4.4.1&#8243; title_text_color=&#8220;#ff6317&#8243; custom_padding=&#8220;|25px|||false|false&#8220;][\/et_pb_post_nav][\/et_pb_column][et_pb_column type=&#8220;1_3&#8243; _builder_version=&#8220;4.4.1&#8243;][et_pb_post_nav in_same_term=&#8220;on&#8220; show_prev=&#8220;off&#8220; _builder_version=&#8220;4.4.1&#8243; title_text_color=&#8220;#ff6317&#8243; custom_padding=&#8220;|||25px|false|false&#8220;][\/et_pb_post_nav][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8220;1&#8243; admin_label=&#8220;CONTACT&#8220; _builder_version=&#8220;4.4.1&#8243; background_color=&#8220;#d2d2d2&#8243; custom_padding=&#8220;75px||75px||false|false&#8220;][et_pb_row column_structure=&#8220;1_4,3_4&#8243; admin_label=&#8220;Service Section Title&#8220; _builder_version=&#8220;4.4.1&#8243; custom_padding=&#8220;||25px||false|false&#8220; animation_direction=&#8220;top&#8220; locked=&#8220;off&#8220;][et_pb_column type=&#8220;1_4&#8243; _builder_version=&#8220;3.25&#8243; custom_padding=&#8220;|||&#8220; custom_padding__hover=&#8220;|||&#8220;][\/et_pb_column][et_pb_column type=&#8220;3_4&#8243; _builder_version=&#8220;3.25&#8243; custom_padding=&#8220;|||&#8220; custom_padding__hover=&#8220;|||&#8220;][et_pb_text _builder_version=&#8220;4.4.1&#8243; text_font=&#8220;|300|||||||&#8220; text_text_color=&#8220;#ffffff&#8220; text_line_height=&#8220;1.1em&#8220; header_5_font=&#8220;|600|||||||&#8220; header_5_text_color=&#8220;#ffffff&#8220; header_5_font_size=&#8220;14px&#8220; header_5_line_height=&#8220;1.5em&#8220; custom_margin=&#8220;||||false|false&#8220;]29 Jahre im Gesch\u00e4ft | 2700 Software-Projekte | 760 Kunden | 24 L\u00e4nder<\/p>\n<h5>Wir verwandeln Ideen in Software. Wie lautet Ihre Idee?<\/h5>[\/et_pb_text][et_pb_text admin_label=&#8220;Title&#8220; _builder_version=&#8220;4.4.6&#8243; header_text_align=&#8220;center&#8220; header_2_font=&#8220;|300|||||||&#8220; header_2_text_align=&#8220;left&#8220; header_2_text_color=&#8220;#ff6317&#8243; header_2_font_size=&#8220;50px&#8220; header_2_line_height=&#8220;0.9em&#8220; custom_margin=&#8220;||||false|false&#8220; custom_padding=&#8220;25px||25px||false|false&#8220;]<h2 id=\"Getintouch\">Kontakt aufnehmen<\/h2>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8220;1_4,3_4&#8243; _builder_version=&#8220;4.4.4&#8243;][et_pb_column type=&#8220;1_4&#8243; _builder_version=&#8220;4.4.4&#8243;][\/et_pb_column][et_pb_column type=&#8220;3_4&#8243; _builder_version=&#8220;4.4.4&#8243;][et_pb_contact_form email=&#8220;contact@bergsoftprod.wpengine.com&#8220; custom_message=&#8220;WEBFORM MESSAGE||et_pb_line_break_holder||\uff3f||et_pb_line_break_holder||FROM: %%Name%%||et_pb_line_break_holder||EMAIL: %%Email%%||et_pb_line_break_holder||PHONE NUMBER: %%Phone_number%%||et_pb_line_break_holder||COMPANY: %%Company_name%%||et_pb_line_break_holder||TERMS &#038; CONDITIONS: %%Terms_and_Conditions%%||et_pb_line_break_holder||DATA PRIVACY POLICY: %%Data_Privacy_Policy%%||et_pb_line_break_holder||\uff3f||et_pb_line_break_holder||MESSAGE:||et_pb_line_break_holder||%%Message%%&#8220; success_message=&#8220;Thank you for reaching out! Your message was sent. We will get back to you right away.&#8220; _builder_version=&#8220;4.4.4&#8243; form_field_background_color=&#8220;#d2d2d2&#8243; form_field_text_color=&#8220;#ffffff&#8220; form_field_focus_background_color=&#8220;#ffffff&#8220; form_field_focus_text_color=&#8220;#000000&#8243; title_level=&#8220;h2&#8243; title_font=&#8220;|300|||||||&#8220; title_text_color=&#8220;#ff6317&#8243; title_font_size=&#8220;30px&#8220; form_field_line_height=&#8220;1.5em&#8220; custom_button=&#8220;on&#8220; button_text_size=&#8220;14px&#8220; button_text_color=&#8220;#ffffff&#8220; button_bg_color=&#8220;#ff6317&#8243; button_border_width=&#8220;0px&#8220; button_border_radius=&#8220;0px&#8220; button_icon=&#8220;%%3%%&#8220; button_on_hover=&#8220;off&#8220; border_color_all=&#8220;#ffffff&#8220; border_width_bottom=&#8220;1px&#8220;][et_pb_contact_field field_id=&#8220;Name&#8220; field_title=&#8220;Name *&#8220; fullwidth_field=&#8220;on&#8220; _builder_version=&#8220;4.4.4&#8243; form_field_background_color=&#8220;#d2d2d2&#8243; form_field_text_color=&#8220;#ffffff&#8220; form_field_focus_background_color=&#8220;#ffffff&#8220; form_field_focus_text_color=&#8220;#000000&#8243; border_width_bottom=&#8220;1px&#8220; button_text_size__hover_enabled=&#8220;off&#8220; button_one_text_size__hover_enabled=&#8220;off&#8220; button_two_text_size__hover_enabled=&#8220;off&#8220; button_text_color__hover_enabled=&#8220;off&#8220; button_one_text_color__hover_enabled=&#8220;off&#8220; button_two_text_color__hover_enabled=&#8220;off&#8220; button_border_width__hover_enabled=&#8220;off&#8220; button_one_border_width__hover_enabled=&#8220;off&#8220; button_two_border_width__hover_enabled=&#8220;off&#8220; button_border_color__hover_enabled=&#8220;off&#8220; button_one_border_color__hover_enabled=&#8220;off&#8220; button_two_border_color__hover_enabled=&#8220;off&#8220; button_border_radius__hover_enabled=&#8220;off&#8220; button_one_border_radius__hover_enabled=&#8220;off&#8220; button_two_border_radius__hover_enabled=&#8220;off&#8220; button_letter_spacing__hover_enabled=&#8220;off&#8220; button_one_letter_spacing__hover_enabled=&#8220;off&#8220; button_two_letter_spacing__hover_enabled=&#8220;off&#8220; button_bg_color__hover_enabled=&#8220;off&#8220; button_one_bg_color__hover_enabled=&#8220;off&#8220; button_two_bg_color__hover_enabled=&#8220;off&#8220;][\/et_pb_contact_field][et_pb_contact_field field_id=&#8220;Email&#8220; field_title=&#8220;E-Mail-Adresse *&#8220; field_type=&#8220;email&#8220; fullwidth_field=&#8220;on&#8220; _builder_version=&#8220;4.4.4&#8243; button_text_size__hover_enabled=&#8220;off&#8220; button_one_text_size__hover_enabled=&#8220;off&#8220; button_two_text_size__hover_enabled=&#8220;off&#8220; button_text_color__hover_enabled=&#8220;off&#8220; button_one_text_color__hover_enabled=&#8220;off&#8220; button_two_text_color__hover_enabled=&#8220;off&#8220; button_border_width__hover_enabled=&#8220;off&#8220; button_one_border_width__hover_enabled=&#8220;off&#8220; button_two_border_width__hover_enabled=&#8220;off&#8220; button_border_color__hover_enabled=&#8220;off&#8220; button_one_border_color__hover_enabled=&#8220;off&#8220; button_two_border_color__hover_enabled=&#8220;off&#8220; button_border_radius__hover_enabled=&#8220;off&#8220; button_one_border_radius__hover_enabled=&#8220;off&#8220; button_two_border_radius__hover_enabled=&#8220;off&#8220; button_letter_spacing__hover_enabled=&#8220;off&#8220; button_one_letter_spacing__hover_enabled=&#8220;off&#8220; button_two_letter_spacing__hover_enabled=&#8220;off&#8220; button_bg_color__hover_enabled=&#8220;off&#8220; button_one_bg_color__hover_enabled=&#8220;off&#8220; button_two_bg_color__hover_enabled=&#8220;off&#8220;][\/et_pb_contact_field][et_pb_contact_field field_id=&#8220;Phone_number&#8220; field_title=&#8220;Telefonnummer&#8220; required_mark=&#8220;off&#8220; fullwidth_field=&#8220;on&#8220; _builder_version=&#8220;4.4.4&#8243;][\/et_pb_contact_field][et_pb_contact_field field_id=&#8220;Company_name&#8220; field_title=&#8220;Name des Unternehmens&#8220; fullwidth_field=&#8220;on&#8220; _builder_version=&#8220;4.4.4&#8243;][\/et_pb_contact_field][et_pb_contact_field field_id=&#8220;Message&#8220; field_title=&#8220;Nachricht *&#8220; field_type=&#8220;text&#8220; fullwidth_field=&#8220;on&#8220; _builder_version=&#8220;4.4.4&#8243; form_field_background_color=&#8220;#d2d2d2&#8243; form_field_focus_background_color=&#8220;#ffffff&#8220; form_field_focus_text_color=&#8220;#000000&#8243; border_width_bottom=&#8220;1px&#8220; button_text_size__hover_enabled=&#8220;off&#8220; button_one_text_size__hover_enabled=&#8220;off&#8220; button_two_text_size__hover_enabled=&#8220;off&#8220; button_text_color__hover_enabled=&#8220;off&#8220; button_one_text_color__hover_enabled=&#8220;off&#8220; button_two_text_color__hover_enabled=&#8220;off&#8220; button_border_width__hover_enabled=&#8220;off&#8220; button_one_border_width__hover_enabled=&#8220;off&#8220; button_two_border_width__hover_enabled=&#8220;off&#8220; button_border_color__hover_enabled=&#8220;off&#8220; button_one_border_color__hover_enabled=&#8220;off&#8220; button_two_border_color__hover_enabled=&#8220;off&#8220; button_border_radius__hover_enabled=&#8220;off&#8220; button_one_border_radius__hover_enabled=&#8220;off&#8220; button_two_border_radius__hover_enabled=&#8220;off&#8220; button_letter_spacing__hover_enabled=&#8220;off&#8220; button_one_letter_spacing__hover_enabled=&#8220;off&#8220; button_two_letter_spacing__hover_enabled=&#8220;off&#8220; button_bg_color__hover_enabled=&#8220;off&#8220; button_one_bg_color__hover_enabled=&#8220;off&#8220; button_two_bg_color__hover_enabled=&#8220;off&#8220;][\/et_pb_contact_field][et_pb_contact_field field_id=&#8220;Terms_and_Conditions&#8220; field_title=&#8220; &#8220; field_type=&#8220;checkbox&#8220; checkbox_options=&#8220;%91{%22value%22:%22Ich habe die AGB gelesen und akzeptiert%22,%22checked%22:0,%22dragID%22:-1}%93&#8243; fullwidth_field=&#8220;on&#8220; _builder_version=&#8220;4.4.4&#8243;][\/et_pb_contact_field][et_pb_contact_field field_id=&#8220;Data_Privacy_Policy&#8220; field_title=&#8220; &#8220; field_type=&#8220;checkbox&#8220; checkbox_options=&#8220;%91{%22value%22:%22Ich habe die Datenschutzrichtlinie gelesen und akzeptiert%22,%22checked%22:0,%22dragID%22:-1}%93&#8243; fullwidth_field=&#8220;on&#8220; _builder_version=&#8220;4.4.4&#8243;][\/et_pb_contact_field][\/et_pb_contact_form][\/et_pb_column][\/et_pb_row][\/et_pb_section]\n","protected":false},"excerpt":{"rendered":"<p>Memory-Sharing-Systeme k\u00f6nnen recht anspruchsvoll sein. Sie k\u00f6nnen Ihre eigene Plattform entwickeln oder Hazelcast IMDG ausprobieren, das eine umfangreiche Liste von L\u00f6sungen enth\u00e4lt.<\/p>\n","protected":false},"author":13,"featured_media":7531,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[79,141],"tags":[],"class_list":["post-7552","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-einblicke","category-how-to-de"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v16.1.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Memory-sharing mit Hazelcast IMDG| Berg Software<\/title>\n<meta name=\"description\" content=\"Memory-Sharing-Systeme k\u00f6nnen recht anspruchsvoll sein. Sie k\u00f6nnen Ihre eigene Plattform entwickeln oder Hazelcast IMDG ausprobieren, das eine umfangreiche Liste von L\u00f6sungen enth\u00e4lt.\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.berg-software.com\/de\/memory-sharing-von-grundlegend-bis-vollstaendig-mit-hazelcast-imdg\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Memory-sharing mit Hazelcast IMDG| Berg Software\" \/>\n<meta property=\"og:description\" content=\"Memory-Sharing-Systeme k\u00f6nnen recht anspruchsvoll sein. Sie k\u00f6nnen Ihre eigene Plattform entwickeln oder Hazelcast IMDG ausprobieren, das eine umfangreiche Liste von L\u00f6sungen enth\u00e4lt.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.berg-software.com\/de\/memory-sharing-von-grundlegend-bis-vollstaendig-mit-hazelcast-imdg\/\" \/>\n<meta property=\"og:site_name\" content=\"Berg Software\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/bergCOMPUTERS\/\" \/>\n<meta property=\"article:published_time\" content=\"2021-06-02T03:49:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-06-02T03:49:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.berg-software.com\/wp-content\/uploads\/Berg-cover-articol-Hazelcast-1200x600px.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"600\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@berg_software\" \/>\n<meta name=\"twitter:site\" content=\"@berg_software\" \/>\n<meta name=\"twitter:label1\" content=\"Gesch\u00e4tzte Lesezeit\">\n\t<meta name=\"twitter:data1\" content=\"9 Minuten\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.berg-software.com\/en\/#organization\",\"name\":\"Berg Software\",\"url\":\"https:\/\/www.berg-software.com\/en\/\",\"sameAs\":[\"https:\/\/www.facebook.com\/bergCOMPUTERS\/\",\"https:\/\/www.instagram.com\/berg_software\/\",\"https:\/\/www.linkedin.com\/company\/berg-computers-srl\/\",\"https:\/\/www.youtube.com\/channel\/UCw1FfcRJnC-CoKPwlcM10Iw\",\"https:\/\/twitter.com\/berg_software\"],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.berg-software.com\/en\/#logo\",\"inLanguage\":\"de-DE\",\"url\":\"https:\/\/berg-software.com\/wp-content\/uploads\/berg-software-logo.png\",\"contentUrl\":\"https:\/\/berg-software.com\/wp-content\/uploads\/berg-software-logo.png\",\"width\":512,\"height\":512,\"caption\":\"Berg Software\"},\"image\":{\"@id\":\"https:\/\/www.berg-software.com\/en\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.berg-software.com\/en\/#website\",\"url\":\"https:\/\/www.berg-software.com\/en\/\",\"name\":\"Berg Software\",\"description\":\"We turn ideas into software.\",\"publisher\":{\"@id\":\"https:\/\/www.berg-software.com\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/www.berg-software.com\/en\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de-DE\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.berg-software.com\/de\/memory-sharing-von-grundlegend-bis-vollstaendig-mit-hazelcast-imdg\/#primaryimage\",\"inLanguage\":\"de-DE\",\"url\":\"https:\/\/www.berg-software.com\/wp-content\/uploads\/Berg-cover-articol-Hazelcast-1200x600px.jpg\",\"contentUrl\":\"https:\/\/www.berg-software.com\/wp-content\/uploads\/Berg-cover-articol-Hazelcast-1200x600px.jpg\",\"width\":1200,\"height\":600,\"caption\":\"Berg - cover articol Hazelcast 1200x600px\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.berg-software.com\/de\/memory-sharing-von-grundlegend-bis-vollstaendig-mit-hazelcast-imdg\/#webpage\",\"url\":\"https:\/\/www.berg-software.com\/de\/memory-sharing-von-grundlegend-bis-vollstaendig-mit-hazelcast-imdg\/\",\"name\":\"Memory-sharing mit Hazelcast IMDG| Berg Software\",\"isPartOf\":{\"@id\":\"https:\/\/www.berg-software.com\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.berg-software.com\/de\/memory-sharing-von-grundlegend-bis-vollstaendig-mit-hazelcast-imdg\/#primaryimage\"},\"datePublished\":\"2021-06-02T03:49:54+00:00\",\"dateModified\":\"2021-06-02T03:49:56+00:00\",\"description\":\"Memory-Sharing-Systeme k\\u00f6nnen recht anspruchsvoll sein. Sie k\\u00f6nnen Ihre eigene Plattform entwickeln oder Hazelcast IMDG ausprobieren, das eine umfangreiche Liste von L\\u00f6sungen enth\\u00e4lt.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.berg-software.com\/de\/memory-sharing-von-grundlegend-bis-vollstaendig-mit-hazelcast-imdg\/#breadcrumb\"},\"inLanguage\":\"de-DE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.berg-software.com\/de\/memory-sharing-von-grundlegend-bis-vollstaendig-mit-hazelcast-imdg\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.berg-software.com\/de\/memory-sharing-von-grundlegend-bis-vollstaendig-mit-hazelcast-imdg\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.berg-software.com\/de\/\",\"url\":\"https:\/\/www.berg-software.com\/de\/\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.berg-software.com\/de\/category\/einblicke\/\",\"url\":\"https:\/\/www.berg-software.com\/de\/category\/einblicke\/\",\"name\":\"Einblicke\"}},{\"@type\":\"ListItem\",\"position\":3,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.berg-software.com\/de\/memory-sharing-von-grundlegend-bis-vollstaendig-mit-hazelcast-imdg\/\",\"url\":\"https:\/\/www.berg-software.com\/de\/memory-sharing-von-grundlegend-bis-vollstaendig-mit-hazelcast-imdg\/\",\"name\":\"Memory-sharing: von grundlegend bis vollst\\u00e4ndig, mit Hazelcast IMDG\"}}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/www.berg-software.com\/de\/memory-sharing-von-grundlegend-bis-vollstaendig-mit-hazelcast-imdg\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.berg-software.com\/de\/memory-sharing-von-grundlegend-bis-vollstaendig-mit-hazelcast-imdg\/#webpage\"},\"author\":{\"@id\":\"https:\/\/www.berg-software.com\/en\/#\/schema\/person\/ac10b8fb6fab320920874d00f54bd96f\"},\"headline\":\"Memory-sharing: von grundlegend bis vollst\\u00e4ndig, mit Hazelcast IMDG\",\"datePublished\":\"2021-06-02T03:49:54+00:00\",\"dateModified\":\"2021-06-02T03:49:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.berg-software.com\/de\/memory-sharing-von-grundlegend-bis-vollstaendig-mit-hazelcast-imdg\/#webpage\"},\"publisher\":{\"@id\":\"https:\/\/www.berg-software.com\/en\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.berg-software.com\/de\/memory-sharing-von-grundlegend-bis-vollstaendig-mit-hazelcast-imdg\/#primaryimage\"},\"articleSection\":\"Einblicke,How to\",\"inLanguage\":\"de-DE\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.berg-software.com\/en\/#\/schema\/person\/ac10b8fb6fab320920874d00f54bd96f\",\"name\":\"Bogdan Fagadar-Ghisa\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","_links":{"self":[{"href":"https:\/\/www.berg-software.com\/de\/wp-json\/wp\/v2\/posts\/7552","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.berg-software.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.berg-software.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.berg-software.com\/de\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.berg-software.com\/de\/wp-json\/wp\/v2\/comments?post=7552"}],"version-history":[{"count":0,"href":"https:\/\/www.berg-software.com\/de\/wp-json\/wp\/v2\/posts\/7552\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.berg-software.com\/de\/wp-json\/wp\/v2\/media\/7531"}],"wp:attachment":[{"href":"https:\/\/www.berg-software.com\/de\/wp-json\/wp\/v2\/media?parent=7552"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.berg-software.com\/de\/wp-json\/wp\/v2\/categories?post=7552"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.berg-software.com\/de\/wp-json\/wp\/v2\/tags?post=7552"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}