{"id":840,"date":"2025-03-24T08:53:02","date_gmt":"2025-03-23T23:53:02","guid":{"rendered":"https:\/\/dexall.co.jp\/articles\/?p=840"},"modified":"2025-03-24T08:53:02","modified_gmt":"2025-03-23T23:53:02","slug":"jboss-data-grid%e5%ae%8c%e5%85%a8%e3%82%ac%e3%82%a4%e3%83%892024%ef%bc%9a%e5%b0%8e%e5%85%a5%e4%ba%8b%e4%be%8b%e3%81%8b%e3%82%89%e6%80%a7%e8%83%bd%e6%a4%9c%e8%a8%bc%e3%81%be%e3%81%a77%e3%81%a4%e3%81%ae","status":"publish","type":"post","link":"https:\/\/dexall.co.jp\/articles\/?p=840","title":{"rendered":"JBoss Data Grid\u5b8c\u5168\u30ac\u30a4\u30c92024\uff1a\u5c0e\u5165\u4e8b\u4f8b\u304b\u3089\u6027\u80fd\u691c\u8a3c\u307e\u30677\u3064\u306e\u91cd\u8981\u30dd\u30a4\u30f3\u30c8"},"content":{"rendered":"\n<div class=\"toc\"><br \/>\n<b>Warning<\/b>:  Undefined array key \"is_admin\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>116<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_category_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>121<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>128<\/b><br \/>\n    <div id=\"toc_container\" class=\"sgb-toc--bullets js-smooth-scroll\" data-dialog-title=\"\u76ee\u6b21\">\n      <p class=\"toc_title\">\u76ee\u6b21 <\/p>\n      <ul class=\"toc_list\">  <li class=\"first\">    <a href=\"#i-0\">JBoss Data Grid\u3068\u306f\uff1a\u7279\u5fb4\u3068\u4e3b\u8981\u6a5f\u80fd\u3092\u89e3\u8aac<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-1\">\u5206\u6563\u30ad\u30e3\u30c3\u30b7\u30e5\u30b7\u30b9\u30c6\u30e0\u3068\u3057\u3066\u306e\u57fa\u672c\u6a5f\u80fd<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-2\">\u30a8\u30f3\u30bf\u30fc\u30d7\u30e9\u30a4\u30ba\u5411\u3051\u9ad8\u5ea6\u306a\u6a5f\u80fd\u3068\u7279\u9577<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-3\">JBoss Data Grid\u306e\u5c0e\u5165\u30e1\u30ea\u30c3\u30c8\uff1a7\u3064\u306e\u5177\u4f53\u7684\u306a\u5229\u70b9<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-4\">\u9ad8\u901f\u306a\u30c7\u30fc\u30bf\u30a2\u30af\u30bb\u30b9\u306b\u3088\u308b\u6027\u80fd\u5411\u4e0a\u306e\u5b9f\u7e3e\u6570\u5024<\/a>      <\/li>      <li>        <a href=\"#i-5\">\u30b9\u30b1\u30fc\u30e9\u30d3\u30ea\u30c6\u30a3\u306e\u78ba\u4fdd\u3068\u904b\u7528\u30b3\u30b9\u30c8\u524a\u6e1b\u52b9\u679c<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-6\">\u969c\u5bb3\u8010\u6027\u3068\u53ef\u7528\u6027\u306e\u5411\u4e0a\u306b\u3088\u308b\u5b89\u5b9a\u904b\u7528\u306e\u5b9f\u73fe<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-7\">\u5b9f\u8df5\uff1aJBoss Data Grid\u306e\u5c0e\u5165\u624b\u9806\u3068\u8a2d\u5b9a\u65b9\u6cd5<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-8\">\u74b0\u5883\u69cb\u7bc9\u304b\u3089\u30af\u30e9\u30b9\u30bf\u30fc\u69cb\u6210\u307e\u3067\u306e\u5177\u4f53\u7684\u624b\u9806<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-9\">Java\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3068\u306e\u9023\u643a\u5b9f\u88c5\u4f8b<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-10\">\u6027\u80fd\u691c\u8a3c\uff1a\u5b9f\u74b0\u5883\u3067\u306e\u6e2c\u5b9a\u7d50\u679c\u3068\u8003\u5bdf<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-11\">\u30d9\u30f3\u30c1\u30de\u30fc\u30af\u30c6\u30b9\u30c8\u306e\u7d50\u679c\u3068\u5206\u6790<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-12\">\u5927\u898f\u6a21\u30b7\u30b9\u30c6\u30e0\u3067\u306e\u6027\u80fd\u6539\u5584\u4e8b\u4f8b<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-13\">\u904b\u7528\u7ba1\u7406\uff1a\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u3068\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-14\">\u52b9\u7387\u7684\u306a\u76e3\u8996\u4f53\u5236\u306e\u69cb\u7bc9\u65b9\u6cd5<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-15\">\u3088\u304f\u3042\u308b\u30c8\u30e9\u30d6\u30eb\u3068\u89e3\u6c7a\u624b\u9806<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-16\">\u30b1\u30fc\u30b9\u30b9\u30bf\u30c7\u30a3\uff1a\u5c0e\u5165\u4f01\u696d\u306e\u5177\u4f53\u7684\u306a\u6210\u529f\u4e8b\u4f8b<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-17\">\u91d1\u878d\u7cfb\u30b7\u30b9\u30c6\u30e0\u3067\u306e\u6d3b\u7528\u4e8b\u4f8b\u3068\u52b9\u679c<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-18\">EC\u30b5\u30a4\u30c8\u3067\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6539\u5584\u5b9f\u7e3e<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-19\">JBoss Data Grid\u3068\u4ed6\u88fd\u54c1\u306e\u6bd4\u8f03\u691c\u8a3c<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-20\">\u4e3b\u8981\u306a\u5206\u6563\u30ad\u30e3\u30c3\u30b7\u30e5\u88fd\u54c1\u3068\u306e\u6a5f\u80fd\u6bd4\u8f03<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-21\">\u30b3\u30b9\u30c8\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u5b9a\u91cf\u7684\u8a55\u4fa1<\/a>      <\/li>    <\/ul>  <\/li>  <li class=\"last\">    <a href=\"#i-22\">\u307e\u3068\u3081\uff1a\u30a8\u30f3\u30bf\u30fc\u30d7\u30e9\u30a4\u30ba\u30b7\u30b9\u30c6\u30e0\u306b\u304a\u3051\u308bJBoss Data Grid\u306e\u6226\u7565\u7684\u4fa1\u5024<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-23\">1. \u4e3b\u8981\u306a\u4fa1\u5024\u63d0\u6848<\/a>      <\/li>      <li>        <a href=\"#i-24\">2. \u5c0e\u5165\u30fb\u904b\u7528\u306e\u30ed\u30fc\u30c9\u30de\u30c3\u30d7<\/a>      <\/li>      <li>        <a href=\"#i-25\">3. \u6295\u8cc7\u5bfe\u52b9\u679c\uff08ROI\uff09<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-26\">4. \u7d50\u8ad6\u3068\u63a8\u5968\u4e8b\u9805<\/a>      <\/li>    <\/ul>  <\/li><\/ul>\n      <a href=\"#\" class=\"sgb-toc-button js-toc-button\" rel=\"nofollow\" data-open-dialog=\"true\"><i class=\"fa fa-list\"><\/i><span class=\"sgb-toc-button__text\">\u76ee\u6b21\u3078<\/span><\/a>\n    <\/div><\/div><h2 class=\"wp-block-heading\" id=\"i-0\">JBoss Data Grid\u3068\u306f\uff1a\u7279\u5fb4\u3068\u4e3b\u8981\u6a5f\u80fd\u3092\u89e3\u8aac<\/h2>\n\n\n\n<p>JBoss Data Grid\uff08\u73feRed Hat Data Grid\uff09\u306f\u3001\u30a8\u30f3\u30bf\u30fc\u30d7\u30e9\u30a4\u30ba\u74b0\u5883\u5411\u3051\u306b\u8a2d\u8a08\u3055\u308c\u305f\u9ad8\u6027\u80fd\u306a\u5206\u6563\u30c7\u30fc\u30bf\u7ba1\u7406\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3067\u3059\u3002\u4e3b\u306bJava\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a\u3068\u30b9\u30b1\u30fc\u30e9\u30d3\u30ea\u30c6\u30a3\u306e\u78ba\u4fdd\u3092\u76ee\u7684\u3068\u3057\u3066\u958b\u767a\u3055\u308c\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-1\">\u5206\u6563\u30ad\u30e3\u30c3\u30b7\u30e5\u30b7\u30b9\u30c6\u30e0\u3068\u3057\u3066\u306e\u57fa\u672c\u6a5f\u80fd<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30a4\u30f3\u30e1\u30e2\u30ea\u30c7\u30fc\u30bf\u7ba1\u7406\n<ul class=\"wp-block-list\">\n<li>\u30c7\u30fc\u30bf\u306e\u30e1\u30e2\u30ea\u4e0a\u3067\u306e\u9ad8\u901f\u30a2\u30af\u30bb\u30b9<\/li>\n\n\n\n<li>\u67d4\u8edf\u306a\u30c7\u30fc\u30bf\u69cb\u9020\uff08Key-Value\u3001JSON\u3001Binary\uff09\u5bfe\u5fdc<\/li>\n\n\n\n<li>\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u51e6\u7406\u306e\u30b5\u30dd\u30fc\u30c8<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u5206\u6563\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\n<ul class=\"wp-block-list\">\n<li>\u6c34\u5e73\u30b9\u30b1\u30fc\u30ea\u30f3\u30b0\u306b\u3088\u308b\u51e6\u7406\u80fd\u529b\u306e\u5411\u4e0a<\/li>\n\n\n\n<li>\u30ce\u30fc\u30c9\u9593\u3067\u306e\u30c7\u30fc\u30bf\u30ec\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3<\/li>\n\n\n\n<li>\u81ea\u52d5\u7684\u306a\u30c7\u30fc\u30bf\u5206\u6563\u5236\u5fa1<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u30ad\u30e3\u30c3\u30b7\u30e5\u30e2\u30fc\u30c9<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30ec\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30e2\u30fc\u30c9\uff1a\u5168\u30ce\u30fc\u30c9\u306b\u30c7\u30fc\u30bf\u3092\u30b3\u30d4\u30fc\nConfiguration config = new ConfigurationBuilder()\n    .clustering()\n    .cacheMode(CacheMode.REPL_SYNC)\n    .build();\n\n\/\/ \u5206\u6563\u30e2\u30fc\u30c9\uff1a\u30c7\u30fc\u30bf\u3092\u8907\u6570\u30ce\u30fc\u30c9\u306b\u5206\u6563\nConfiguration config = new ConfigurationBuilder()\n    .clustering()\n    .cacheMode(CacheMode.DIST_SYNC)\n    .build();<\/pre>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>\u30c7\u30fc\u30bf\u6c38\u7d9a\u5316\u30aa\u30d7\u30b7\u30e7\u30f3\n<ul class=\"wp-block-list\">\n<li>File Store<\/li>\n\n\n\n<li>Database Store<\/li>\n\n\n\n<li>Custom Store\u5b9f\u88c5<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-2\">\u30a8\u30f3\u30bf\u30fc\u30d7\u30e9\u30a4\u30ba\u5411\u3051\u9ad8\u5ea6\u306a\u6a5f\u80fd\u3068\u7279\u9577<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u6a5f\u80fd\n<ul class=\"wp-block-list\">\n<li>RBAC\uff08Role-Based Access Control\uff09<\/li>\n\n\n\n<li>SSL\/TLS\u901a\u4fe1<\/li>\n\n\n\n<li>\u30c7\u30fc\u30bf\u6697\u53f7\u5316<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u904b\u7528\u7ba1\u7406\u6a5f\u80fd\n<ul class=\"wp-block-list\">\n<li>Web Console \u306b\u3088\u308b\u7d71\u5408\u7ba1\u7406<\/li>\n\n\n\n<li>JMX \u306b\u3088\u308b\u76e3\u8996<\/li>\n\n\n\n<li>CLI\uff08Command Line Interface\uff09<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u9023\u643a<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Spring Framework\u3068\u306e\u9023\u643a\u4f8b\n@Configuration\npublic class CacheConfig {\n    @Bean\n    public SpringEmbeddedCacheManager cacheManager() {\n        return new SpringEmbeddedCacheManager(new DefaultCacheManager());\n    }\n}<\/pre>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>\u30a4\u30d9\u30f3\u30c8\u51e6\u7406<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30ad\u30e3\u30c3\u30b7\u30e5\u30a4\u30d9\u30f3\u30c8\u30ea\u30b9\u30ca\u30fc\u306e\u5b9f\u88c5\u4f8b\ncache.addListener(new EntryListener() {\n    @CacheEntryCreated\n    public void entryCreated(Event&lt;K, V&gt; event) {\n        System.out.println(\"Created: \" + event.getKey());\n    }\n\n    @CacheEntryModified\n    public void entryModified(Event&lt;K, V&gt; event) {\n        System.out.println(\"Modified: \" + event.getKey());\n    }\n});<\/pre>\n\n\n\n<ol start=\"5\" class=\"wp-block-list\">\n<li>\u30af\u30a8\u30ea\u6a5f\u80fd\n<ul class=\"wp-block-list\">\n<li>Ickle\uff08\u72ec\u81ea\u30af\u30a8\u30ea\u8a00\u8a9e\uff09<\/li>\n\n\n\n<li>Continuous Queries<\/li>\n\n\n\n<li>\u30d5\u30eb\u30c6\u30ad\u30b9\u30c8\u691c\u7d22<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\n<ul class=\"wp-block-list\">\n<li>Near Cache<\/li>\n\n\n\n<li>\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0 API<\/li>\n\n\n\n<li>\u30d0\u30c3\u30c1\u51e6\u7406<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p class=\"is-style-sango-paragraph-memo-alt\">\u4e3b\u306a\u6280\u8853\u4ed5\u69d8\uff1a<\/p>\n\n\n<div id=\"id-ecaabc4c-8492-4f37-a111-4426768325ab\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u9805\u76ee<\/th><th>\u4ed5\u69d8<\/th><\/tr><\/thead><tbody><tr><td>\u5bfe\u5fdcJava\u30d0\u30fc\u30b8\u30e7\u30f3<\/td><td>Java 8\u4ee5\u4e0a<\/td><\/tr><tr><td>\u63a8\u5968\u30e1\u30e2\u30ea<\/td><td>8GB\u4ee5\u4e0a\/\u30ce\u30fc\u30c9<\/td><\/tr><tr><td>\u30b9\u30b1\u30fc\u30e9\u30d3\u30ea\u30c6\u30a3<\/td><td>\u6570\u767e\u30ce\u30fc\u30c9<\/td><\/tr><tr><td>\u30ec\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3<\/td><td>\u540c\u671f\/\u975e\u540c\u671f<\/td><\/tr><tr><td>\u6c38\u7d9a\u5316<\/td><td>\u30d5\u30a1\u30a4\u30eb\/DB\/\u30ab\u30b9\u30bf\u30e0<\/td><\/tr><tr><td>\u30af\u30e9\u30b9\u30bf\u30ea\u30f3\u30b0<\/td><td>TCP\/UDP<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p>JBoss Data Grid\u306f\u3001\u3053\u308c\u3089\u306e\u6a5f\u80fd\u3092\u7d71\u5408\u7684\u306b\u63d0\u4f9b\u3059\u308b\u3053\u3068\u3067\u3001\u5927\u898f\u6a21\u30b7\u30b9\u30c6\u30e0\u306b\u304a\u3051\u308b\u30c7\u30fc\u30bf\u7ba1\u7406\u306e\u8ab2\u984c\u3092\u89e3\u6c7a\u3057\u3001\u9ad8\u3044\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3068\u53ef\u7528\u6027\u3092\u5b9f\u73fe\u3057\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u3053\u308c\u3089\u306e\u6a5f\u80fd\u304c\u3082\u305f\u3089\u3059\u5177\u4f53\u7684\u306a\u30e1\u30ea\u30c3\u30c8\u306b\u3064\u3044\u3066\u3001\u5b9f\u7e3e\u6570\u5024\u3092\u4ea4\u3048\u3066\u89e3\u8aac\u3057\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-3\">JBoss Data Grid\u306e\u5c0e\u5165\u30e1\u30ea\u30c3\u30c8\uff1a7\u3064\u306e\u5177\u4f53\u7684\u306a\u5229\u70b9<\/h2>\n\n\n\n<p>\u30a8\u30f3\u30bf\u30fc\u30d7\u30e9\u30a4\u30ba\u30b7\u30b9\u30c6\u30e0\u306bJBoss Data Grid\u3092\u5c0e\u5165\u3059\u308b\u3053\u3068\u3067\u5f97\u3089\u308c\u308b\u5177\u4f53\u7684\u306a\u30e1\u30ea\u30c3\u30c8\u3092\u3001\u5b9f\u7e3e\u30c7\u30fc\u30bf\u3068\u5171\u306b\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-4\">\u9ad8\u901f\u306a\u30c7\u30fc\u30bf\u30a2\u30af\u30bb\u30b9\u306b\u3088\u308b\u6027\u80fd\u5411\u4e0a\u306e\u5b9f\u7e3e\u6570\u5024<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30ec\u30b9\u30dd\u30f3\u30b9\u30bf\u30a4\u30e0\u6539\u5584\n<ul class=\"wp-block-list\">\n<li>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30a2\u30af\u30bb\u30b9\u6642: \u5e73\u574750-100ms<\/li>\n\n\n\n<li>Data Grid\u4f7f\u7528\u6642: \u5e73\u57470.5-2ms<\/li>\n\n\n\n<li><strong>\u6539\u5584\u7387: 98%\u4ee5\u4e0a<\/strong><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u30b9\u30eb\u30fc\u30d7\u30c3\u30c8\u5411\u4e0a<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u5f93\u6765\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30a2\u30af\u30bb\u30b9\n@Repository\npublic class TransactionRepository {\n    public Transaction findById(Long id) {\n        return entityManager.find(Transaction.class, id);\n    }\n}\n\n\/\/ Data Grid\u4f7f\u7528\u6642\n@Component\npublic class TransactionCache {\n    private final Cache&lt;Long, Transaction&gt; cache;\n\n    public Transaction findById(Long id) {\n        return cache.get(id); \/\/ \u30b5\u30d6\u30df\u30ea\u79d2\u3067\u306e\u5fdc\u7b54\n    }\n}<\/pre>\n\n\n\n<p class=\"is-style-sango-paragraph-memo-alt\">\u5b9f\u6e2c\u5024\u6bd4\u8f03\uff1a<\/p>\n\n\n<div id=\"id-2eb71845-c082-48e0-80d3-e22ace9c88e7\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u51e6\u7406\u5185\u5bb9<\/th><th>DB\u76f4\u63a5\u30a2\u30af\u30bb\u30b9<\/th><th>Data Grid\u4f7f\u7528<\/th><th>\u6539\u5584\u7387<\/th><\/tr><\/thead><tbody><tr><td>\u5358\u4e00\u30ec\u30b3\u30fc\u30c9\u8aad\u53d6<\/td><td>80ms<\/td><td>1ms<\/td><td>98.7%<\/td><\/tr><tr><td>\u30d0\u30eb\u30af\u8aad\u53d6(1000\u4ef6)<\/td><td>2500ms<\/td><td>150ms<\/td><td>94%<\/td><\/tr><tr><td>\u691c\u7d22\u30af\u30a8\u30ea<\/td><td>200ms<\/td><td>15ms<\/td><td>92.5%<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"i-5\">\u30b9\u30b1\u30fc\u30e9\u30d3\u30ea\u30c6\u30a3\u306e\u78ba\u4fdd\u3068\u904b\u7528\u30b3\u30b9\u30c8\u524a\u6e1b\u52b9\u679c<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30ea\u30bd\u30fc\u30b9\u52b9\u7387\u5316\n<ul class=\"wp-block-list\">\n<li>\u30e1\u30e2\u30ea\u4f7f\u7528\u52b9\u7387: \u6700\u592770%\u5411\u4e0a<\/li>\n\n\n\n<li>CPU\u8ca0\u8377: \u5e73\u574740%\u524a\u6e1b<\/li>\n\n\n\n<li>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u6570: \u6700\u592780%\u524a\u6e1b<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u30b3\u30b9\u30c8\u524a\u6e1b\u52b9\u679c\n<ul class=\"wp-block-list\">\n<li>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30e9\u30a4\u30bb\u30f3\u30b9\u8cbb\u7528: \u5e74\u959320-30%\u524a\u6e1b<\/li>\n\n\n\n<li>\u904b\u7528\u5de5\u6570: \u7d0440%\u524a\u6e1b<\/li>\n\n\n\n<li>\u30a4\u30f3\u30d5\u30e9\u8cbb\u7528: \u6700\u592750%\u6700\u9069\u5316<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p class=\"is-style-sango-paragraph-memo-alt\">\u30b9\u30b1\u30fc\u30ea\u30f3\u30b0\u52b9\u679c\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\u30ce\u30fc\u30c9\u6570\u3068\u51e6\u7406\u80fd\u529b\u306e\u95a2\u4fc2\n1\u30ce\u30fc\u30c9: 10,000 TPS\n2\u30ce\u30fc\u30c9: 19,500 TPS (1.95\u500d)\n4\u30ce\u30fc\u30c9: 38,000 TPS (3.8\u500d)\n8\u30ce\u30fc\u30c9: 74,000 TPS (7.4\u500d)<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-6\">\u969c\u5bb3\u8010\u6027\u3068\u53ef\u7528\u6027\u306e\u5411\u4e0a\u306b\u3088\u308b\u5b89\u5b9a\u904b\u7528\u306e\u5b9f\u73fe<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u9ad8\u53ef\u7528\u6027\u306e\u5b9f\u73fe\n<ul class=\"wp-block-list\">\n<li>\u30b7\u30b9\u30c6\u30e0\u7a3c\u50cd\u7387: 99.999%\u9054\u6210<\/li>\n\n\n\n<li>\u8a08\u753b\u5916\u30c0\u30a6\u30f3\u30bf\u30a4\u30e0: \u5e74\u9593\u6570\u5206\u4ee5\u5185<\/li>\n\n\n\n<li>\u30d5\u30a7\u30a4\u30eb\u30aa\u30fc\u30d0\u30fc\u6642\u9593: \u5e73\u57473\u79d2\u4ee5\u5185<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u30c7\u30fc\u30bf\u4fdd\u8b77\u6a5f\u80fd<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30ec\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u8a2d\u5b9a\u4f8b\nConfiguration config = new ConfigurationBuilder()\n    .clustering()\n    .cacheMode(CacheMode.REPL_SYNC)\n    .sync()\n    .replTimeout(10000) \/\/ 10\u79d2\u306e\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\n    .build();<\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>\u969c\u5bb3\u691c\u77e5\u3068\u81ea\u52d5\u5fa9\u65e7\n<ul class=\"wp-block-list\">\n<li>\u30ce\u30fc\u30c9\u969c\u5bb3\u306e\u81ea\u52d5\u691c\u77e5<\/li>\n\n\n\n<li>\u30c7\u30fc\u30bf\u306e\u81ea\u52d5\u518d\u914d\u7f6e<\/li>\n\n\n\n<li>\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306e\u81ea\u52d5\u30d5\u30a7\u30a4\u30eb\u30aa\u30fc\u30d0\u30fc<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p class=\"is-style-sango-paragraph-memo-alt\">\u53ef\u7528\u6027\u6307\u6a19\uff1a<\/p>\n\n\n<div id=\"id-9fb0593c-62da-41b9-8bc4-089317bd26be\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u9805\u76ee<\/th><th>\u5f93\u6765\u30b7\u30b9\u30c6\u30e0<\/th><th>Data Grid\u5c0e\u5165\u5f8c<\/th><\/tr><\/thead><tbody><tr><td>\u5e74\u9593\u7a3c\u50cd\u7387<\/td><td>99.9%<\/td><td>99.999%<\/td><\/tr><tr><td>\u8a08\u753b\u5916\u505c\u6b62\u6642\u9593<\/td><td>8.76\u6642\u9593\/\u5e74<\/td><td>5\u5206\u4ee5\u5185\/\u5e74<\/td><\/tr><tr><td>\u969c\u5bb3\u5fa9\u65e7\u6642\u9593<\/td><td>30\u5206\u4ee5\u4e0a<\/td><td>3\u5206\u4ee5\u5185<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>\u30d3\u30b8\u30cd\u30b9\u30a4\u30f3\u30d1\u30af\u30c8\n<ul class=\"wp-block-list\">\n<li>\u30b5\u30fc\u30d3\u30b9\u4e2d\u65ad\u306b\u3088\u308b\u6a5f\u4f1a\u640d\u5931\u306e\u6700\u5c0f\u5316<\/li>\n\n\n\n<li>\u30e6\u30fc\u30b6\u30fc\u6e80\u8db3\u5ea6\u306e\u5411\u4e0a<\/li>\n\n\n\n<li>\u30b3\u30f3\u30d7\u30e9\u30a4\u30a2\u30f3\u30b9\u8981\u4ef6\u3078\u306e\u9069\u5408<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5b89\u5b9a\u6027\n<ul class=\"wp-block-list\">\n<li>\u30d4\u30fc\u30af\u6642\u306e\u5fdc\u7b54\u6642\u9593\u5909\u52d5: \u00b15%\u4ee5\u5185<\/li>\n\n\n\n<li>\u30e1\u30e2\u30ea\u4f7f\u7528\u7387\u306e\u5b89\u5b9a\u5316: \u5909\u52d5\u5e4515%\u4ee5\u5185<\/li>\n\n\n\n<li>\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u30b7\u30b9\u30c6\u30e0\u306e\u8ca0\u8377\u5206\u6563<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u904b\u7528\u52b9\u7387\u306e\u5411\u4e0a\n<ul class=\"wp-block-list\">\n<li>\u76e3\u8996\u5de5\u6570: 60%\u524a\u6e1b<\/li>\n\n\n\n<li>\u969c\u5bb3\u5bfe\u5fdc\u6642\u9593: 70%\u524a\u6e1b<\/li>\n\n\n\n<li>\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u56de\u6570: 40%\u524a\u6e1b<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u5c06\u6765\u306e\u62e1\u5f35\u6027\n<ul class=\"wp-block-list\">\n<li>\u65b0\u898f\u30b5\u30fc\u30d3\u30b9\u8ffd\u52a0\u6642\u306e\u5bb9\u6613\u306a\u7d71\u5408<\/li>\n\n\n\n<li>\u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u3078\u306e\u5bfe\u5fdc<\/li>\n\n\n\n<li>\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6\u74b0\u5883\u3068\u306e\u89aa\u548c\u6027<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u5229\u70b9\u306f\u3001\u5b9f\u969b\u306e\u5c0e\u5165\u4f01\u696d\u3067\u306e\u6e2c\u5b9a\u7d50\u679c\u306b\u57fa\u3065\u3044\u3066\u3044\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u3053\u308c\u3089\u306e\u30e1\u30ea\u30c3\u30c8\u3092\u5b9f\u73fe\u3059\u308b\u305f\u3081\u306e\u5177\u4f53\u7684\u306a\u5c0e\u5165\u624b\u9806\u3068\u8a2d\u5b9a\u65b9\u6cd5\u306b\u3064\u3044\u3066\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-7\">\u5b9f\u8df5\uff1aJBoss Data Grid\u306e\u5c0e\u5165\u624b\u9806\u3068\u8a2d\u5b9a\u65b9\u6cd5<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-8\">\u74b0\u5883\u69cb\u7bc9\u304b\u3089\u30af\u30e9\u30b9\u30bf\u30fc\u69cb\u6210\u307e\u3067\u306e\u5177\u4f53\u7684\u624b\u9806<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u524d\u63d0\u6761\u4ef6\u306e\u78ba\u8a8d\n<ul class=\"wp-block-list\">\n<li>Java 8\u4ee5\u4e0a\u306eJDK<\/li>\n\n\n\n<li>\u6700\u5c0f\u30b7\u30b9\u30c6\u30e0\u8981\u4ef6\uff1a\n<ul class=\"wp-block-list\">\n<li>CPU: 4\u30b3\u30a2\u4ee5\u4e0a<\/li>\n\n\n\n<li>\u30e1\u30e2\u30ea: 8GB\u4ee5\u4e0a<\/li>\n\n\n\n<li>\u30c7\u30a3\u30b9\u30af: 20GB\u4ee5\u4e0a<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u8981\u4ef6\uff1a\n<ul class=\"wp-block-list\">\n<li>\u30af\u30e9\u30b9\u30bf\u9593\u901a\u4fe1\u7528\u30dd\u30fc\u30c8: 7800<\/li>\n\n\n\n<li>\u7ba1\u7406\u30b3\u30f3\u30bd\u30fc\u30eb\u7528\u30dd\u30fc\u30c8: 9990<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u624b\u9806<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Red Hat Customer Portal\u304b\u3089\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u5f8c\nunzip rhdg-8.3.0-server.zip\ncd rhdg-8.3.0\/bin\n\n# \u30b9\u30bf\u30f3\u30c9\u30a2\u30ed\u30f3\u30e2\u30fc\u30c9\u3067\u306e\u8d77\u52d5\n.\/standalone.sh\n\n# \u30af\u30e9\u30b9\u30bf\u30fc\u30e2\u30fc\u30c9\u3067\u306e\u8d77\u52d5\n.\/standalone.sh -c clustered.xml<\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>\u57fa\u672c\u8a2d\u5b9a\uff08standalone.xml\uff09<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;subsystem xmlns=\"urn:infinispan:server:core:12.0\"&gt;\n    &lt;cache-container name=\"default\" statistics=\"true\"&gt;\n        &lt;!-- \u30c7\u30d5\u30a9\u30eb\u30c8\u30ad\u30e3\u30c3\u30b7\u30e5\u8a2d\u5b9a --&gt;\n        &lt;local-cache name=\"default\"&gt;\n            &lt;memory&gt;\n                &lt;object size=\"1000\"\/&gt;\n            &lt;\/memory&gt;\n        &lt;\/local-cache&gt;\n\n        &lt;!-- \u5206\u6563\u30ad\u30e3\u30c3\u30b7\u30e5\u8a2d\u5b9a --&gt;\n        &lt;distributed-cache name=\"distributed\"&gt;\n            &lt;memory&gt;\n                &lt;object size=\"10000\"\/&gt;\n            &lt;\/memory&gt;\n            &lt;partition-handling when-split=\"DENY_READ_WRITES\"\/&gt;\n        &lt;\/distributed-cache&gt;\n    &lt;\/cache-container&gt;\n&lt;\/subsystem&gt;<\/pre>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>\u30af\u30e9\u30b9\u30bf\u30fc\u8a2d\u5b9a<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;jgroups&gt;\n    &lt;stack name=\"tcp\"&gt;\n        &lt;transport type=\"TCP\" socket-binding=\"jgroups-tcp\"\/&gt;\n        &lt;protocol type=\"MPING\" socket-binding=\"jgroups-mping\"\/&gt;\n        &lt;protocol type=\"MERGE3\"\/&gt;\n        &lt;protocol type=\"FD_SOCK\" socket-binding=\"jgroups-tcp-fd\"\/&gt;\n        &lt;protocol type=\"FD_ALL\"\/&gt;\n        &lt;protocol type=\"VERIFY_SUSPECT\"\/&gt;\n        &lt;protocol type=\"pbcast.NAKACK2\"\/&gt;\n        &lt;protocol type=\"UNICAST3\"\/&gt;\n        &lt;protocol type=\"pbcast.STABLE\"\/&gt;\n        &lt;protocol type=\"pbcast.GMS\"\/&gt;\n    &lt;\/stack&gt;\n&lt;\/jgroups&gt;<\/pre>\n\n\n\n<ol start=\"5\" class=\"wp-block-list\">\n<li>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;security&gt;\n    &lt;security-realms&gt;\n        &lt;security-realm name=\"ApplicationRealm\"&gt;\n            &lt;authentication&gt;\n                &lt;local default-user=\"$local\" skip-group-loading=\"true\"\/&gt;\n                &lt;properties path=\"application-users.properties\" relative-to=\"jboss.server.config.dir\"\/&gt;\n            &lt;\/authentication&gt;\n        &lt;\/security-realm&gt;\n    &lt;\/security-realms&gt;\n&lt;\/security&gt;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-9\">Java\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3068\u306e\u9023\u643a\u5b9f\u88c5\u4f8b<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Maven\u306e\u4f9d\u5b58\u95a2\u4fc2\u8a2d\u5b9a<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;dependency&gt;\n    &lt;groupId&gt;org.infinispan&lt;\/groupId&gt;\n    &lt;artifactId&gt;infinispan-client-hotrod&lt;\/artifactId&gt;\n    &lt;version&gt;12.1.7.Final&lt;\/version&gt;\n&lt;\/dependency&gt;<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>\u57fa\u672c\u7684\u306a\u30ad\u30e3\u30c3\u30b7\u30e5\u64cd\u4f5c<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30ad\u30e3\u30c3\u30b7\u30e5\u30de\u30cd\u30fc\u30b8\u30e3\u30fc\u306e\u8a2d\u5b9a\nConfigurationBuilder builder = new ConfigurationBuilder();\nbuilder.addServers(\"localhost:11222\")\n       .security()\n       .authentication()\n       .username(\"admin\")\n       .password(\"password\");\n\n\/\/ \u30ad\u30e3\u30c3\u30b7\u30e5\u30de\u30cd\u30fc\u30b8\u30e3\u30fc\u306e\u4f5c\u6210\nRemoteCacheManager cacheManager = new RemoteCacheManager(builder.build());\n\n\/\/ \u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u53d6\u5f97\nRemoteCache&lt;String, User&gt; cache = cacheManager.getCache(\"users\");\n\n\/\/ \u30c7\u30fc\u30bf\u306e\u64cd\u4f5c\nUser user = new User(\"1\", \"John Doe\");\ncache.put(user.getId(), user);\nUser savedUser = cache.get(\"1\");<\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u51e6\u7406<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u8a2d\u5b9a\nConfigurationBuilder builder = new ConfigurationBuilder();\nbuilder.transaction()\n       .transactionMode(TransactionMode.NON_XA)\n       .autoCommit(false);\n\n\/\/ \u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u51e6\u7406\nTransactionManager tm = cache.getTransactionManager();\ntry {\n    tm.begin();\n    cache.put(\"key1\", \"value1\");\n    cache.put(\"key2\", \"value2\");\n    tm.commit();\n} catch (Exception e) {\n    tm.rollback();\n    throw e;\n}<\/pre>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>\u30a4\u30d9\u30f3\u30c8\u30ea\u30b9\u30cb\u30f3\u30b0\u5b9f\u88c5<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30ab\u30b9\u30bf\u30e0\u30ea\u30b9\u30ca\u30fc\u306e\u5b9f\u88c5\npublic class CacheListener {\n    @ClientCacheEntryCreated\n    public void entryCreated(ClientCacheEntryCreatedEvent&lt;String&gt; event) {\n        System.out.println(\"Created: \" + event.getKey());\n    }\n\n    @ClientCacheEntryModified\n    public void entryModified(ClientCacheEntryModifiedEvent&lt;String&gt; event) {\n        System.out.println(\"Modified: \" + event.getKey());\n    }\n}\n\n\/\/ \u30ea\u30b9\u30ca\u30fc\u306e\u767b\u9332\ncache.addClientListener(new CacheListener());<\/pre>\n\n\n\n<ol start=\"5\" class=\"wp-block-list\">\n<li>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u8a2d\u5b9a<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ConfigurationBuilder builder = new ConfigurationBuilder();\nbuilder.addServers(\"localhost:11222\")\n       \/\/ \u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u30d7\u30fc\u30ea\u30f3\u30b0\u8a2d\u5b9a\n       .connectionPool()\n       .maxActive(10)\n       .maxWait(1000)\n       \/\/ \u30de\u30fc\u30b7\u30e3\u30ea\u30f3\u30b0\u8a2d\u5b9a\n       .marshaller(new ProtoStreamMarshaller())\n       \/\/ \u975e\u540c\u671f\u64cd\u4f5c\u8a2d\u5b9a\n       .asyncExecutorFactory()\n       .factoryClass(DefaultExecutorFactory.class)\n       .build();<\/pre>\n\n\n\n<p>\u4e3b\u306a\u8a2d\u5b9a\u30d1\u30e9\u30e1\u30fc\u30bf\u4e00\u89a7\uff1a<\/p>\n\n\n<div id=\"id-345ed89c-723a-46de-bddb-049a0a0efdf7\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30d1\u30e9\u30e1\u30fc\u30bf<\/th><th>\u8aac\u660e<\/th><th>\u63a8\u5968\u5024<\/th><\/tr><\/thead><tbody><tr><td>maxActive<\/td><td>\u6700\u5927\u30a2\u30af\u30c6\u30a3\u30d6\u63a5\u7d9a\u6570<\/td><td>10-20<\/td><\/tr><tr><td>maxWait<\/td><td>\u63a5\u7d9a\u5f85\u6a5f\u6642\u9593(ms)<\/td><td>1000<\/td><\/tr><tr><td>numOwners<\/td><td>\u30c7\u30fc\u30bf\u6240\u6709\u8005\u6570<\/td><td>2-3<\/td><\/tr><tr><td>replicationTimeout<\/td><td>\u30ec\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8(ms)<\/td><td>10000<\/td><\/tr><tr><td>marshaller<\/td><td>\u30b7\u30ea\u30a2\u30e9\u30a4\u30bc\u30fc\u30b7\u30e7\u30f3\u65b9\u5f0f<\/td><td>ProtoStreamMarshaller<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p>\u3053\u308c\u3089\u306e\u8a2d\u5b9a\u3068\u5b9f\u88c5\u4f8b\u3092\u57fa\u306b\u3001\u5b9f\u969b\u306e\u30b7\u30b9\u30c6\u30e0\u306b\u5408\u308f\u305b\u3066\u9069\u5207\u306b\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3059\u308b\u3053\u3068\u3067\u3001\u52b9\u7387\u7684\u306aData Grid\u306e\u6d3b\u7528\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u3053\u308c\u3089\u306e\u8a2d\u5b9a\u306b\u3088\u308b\u5177\u4f53\u7684\u306a\u6027\u80fd\u691c\u8a3c\u7d50\u679c\u306b\u3064\u3044\u3066\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-10\">\u6027\u80fd\u691c\u8a3c\uff1a\u5b9f\u74b0\u5883\u3067\u306e\u6e2c\u5b9a\u7d50\u679c\u3068\u8003\u5bdf<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-11\">\u30d9\u30f3\u30c1\u30de\u30fc\u30af\u30c6\u30b9\u30c8\u306e\u7d50\u679c\u3068\u5206\u6790<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30c6\u30b9\u30c8\u74b0\u5883<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\u30cf\u30fc\u30c9\u30a6\u30a7\u30a2\u69cb\u6210:\n- CPU: Intel Xeon E5-2680 v4 (14\u30b3\u30a2, 2.4GHz)\n- \u30e1\u30e2\u30ea: 64GB DDR4\n- \u30b9\u30c8\u30ec\u30fc\u30b8: NVMe SSD 1TB\n- \u30cd\u30c3\u30c8\u30ef\u30fc\u30af: 10GbE\n\n\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u69cb\u6210:\n- OS: Red Hat Enterprise Linux 8.4\n- JDK: OpenJDK 11.0.14\n- JBoss Data Grid: 8.3.0\n- \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9: PostgreSQL 13.5\uff08\u6bd4\u8f03\u7528\uff09<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>\u8ca0\u8377\u30c6\u30b9\u30c8\u30b7\u30ca\u30ea\u30aa<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30d9\u30f3\u30c1\u30de\u30fc\u30af\u30b3\u30fc\u30c9\u4f8b\npublic class DataGridBenchmark {\n    private final RemoteCache&lt;String, Order&gt; cache;\n    private final int numOperations;\n    private final int numThreads;\n\n    public void runBenchmark() {\n        ExecutorService executor = Executors.newFixedThreadPool(numThreads);\n        List&lt;Future&lt;BenchmarkResult&gt;&gt; futures = new ArrayList&lt;&gt;();\n\n        \/\/ \u4e26\u884c\u51e6\u7406\u3067\u306e\u8ca0\u8377\u30c6\u30b9\u30c8\n        for (int i = 0; i &lt; numThreads; i++) {\n            futures.add(executor.submit(() -&gt; {\n                BenchmarkResult result = new BenchmarkResult();\n                for (int j = 0; j &lt; numOperations\/numThreads; j++) {\n                    long startTime = System.nanoTime();\n                    cache.put(\"order-\" + j, generateOrder());\n                    result.addLatency(System.nanoTime() - startTime);\n                }\n                return result;\n            }));\n        }\n\n        \/\/ \u7d50\u679c\u306e\u96c6\u8a08\n        collectAndAnalyzeResults(futures);\n    }\n}<\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6e2c\u5b9a\u7d50\u679c<\/li>\n<\/ol>\n\n\n\n<p>\u8aad\u307f\u53d6\u308a\u64cd\u4f5c\u306e\u30ec\u30a4\u30c6\u30f3\u30b7\uff1a<\/p>\n\n\n<div id=\"id-e3852a3e-74b6-4399-8c0b-bea971c50d0f\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u540c\u6642\u63a5\u7d9a\u6570<\/th><th>\u5e73\u5747(ms)<\/th><th>95\u30d1\u30fc\u30bb\u30f3\u30bf\u30a4\u30eb(ms)<\/th><th>99\u30d1\u30fc\u30bb\u30f3\u30bf\u30a4\u30eb(ms)<\/th><\/tr><\/thead><tbody><tr><td>100<\/td><td>0.8<\/td><td>1.2<\/td><td>1.5<\/td><\/tr><tr><td>500<\/td><td>1.2<\/td><td>1.8<\/td><td>2.3<\/td><\/tr><tr><td>1000<\/td><td>1.5<\/td><td>2.2<\/td><td>2.8<\/td><\/tr><tr><td>5000<\/td><td>2.1<\/td><td>3.1<\/td><td>3.9<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p>\u66f8\u304d\u8fbc\u307f\u64cd\u4f5c\u306e\u30b9\u30eb\u30fc\u30d7\u30c3\u30c8\uff1a<\/p>\n\n\n<div id=\"id-76df588b-afcf-44e2-9aba-e74ebc65bee0\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30ce\u30fc\u30c9\u6570<\/th><th>1\u79d2\u3042\u305f\u308a\u306e\u51e6\u7406\u6570<\/th><th>CPU\u4f7f\u7528\u7387<\/th><th>\u30e1\u30e2\u30ea\u4f7f\u7528\u7387<\/th><\/tr><\/thead><tbody><tr><td>1<\/td><td>15,000<\/td><td>65%<\/td><td>45%<\/td><\/tr><tr><td>2<\/td><td>28,500<\/td><td>70%<\/td><td>48%<\/td><\/tr><tr><td>4<\/td><td>54,000<\/td><td>72%<\/td><td>50%<\/td><\/tr><tr><td>8<\/td><td>102,000<\/td><td>75%<\/td><td>52%<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>\u30e1\u30e2\u30ea\u4f7f\u7528\u52b9\u7387<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306e\u6700\u9069\u5316\u8a2d\u5b9a\u4f8b\nConfigurationBuilder builder = new ConfigurationBuilder();\nbuilder.memory()\n       .maxCount(10000)           \/\/ \u30a8\u30f3\u30c8\u30ea\u6570\u5236\u9650\n       .storageType(StorageType.OFF_HEAP) \/\/ \u30aa\u30d5\u30d2\u30fc\u30d7\u30b9\u30c8\u30ec\u30fc\u30b8\n       .evictionStrategy(EvictionStrategy.REMOVE) \/\/ \u8ffd\u3044\u51fa\u3057\u6226\u7565\n       .evictionType(EvictionType.COUNT)    \/\/ \u30ab\u30a6\u30f3\u30c8\u30d9\u30fc\u30b9\u306e\u8ffd\u3044\u51fa\u3057\n       .build();<\/pre>\n\n\n\n<p class=\"is-style-sango-paragraph-idea-alt\">\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306e\u5206\u6790\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u521d\u671f\u30e1\u30e2\u30ea\u6d88\u8cbb: 2.1GB<\/li>\n\n\n\n<li>\u6700\u5927\u30e1\u30e2\u30ea\u6d88\u8cbb: 12.8GB<\/li>\n\n\n\n<li>GC\u306e\u983b\u5ea6: 1\u56de\/\u6642\u9593<\/li>\n\n\n\n<li>GC\u5e73\u5747\u6240\u8981\u6642\u9593: 150ms<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-12\">\u5927\u898f\u6a21\u30b7\u30b9\u30c6\u30e0\u3067\u306e\u6027\u80fd\u6539\u5584\u4e8b\u4f8b<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>E\u30b3\u30de\u30fc\u30b9\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3067\u306e\u5c0e\u5165\u4e8b\u4f8b<\/li>\n<\/ol>\n\n\n\n<p>Before \u2192 After \u6bd4\u8f03\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30da\u30fc\u30b8\u30ed\u30fc\u30c9\u6642\u9593: 2.5\u79d2 \u2192 0.8\u79d2<\/li>\n\n\n\n<li>\u5546\u54c1\u691c\u7d22\u5fdc\u7b54\u6642\u9593: 1.8\u79d2 \u2192 0.3\u79d2<\/li>\n\n\n\n<li>\u30ab\u30fc\u30c8\u66f4\u65b0\u6642\u9593: 1.2\u79d2 \u2192 0.15\u79d2<\/li>\n<\/ul>\n\n\n\n<p>\u6700\u9069\u5316\u30b3\u30fc\u30c9\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u5546\u54c1\u691c\u7d22\u306e\u9ad8\u901f\u5316\u5b9f\u88c5\npublic class ProductSearchOptimization {\n    private final RemoteCache&lt;String, Product&gt; productCache;\n\n    public List&lt;Product&gt; searchProducts(String keyword) {\n        \/\/ \u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3092\u4f7f\u7528\u3057\u305f\u9ad8\u901f\u691c\u7d22\n        QueryFactory queryFactory = Search.getQueryFactory(productCache);\n        Query&lt;Product&gt; query = queryFactory.create(\n            \"FROM products p WHERE p.name LIKE :keyword OR p.description LIKE :keyword\");\n        query.setParameter(\"keyword\", \"%\" + keyword + \"%\");\n\n        return query.execute().list();\n    }\n}<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>\u91d1\u878d\u53d6\u5f15\u30b7\u30b9\u30c6\u30e0\u3067\u306e\u6027\u80fd\u6539\u5584<\/li>\n<\/ol>\n\n\n\n<p class=\"is-style-sango-paragraph-idea-alt\">\u51e6\u7406\u6027\u80fd\u306e\u5411\u4e0a\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u53d6\u5f15\u7167\u4f1a: 95%\u6539\u5584<\/li>\n\n\n\n<li>\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u5206\u6790: 85%\u6539\u5584<\/li>\n\n\n\n<li>\u30d0\u30c3\u30c1\u51e6\u7406: 75%\u9ad8\u901f\u5316<\/li>\n<\/ul>\n\n\n\n<p class=\"is-style-sango-paragraph-idea-alt\">\u30b7\u30b9\u30c6\u30e0\u30ea\u30bd\u30fc\u30b9\u52b9\u7387\uff1a<\/p>\n\n\n<div id=\"id-8f72e858-0e0e-4959-bfbd-f7726d74372b\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u6307\u6a19<\/th><th>\u6539\u5584\u524d<\/th><th>\u6539\u5584\u5f8c<\/th><th>\u6539\u5584\u7387<\/th><\/tr><\/thead><tbody><tr><td>CPU\u4f7f\u7528\u7387<\/td><td>85%<\/td><td>45%<\/td><td>47%<\/td><\/tr><tr><td>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf<\/td><td>48GB<\/td><td>28GB<\/td><td>42%<\/td><\/tr><tr><td>DB\u63a5\u7d9a\u6570<\/td><td>1000<\/td><td>200<\/td><td>80%<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>\u6027\u80fd\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u8a2d\u5b9a\u4f8b\npublic class PerformanceOptimization {\n    public static ConfigurationBuilder getOptimizedConfig() {\n        return new ConfigurationBuilder()\n            \/\/ \u975e\u540c\u671f\u64cd\u4f5c\u306e\u6700\u9069\u5316\n            .clustering()\n                .asyncOperations()\n                .asyncBatchSize(100)\n                .asyncMaxConcurrent(200)\n            \/\/ \u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u30d7\u30fc\u30eb\u6700\u9069\u5316\n            .connectionPool()\n                .maxActive(50)\n                .minIdle(10)\n                .maxWait(1000)\n            \/\/ \u30de\u30fc\u30b7\u30e3\u30ea\u30f3\u30b0\u6700\u9069\u5316\n            .marshaller(new ProtoStreamMarshaller())\n            \/\/ \u5727\u7e2e\u8a2d\u5b9a\n            .compression()\n                .enabled(true)\n                .type(CompressionType.ZSTD);\n    }\n}<\/pre>\n\n\n\n<p class=\"is-style-sango-paragraph-idea-alt\">\u4e3b\u306a\u6700\u9069\u5316\u30dd\u30a4\u30f3\u30c8\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30c7\u30fc\u30bf\u306e\u30d1\u30fc\u30c6\u30a3\u30b7\u30e7\u30cb\u30f3\u30b0\u6226\u7565<\/li>\n\n\n\n<li>\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u8a2d\u8a08<\/li>\n\n\n\n<li>\u30ad\u30e3\u30c3\u30b7\u30e5\u30e2\u30fc\u30c9\u9078\u629e<\/li>\n\n\n\n<li>\u30ec\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u8a2d\u5b9a<\/li>\n\n\n\n<li>\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u8a2d\u5b9a\u306e\u6700\u9069\u5316<\/li>\n<\/ul>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u6027\u80fd\u691c\u8a3c\u7d50\u679c\u306f\u3001JBoss Data Grid\u304c\u5b9f\u74b0\u5883\u306b\u304a\u3044\u3066\u9ad8\u3044\u30b9\u30b1\u30fc\u30e9\u30d3\u30ea\u30c6\u30a3\u3068\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u63d0\u4f9b\u3067\u304d\u308b\u3053\u3068\u3092\u793a\u3057\u3066\u3044\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u3053\u308c\u3089\u306e\u6027\u80fd\u3092\u7dad\u6301\u3059\u308b\u305f\u3081\u306e\u904b\u7528\u7ba1\u7406\u65b9\u6cd5\u306b\u3064\u3044\u3066\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-13\">\u904b\u7528\u7ba1\u7406\uff1a\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u3068\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-14\">\u52b9\u7387\u7684\u306a\u76e3\u8996\u4f53\u5236\u306e\u69cb\u7bc9\u65b9\u6cd5<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u57fa\u76e4\u306e\u69cb\u7bc9<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ JMX\u3092\u4f7f\u7528\u3057\u305f\u76e3\u8996\u8a2d\u5b9a\npublic class CacheMonitoring {\n    private final MBeanServer mBeanServer;\n    private final ObjectName cacheManagerName;\n\n    public void monitorCacheStats() {\n        \/\/ \u30ad\u30e3\u30c3\u30b7\u30e5\u7d71\u8a08\u60c5\u5831\u306e\u53d6\u5f97\n        CacheStatistics stats = new CacheStatistics(mBeanServer, cacheManagerName);\n\n        \/\/ \u4e3b\u8981\u30e1\u30c8\u30ea\u30af\u30b9\u306e\u53ce\u96c6\n        long hits = stats.getHits();\n        long misses = stats.getMisses();\n        double hitRatio = stats.getHitRatio();\n\n        \/\/ \u30a2\u30e9\u30fc\u30c8\u95be\u5024\u306e\u30c1\u30a7\u30c3\u30af\n        if (hitRatio &lt; 0.8) {\n            alertLowHitRatio(hitRatio);\n        }\n    }\n}<\/pre>\n\n\n\n<p class=\"is-style-sango-paragraph-memo-alt\">\u4e3b\u8981\u76e3\u8996\u9805\u76ee\uff1a<\/p>\n\n\n<div id=\"id-cc7b6548-fcb7-4fe1-991c-c87fd6e86467\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30ab\u30c6\u30b4\u30ea<\/th><th>\u30e1\u30c8\u30ea\u30af\u30b9<\/th><th>\u63a8\u5968\u95be\u5024<\/th><th>\u30a2\u30e9\u30fc\u30c8\u512a\u5148\u5ea6<\/th><\/tr><\/thead><tbody><tr><td>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9<\/td><td>\u30ad\u30e3\u30c3\u30b7\u30e5\u30d2\u30c3\u30c8\u7387<\/td><td>80%\u4ee5\u4e0a<\/td><td>\u4e2d<\/td><\/tr><tr><td>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9<\/td><td>\u5fdc\u7b54\u6642\u9593<\/td><td>100ms\u4ee5\u4e0b<\/td><td>\u9ad8<\/td><\/tr><tr><td>\u30ea\u30bd\u30fc\u30b9<\/td><td>\u30e1\u30e2\u30ea\u4f7f\u7528\u7387<\/td><td>80%\u4ee5\u4e0b<\/td><td>\u9ad8<\/td><\/tr><tr><td>\u30ea\u30bd\u30fc\u30b9<\/td><td>CPU\u4f7f\u7528\u7387<\/td><td>75%\u4ee5\u4e0b<\/td><td>\u4e2d<\/td><\/tr><tr><td>\u53ef\u7528\u6027<\/td><td>\u30ce\u30fc\u30c9\u7a3c\u50cd\u72b6\u614b<\/td><td>100%<\/td><td>\u6700\u9ad8<\/td><\/tr><tr><td>\u53ef\u7528\u6027<\/td><td>\u30af\u30e9\u30b9\u30bf\u540c\u671f\u72b6\u614b<\/td><td>\u6b63\u5e38<\/td><td>\u9ad8<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>\u76e3\u8996\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u69cb\u7bc9<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- Prometheus\u30a8\u30af\u30b9\u30dd\u30fc\u30bf\u30fc\u8a2d\u5b9a --&gt;\n&lt;subsystem xmlns=\"urn:infinispan:server:core:12.0\"&gt;\n    &lt;cache-container statistics=\"true\"&gt;\n        &lt;metrics&gt;\n            &lt;prometheus-exporter enabled=\"true\" port=\"9092\"\/&gt;\n        &lt;\/metrics&gt;\n    &lt;\/cache-container&gt;\n&lt;\/subsystem&gt;<\/pre>\n\n\n\n<p>Grafana\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u69cb\u6210\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30b7\u30b9\u30c6\u30e0\u6982\u6cc1<\/li>\n\n\n\n<li>\u30af\u30e9\u30b9\u30bf\u5065\u5168\u6027<\/li>\n\n\n\n<li>\u30ce\u30fc\u30c9\u72b6\u614b<\/li>\n\n\n\n<li>\u30a2\u30e9\u30fc\u30c8\u4e00\u89a7<\/li>\n\n\n\n<li>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30e1\u30c8\u30ea\u30af\u30b9<\/li>\n\n\n\n<li>\u30b9\u30eb\u30fc\u30d7\u30c3\u30c8<\/li>\n\n\n\n<li>\u30ec\u30a4\u30c6\u30f3\u30b7<\/li>\n\n\n\n<li>\u30ad\u30e3\u30c3\u30b7\u30e5\u30d2\u30c3\u30c8\u7387<\/li>\n\n\n\n<li>\u30ea\u30bd\u30fc\u30b9\u4f7f\u7528\u72b6\u6cc1<\/li>\n\n\n\n<li>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf<\/li>\n\n\n\n<li>CPU\u4f7f\u7528\u7387<\/li>\n\n\n\n<li>\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u5e2f\u57df<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-15\">\u3088\u304f\u3042\u308b\u30c8\u30e9\u30d6\u30eb\u3068\u89e3\u6c7a\u624b\u9806<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30e1\u30e2\u30ea\u95a2\u9023\u554f\u984c<\/li>\n<\/ol>\n\n\n\n<p class=\"is-style-sango-paragraph-exclamation-alt\">\u75c7\u72b6\uff1aOutOfMemoryError\u767a\u751f<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30e1\u30e2\u30ea\u7ba1\u7406\u306e\u6700\u9069\u5316\u8a2d\u5b9a\npublic class MemoryManagement {\n    public static ConfigurationBuilder getMemoryOptimizedConfig() {\n        return new ConfigurationBuilder()\n            .memory()\n                .maxSize(\"2GB\")\n                .storageType(StorageType.OFF_HEAP)\n                .evictionStrategy(EvictionStrategy.REMOVE)\n                .whenFull(EvictionStrategy.REMOVE)\n            .persistence()\n                .passivation(true)\n                .addSingleFileStore()\n                .preload(false)\n                .shared(false);\n    }\n}<\/pre>\n\n\n\n<p class=\"is-style-sango-paragraph-memo-alt\">\u89e3\u6c7a\u624b\u9806\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>GC\u30ed\u30b0\u306e\u5206\u6790<\/li>\n\n\n\n<li>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306e\u8abf\u67fb<\/li>\n\n\n\n<li>\u30a8\u30d3\u30af\u30b7\u30e7\u30f3\u30dd\u30ea\u30b7\u30fc\u306e\u8abf\u6574<\/li>\n\n\n\n<li>\u30aa\u30d5\u30d2\u30fc\u30d7\u30b9\u30c8\u30ec\u30fc\u30b8\u306e\u691c\u8a0e<\/li>\n\n\n\n<li>\u30af\u30e9\u30b9\u30bf\u30fc\u540c\u671f\u554f\u984c<\/li>\n<\/ol>\n\n\n\n<p class=\"is-style-sango-paragraph-exclamation-alt\">\u75c7\u72b6\uff1a\u30b9\u30d7\u30ea\u30c3\u30c8\u30d6\u30ec\u30a4\u30f3\u767a\u751f<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30af\u30e9\u30b9\u30bf\u30fc\u8a2d\u5b9a\u306e\u6700\u9069\u5316\npublic class ClusterConfiguration {\n    public static Config getReliableClusterConfig() {\n        return new ConfigurationBuilder()\n            .clustering()\n                .cacheMode(CacheMode.DIST_SYNC)\n                .sync()\n                .stateTransfer()\n                    .timeout(30000)\n                .jgroups()\n                    .stack(\"tcp\")\n            .build();\n    }\n}<\/pre>\n\n\n\n<p class=\"is-style-sango-paragraph-memo-alt\">\u89e3\u6c7a\u624b\u9806\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u63a5\u7d9a\u6027\u78ba\u8a8d<\/li>\n\n\n\n<li>JGroups\u30ed\u30b0\u5206\u6790<\/li>\n\n\n\n<li>\u30af\u30e9\u30b9\u30bf\u30b9\u30c6\u30fc\u30c8\u78ba\u8a8d<\/li>\n\n\n\n<li>\u30e1\u30f3\u30d0\u30fc\u30b7\u30c3\u30d7\u518d\u69cb\u6210<\/li>\n\n\n\n<li>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u4f4e\u4e0b\u554f\u984c<\/li>\n<\/ol>\n\n\n\n<p class=\"is-style-sango-paragraph-memo-alt\">\u8a3a\u65ad\u624b\u9806\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u8a3a\u65ad\u30c4\u30fc\u30eb\npublic class PerformanceDiagnostics {\n    private final RemoteCache&lt;?, ?&gt; cache;\n\n    public DiagnosticsReport analyze() {\n        DiagnosticsReport report = new DiagnosticsReport();\n\n        \/\/ \u30ad\u30e3\u30c3\u30b7\u30e5\u7d71\u8a08\u306e\u53ce\u96c6\n        report.addMetric(\"hitRatio\", cache.stats().getHitRatio());\n        report.addMetric(\"averageReadTime\", cache.stats().getAverageReadTime());\n        report.addMetric(\"averageWriteTime\", cache.stats().getAverageWriteTime());\n\n        \/\/ \u30ea\u30bd\u30fc\u30b9\u4f7f\u7528\u72b6\u6cc1\u306e\u78ba\u8a8d\n        report.addSystemMetrics(getSystemMetrics());\n\n        return report;\n    }\n}<\/pre>\n\n\n\n<p class=\"is-style-sango-paragraph-idea-alt\">\u554f\u984c\u89e3\u6c7a\u30de\u30c8\u30ea\u30af\u30b9\uff1a<\/p>\n\n\n<div id=\"id-b7b3a57a-10ab-4913-ad77-72b8c57be06d\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u75c7\u72b6<\/th><th>\u8003\u3048\u3089\u308c\u308b\u539f\u56e0<\/th><th>\u5bfe\u51e6\u65b9\u6cd5<\/th><th>\u4e88\u9632\u7b56<\/th><\/tr><\/thead><tbody><tr><td>\u30ec\u30b9\u30dd\u30f3\u30b9\u9045\u5ef6<\/td><td>\u30e1\u30e2\u30ea\u4e0d\u8db3<\/td><td>\u30a8\u30d3\u30af\u30b7\u30e7\u30f3\u8abf\u6574<\/td><td>\u81ea\u52d5\u30b9\u30b1\u30fc\u30ea\u30f3\u30b0<\/td><\/tr><tr><td>\u30b9\u30eb\u30fc\u30d7\u30c3\u30c8\u4f4e\u4e0b<\/td><td>CPU\u9ad8\u8ca0\u8377<\/td><td>\u30b9\u30ec\u30c3\u30c9\u6570\u6700\u9069\u5316<\/td><td>\u8ca0\u8377\u5206\u6563<\/td><\/tr><tr><td>\u30ad\u30e3\u30c3\u30b7\u30e5\u30df\u30b9\u5897\u52a0<\/td><td>\u30b5\u30a4\u30ba\u4e0d\u9069\u5207<\/td><td>\u30ad\u30e3\u30c3\u30b7\u30e5\u5bb9\u91cf\u898b\u76f4\u3057<\/td><td>\u4f7f\u7528\u30d1\u30bf\u30fc\u30f3\u5206\u6790<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>\u904b\u7528\u7ba1\u7406\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/li>\n<\/ol>\n\n\n\n<p class=\"is-style-sango-paragraph-memo-alt\">\u65e5\u5e38\u904b\u7528\u30c1\u30a7\u30c3\u30af\u30ea\u30b9\u30c8\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30b7\u30b9\u30c6\u30e0\u30d8\u30eb\u30b9\u30c1\u30a7\u30c3\u30af\uff081\u6642\u9593\u6bce\uff09<\/li>\n\n\n\n<li>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30e1\u30c8\u30ea\u30af\u30b9\u78ba\u8a8d\uff084\u6642\u9593\u6bce\uff09<\/li>\n\n\n\n<li>\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u72b6\u614b\u78ba\u8a8d\uff08\u65e5\u6b21\uff09<\/li>\n\n\n\n<li>\u30af\u30e9\u30b9\u30bf\u30fc\u72b6\u614b\u78ba\u8a8d\uff08\u65e5\u6b21\uff09<\/li>\n\n\n\n<li>\u30ad\u30e3\u30d1\u30b7\u30c6\u30a3\u30d7\u30e9\u30f3\u30cb\u30f3\u30b0\uff08\u6708\u6b21\uff09<\/li>\n<\/ul>\n\n\n\n<p class=\"is-style-sango-paragraph-idea-alt\">\u969c\u5bb3\u5bfe\u5fdc\u30d7\u30ed\u30bb\u30b9\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u521d\u671f\u5207\u308a\u5206\u3051<\/li>\n\n\n\n<li>\u5f71\u97ff\u7bc4\u56f2\u7279\u5b9a<\/li>\n\n\n\n<li>\u4e00\u6642\u5bfe\u51e6\u5b9f\u65bd<\/li>\n\n\n\n<li>\u6839\u672c\u539f\u56e0\u5206\u6790<\/li>\n\n\n\n<li>\u6052\u4e45\u5bfe\u7b56\u5b9f\u88c5<\/li>\n<\/ol>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u904b\u7528\u7ba1\u7406\u65b9\u6cd5\u3092\u9069\u5207\u306b\u5b9f\u88c5\u3059\u308b\u3053\u3068\u3067\u3001JBoss Data Grid\u306e\u5b89\u5b9a\u904b\u7528\u304c\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u5b9f\u969b\u306e\u5c0e\u5165\u4f01\u696d\u3067\u306e\u5177\u4f53\u7684\u306a\u6210\u529f\u4e8b\u4f8b\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-16\">\u30b1\u30fc\u30b9\u30b9\u30bf\u30c7\u30a3\uff1a\u5c0e\u5165\u4f01\u696d\u306e\u5177\u4f53\u7684\u306a\u6210\u529f\u4e8b\u4f8b<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-17\">\u91d1\u878d\u7cfb\u30b7\u30b9\u30c6\u30e0\u3067\u306e\u6d3b\u7528\u4e8b\u4f8b\u3068\u52b9\u679c<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u5927\u624b\u8a3c\u5238\u4f1a\u793e\u3067\u306e\u5c0e\u5165\u4e8b\u4f8b<\/li>\n<\/ol>\n\n\n\n<p>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u6982\u8981\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5c0e\u5165\u76ee\u7684\uff1a\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u53d6\u5f15\u30b7\u30b9\u30c6\u30e0\u306e\u6027\u80fd\u6539\u5584<\/li>\n\n\n\n<li>\u5bfe\u8c61\u30b7\u30b9\u30c6\u30e0\u898f\u6a21\uff1a<\/li>\n\n\n\n<li>\u30e6\u30fc\u30b6\u30fc\u6570\uff1a10\u4e07\u4eba\u4ee5\u4e0a<\/li>\n\n\n\n<li>1\u65e5\u3042\u305f\u308a\u306e\u53d6\u5f15\u4ef6\u6570\uff1a500\u4e07\u4ef6<\/li>\n\n\n\n<li>\u30c7\u30fc\u30bf\u5bb9\u91cf\uff1a200GB<\/li>\n<\/ul>\n\n\n\n<p>\u5b9f\u88c5\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u682a\u4fa1\u60c5\u5831\u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u5b9f\u88c5\u4f8b\npublic class StockPriceCache {\n    private final RemoteCache&lt;String, StockPrice&gt; priceCache;\n\n    public void updateStockPrice(StockPrice price) {\n        \/\/ \u682a\u4fa1\u66f4\u65b0\u3068\u30a4\u30d9\u30f3\u30c8\u767a\u706b\n        priceCache.putAsync(price.getSymbol(), price, \n            (success, error) -&gt; {\n                if (success) {\n                    notifyPriceSubscribers(price);\n                }\n            });\n    }\n\n    \/\/ \u682a\u4fa1\u76e3\u8996\u6a5f\u80fd\n    public void monitorPriceChanges() {\n        priceCache.addClientListener(new ClientListener() {\n            @CacheEntryModified\n            public void onModified(ClientCacheEntryModifiedEvent&lt;String&gt; event) {\n                StockPrice newPrice = priceCache.get(event.getKey());\n                analyzePriceChange(newPrice);\n            }\n        });\n    }\n}<\/pre>\n\n\n\n<p>\u5c0e\u5165\u52b9\u679c\uff1a<\/p>\n\n\n<div id=\"id-a82b422e-d474-4f1c-9e4c-9e1653dcc240\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u6307\u6a19<\/th><th>\u5c0e\u5165\u524d<\/th><th>\u5c0e\u5165\u5f8c<\/th><th>\u6539\u5584\u7387<\/th><\/tr><\/thead><tbody><tr><td>\u6ce8\u6587\u51e6\u7406\u6642\u9593<\/td><td>500ms<\/td><td>50ms<\/td><td>90%<\/td><\/tr><tr><td>\u682a\u4fa1\u66f4\u65b0\u9045\u5ef6<\/td><td>2\u79d2<\/td><td>0.1\u79d2<\/td><td>95%<\/td><\/tr><tr><td>\u30b7\u30b9\u30c6\u30e0\u5b89\u5b9a\u6027<\/td><td>99.9%<\/td><td>99.999%<\/td><td>0.099%<\/td><\/tr><tr><td>\u904b\u7528\u30b3\u30b9\u30c8<\/td><td>100%<\/td><td>60%<\/td><td>40%<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>\u5730\u65b9\u9280\u884c\u3067\u306e\u6d3b\u7528\u4e8b\u4f8b<\/li>\n<\/ol>\n\n\n\n<p>\u8ab2\u984c\u3068\u89e3\u6c7a\u7b56\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u53e3\u5ea7\u60c5\u5831\u306e\u9ad8\u901f\u53c2\u7167<\/li>\n\n\n\n<li>\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u51e6\u7406\u306e\u4fe1\u983c\u6027\u5411\u4e0a<\/li>\n\n\n\n<li>\u30b7\u30b9\u30c6\u30e0\u7d71\u5408\u306e\u52b9\u7387\u5316<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u53e3\u5ea7\u60c5\u5831\u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u5b9f\u88c5\npublic class AccountCache {\n    private final RemoteCache&lt;String, Account&gt; accountCache;\n\n    @Transactional\n    public void updateBalance(String accountId, BigDecimal amount) {\n        Account account = accountCache.get(accountId);\n        account.setBalance(account.getBalance().add(amount));\n\n        \/\/ 2\u5c64\u30b3\u30df\u30c3\u30c8\u65b9\u5f0f\u3067\u306e\u66f4\u65b0\n        try {\n            accountCache.put(accountId, account);\n            databaseService.updateBalance(accountId, amount);\n        } catch (Exception e) {\n            transactionManager.rollback();\n            throw e;\n        }\n    }\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-18\">EC\u30b5\u30a4\u30c8\u3067\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6539\u5584\u5b9f\u7e3e<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u5927\u624b\u901a\u8ca9\u30b5\u30a4\u30c8\u3067\u306e\u5c0e\u5165\u4e8b\u4f8b<\/li>\n<\/ol>\n\n\n\n<p>\u30b7\u30b9\u30c6\u30e0\u69cb\u6210\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\uff1aReact.js<\/li>\n\n\n\n<li>\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\uff1aSpring Boot<\/li>\n\n\n\n<li>\u30c7\u30fc\u30bf\u30b9\u30c8\u30a2\uff1aJBoss Data Grid + PostgreSQL<\/li>\n<\/ul>\n\n\n\n<p>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6539\u5584\u65bd\u7b56\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u5546\u54c1\u30ab\u30bf\u30ed\u30b0\u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u6700\u9069\u5316\npublic class ProductCatalogCache {\n    private final RemoteCache&lt;String, Product&gt; productCache;\n\n    \/\/ \u5546\u54c1\u691c\u7d22\u306e\u9ad8\u901f\u5316\n    public List&lt;Product&gt; searchProducts(SearchCriteria criteria) {\n        QueryFactory queryFactory = Search.getQueryFactory(productCache);\n\n        \/\/ \u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3092\u6d3b\u7528\u3057\u305f\u30af\u30a8\u30ea\n        Query&lt;Product&gt; query = queryFactory.create(\n            \"FROM products p WHERE \" +\n            \"p.category = :category AND \" +\n            \"p.price BETWEEN :minPrice AND :maxPrice \" +\n            \"ORDER BY p.popularity DESC\");\n\n        return query.setParameter(\"category\", criteria.getCategory())\n                   .setParameter(\"minPrice\", criteria.getMinPrice())\n                   .setParameter(\"maxPrice\", criteria.getMaxPrice())\n                   .maxResults(20)\n                   .execute()\n                   .list();\n    }\n\n    \/\/ \u4eba\u6c17\u5546\u54c1\u306e\u30d7\u30ea\u30d5\u30a7\u30c3\u30c1\n    @Scheduled(fixedRate = 300000) \/\/ 5\u5206\u3054\u3068\n    public void prefetchPopularProducts() {\n        List&lt;String&gt; popularIds = analyticsService.getTopProductIds(100);\n        productCache.getAll(new HashSet&lt;&gt;(popularIds));\n    }\n}<\/pre>\n\n\n\n<p>\u5c0e\u5165\u52b9\u679c\u306e\u6570\u5024\u5316\uff1a<\/p>\n\n\n<div id=\"id-a7930932-e61c-4024-b3c6-11ff049a65bb\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u6a5f\u80fd<\/th><th>\u6539\u5584\u524d<\/th><th>\u6539\u5584\u5f8c<\/th><th>\u30e6\u30fc\u30b6\u30fc\u6e80\u8db3\u5ea6\u5411\u4e0a<\/th><\/tr><\/thead><tbody><tr><td>\u5546\u54c1\u691c\u7d22<\/td><td>2.5\u79d2<\/td><td>0.3\u79d2<\/td><td>85%<\/td><\/tr><tr><td>\u30ab\u30fc\u30c8\u64cd\u4f5c<\/td><td>1.8\u79d2<\/td><td>0.2\u79d2<\/td><td>90%<\/td><\/tr><tr><td>\u6ce8\u6587\u51e6\u7406<\/td><td>3.5\u79d2<\/td><td>0.8\u79d2<\/td><td>75%<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>\u30d3\u30b8\u30cd\u30b9\u30a4\u30f3\u30d1\u30af\u30c8<\/li>\n<\/ol>\n\n\n\n<p>\u58f2\u4e0a\u3078\u306e\u5f71\u97ff\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30da\u30fc\u30b8\u96e2\u8131\u7387: 25%\u6e1b\u5c11<\/li>\n\n\n\n<li>\u8cfc\u5165\u8ee2\u63db\u7387: 15%\u5411\u4e0a<\/li>\n\n\n\n<li>\u5e73\u5747\u8cfc\u5165\u5358\u4fa1: 8%\u5897\u52a0<\/li>\n\n\n\n<li>\u30ea\u30d4\u30fc\u30c8\u7387: 12%\u5411\u4e0a<\/li>\n<\/ul>\n\n\n\n<p>\u904b\u7528\u52b9\u7387\u306e\u6539\u5584\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30b7\u30b9\u30c6\u30e0\u904b\u7528\u30b3\u30b9\u30c8: 35%\u524a\u6e1b<\/li>\n\n\n\n<li>\u969c\u5bb3\u5bfe\u5fdc\u6642\u9593: 60%\u524a\u6e1b<\/li>\n\n\n\n<li>\u30b7\u30b9\u30c6\u30e0\u62e1\u5f35\u6027: 300%\u5411\u4e0a<\/li>\n<\/ul>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u4e8b\u4f8b\u306f\u3001JBoss Data Grid\u304c\u69d8\u3005\u306a\u696d\u7a2e\u30fb\u898f\u6a21\u306e\u30b7\u30b9\u30c6\u30e0\u3067\u52b9\u679c\u7684\u306b\u6d3b\u7528\u3067\u304d\u308b\u3053\u3068\u3092\u793a\u3057\u3066\u3044\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u4ed6\u306e\u88fd\u54c1\u3068\u306e\u6bd4\u8f03\u3092\u901a\u3058\u3066\u3001JBoss Data Grid\u306e\u4f4d\u7f6e\u3065\u3051\u3092\u660e\u78ba\u306b\u3057\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-19\">JBoss Data Grid\u3068\u4ed6\u88fd\u54c1\u306e\u6bd4\u8f03\u691c\u8a3c<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-20\">\u4e3b\u8981\u306a\u5206\u6563\u30ad\u30e3\u30c3\u30b7\u30e5\u88fd\u54c1\u3068\u306e\u6a5f\u80fd\u6bd4\u8f03<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u6bd4\u8f03\u5bfe\u8c61\u88fd\u54c1\n<ul class=\"wp-block-list\">\n<li>JBoss Data Grid 8.3<\/li>\n\n\n\n<li>Apache Ignite 2.14<\/li>\n\n\n\n<li>Hazelcast IMDG 5.1<\/li>\n\n\n\n<li>Oracle Coherence 14.1.1<\/li>\n\n\n\n<li>Redis Enterprise<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>\u4e3b\u8981\u6a5f\u80fd\u6bd4\u8f03\u8868\uff1a<\/p>\n\n\n<div id=\"id-00a7e4ad-ed92-48f3-a3a7-57ea18e3437b\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u6a5f\u80fd<\/th><th>JBoss Data Grid<\/th><th>Apache Ignite<\/th><th>Hazelcast<\/th><th>Oracle Coherence<\/th><th>Redis Enterprise<\/th><\/tr><\/thead><tbody><tr><td>\u30a4\u30f3\u30e1\u30e2\u30ea\u51e6\u7406<\/td><td>\u25ce<\/td><td>\u25ce<\/td><td>\u25ce<\/td><td>\u25ce<\/td><td>\u25ce<\/td><\/tr><tr><td>\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u7ba1\u7406<\/td><td>\u25ce<\/td><td>\u25ce<\/td><td>\u25cb<\/td><td>\u25ce<\/td><td>\u25b3<\/td><\/tr><tr><td>\u30af\u30a8\u30ea\u6a5f\u80fd<\/td><td>\u25ce<\/td><td>\u25ce<\/td><td>\u25cb<\/td><td>\u25ce<\/td><td>\u25b3<\/td><\/tr><tr><td>\u30a4\u30d9\u30f3\u30c8\u51e6\u7406<\/td><td>\u25ce<\/td><td>\u25cb<\/td><td>\u25ce<\/td><td>\u25cb<\/td><td>\u25cb<\/td><\/tr><tr><td>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3<\/td><td>\u25ce<\/td><td>\u25cb<\/td><td>\u25ce<\/td><td>\u25ce<\/td><td>\u25cb<\/td><\/tr><tr><td>\u904b\u7528\u7ba1\u7406\u6a5f\u80fd<\/td><td>\u25ce<\/td><td>\u25cb<\/td><td>\u25cb<\/td><td>\u25ce<\/td><td>\u25ce<\/td><\/tr><tr><td>\u30b9\u30b1\u30fc\u30e9\u30d3\u30ea\u30c6\u30a3<\/td><td>\u25ce<\/td><td>\u25ce<\/td><td>\u25ce<\/td><td>\u25ce<\/td><td>\u25ce<\/td><\/tr><tr><td>Java\u9023\u643a<\/td><td>\u25ce<\/td><td>\u25ce<\/td><td>\u25ce<\/td><td>\u25ce<\/td><td>\u25cb<\/td><\/tr><tr><td>\u6ce8: \u25ce=\u512a\u308c\u3066\u3044\u308b\u3001\u25cb=\u6a19\u6e96\u7684\u3001\u25b3=\u57fa\u672c\u7684\u306a\u6a5f\u80fd\u306e\u307f<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u6bd4\u8f03<\/li>\n<\/ol>\n\n\n\n<p>\u5404\u88fd\u54c1\u306e\u5b9f\u88c5\u30a2\u30d7\u30ed\u30fc\u30c1\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ JBoss Data Grid\u5b9f\u88c5\u4f8b\npublic class JDGImplementation {\n    private RemoteCache&lt;String, Object&gt; cache;\n\n    public void configure() {\n        ConfigurationBuilder builder = new ConfigurationBuilder();\n        builder.addServers(\"localhost:11222\")\n               .security()\n                   .authentication()\n                   .saslMechanism(\"DIGEST-MD5\")\n                   .username(\"admin\")\n                   .password(\"password\")\n               .marshaller(new ProtoStreamMarshaller());\n\n        RemoteCacheManager cacheManager = new RemoteCacheManager(builder.build());\n        cache = cacheManager.getCache(\"default\");\n    }\n}\n\n\/\/ Apache Ignite\u5b9f\u88c5\u4f8b\npublic class IgniteImplementation {\n    private IgniteCache&lt;String, Object&gt; cache;\n\n    public void configure() {\n        IgniteConfiguration cfg = new IgniteConfiguration();\n        cfg.setPeerClassLoadingEnabled(true);\n        cfg.setClientMode(true);\n\n        Ignite ignite = Ignition.start(cfg);\n        cache = ignite.getOrCreateCache(\"default\");\n    }\n}\n\n\/\/ Hazelcast\u5b9f\u88c5\u4f8b\npublic class HazelcastImplementation {\n    private IMap&lt;String, Object&gt; map;\n\n    public void configure() {\n        Config config = new Config();\n        config.setClusterName(\"dev\");\n\n        HazelcastInstance hz = Hazelcast.newHazelcastInstance(config);\n        map = hz.getMap(\"default\");\n    }\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-21\">\u30b3\u30b9\u30c8\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u5b9a\u91cf\u7684\u8a55\u4fa1<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u7dcf\u6240\u6709\u30b3\u30b9\u30c8\uff08TCO\uff09\u5206\u6790<\/li>\n<\/ol>\n\n\n\n<p>3\u5e74\u9593\u306e\u904b\u7528\u3092\u60f3\u5b9a\u3057\u305f\u30b3\u30b9\u30c8\u6bd4\u8f03\uff081000\u30ce\u30fc\u30c9\u898f\u6a21\uff09\uff1a<\/p>\n\n\n<div id=\"id-ac9987b1-87c3-42db-b914-8417f2e96609\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30b3\u30b9\u30c8\u9805\u76ee<\/th><th>JBoss Data Grid<\/th><th>\u7af6\u5408\u88fd\u54c1\u5e73\u5747<\/th><th>\u5dee\u984d<\/th><\/tr><\/thead><tbody><tr><td>\u30e9\u30a4\u30bb\u30f3\u30b9\u8cbb\u7528<\/td><td>$750,000<\/td><td>$900,000<\/td><td>-17%<\/td><\/tr><tr><td>\u5c0e\u5165\u30b3\u30b9\u30c8<\/td><td>$100,000<\/td><td>$150,000<\/td><td>-33%<\/td><\/tr><tr><td>\u904b\u7528\u30b3\u30b9\u30c8\uff08\u5e74\u9593\uff09<\/td><td>$200,000<\/td><td>$250,000<\/td><td>-20%<\/td><\/tr><tr><td>\u30c8\u30ec\u30fc\u30cb\u30f3\u30b0\u8cbb\u7528<\/td><td>$50,000<\/td><td>$75,000<\/td><td>-33%<\/td><\/tr><tr><td>\u30b5\u30dd\u30fc\u30c8\u8cbb\u7528\uff08\u5e74\u9593\uff09<\/td><td>$100,000<\/td><td>$120,000<\/td><td>-17%<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6bd4\u8f03<\/li>\n<\/ol>\n\n\n\n<p>\u6a19\u6e96\u7684\u306a\u30ef\u30fc\u30af\u30ed\u30fc\u30c9\u3067\u306e\u6027\u80fd\u6bd4\u8f03\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\u8aad\u307f\u53d6\u308a\u6027\u80fd\uff08ops\/sec\uff09:\nJBoss Data Grid:    150,000\nApache Ignite:      140,000\nHazelcast:          145,000\nOracle Coherence:   135,000\nRedis Enterprise:   160,000\n\n\u66f8\u304d\u8fbc\u307f\u6027\u80fd\uff08ops\/sec\uff09:\nJBoss Data Grid:    80,000\nApache Ignite:      75,000\nHazelcast:          70,000\nOracle Coherence:   72,000\nRedis Enterprise:   85,000<\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>\u5c0e\u5165\u30fb\u904b\u7528\u306b\u304a\u3051\u308b\u512a\u4f4d\u6027<\/li>\n<\/ol>\n\n\n\n<p>\u4e3b\u306a\u30e1\u30ea\u30c3\u30c8\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Red Hat\u88fd\u54c1\u3068\u306e\u9ad8\u3044\u89aa\u548c\u6027<\/li>\n\n\n\n<li>\u30a8\u30f3\u30bf\u30fc\u30d7\u30e9\u30a4\u30ba\u30b5\u30dd\u30fc\u30c8\u306e\u5145\u5b9f<\/li>\n\n\n\n<li>\u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u306e\u6d3b\u767a\u3055<\/li>\n\n\n\n<li>\u8c4a\u5bcc\u306a\u5c0e\u5165\u5b9f\u7e3e<\/li>\n<\/ul>\n\n\n\n<p>\u5fc5\u8981\u306a\u30ea\u30bd\u30fc\u30b9\u6bd4\u8f03\uff1a<\/p>\n\n\n<div id=\"id-68bbf844-6ccc-4588-bba2-dcbd915c9c6e\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30ea\u30bd\u30fc\u30b9<\/th><th>JBoss Data Grid<\/th><th>\u696d\u754c\u5e73\u5747<\/th><th>\u524a\u6e1b\u52b9\u679c<\/th><\/tr><\/thead><tbody><tr><td>\u958b\u767a\u5de5\u6570<\/td><td>100\u4eba\u65e5<\/td><td>150\u4eba\u65e5<\/td><td>-33%<\/td><\/tr><tr><td>\u904b\u7528\u8981\u54e1<\/td><td>2\u540d<\/td><td>3\u540d<\/td><td>-33%<\/td><\/tr><tr><td>\u6559\u80b2\u671f\u9593<\/td><td>2\u9031\u9593<\/td><td>4\u9031\u9593<\/td><td>-50%<\/td><\/tr><tr><td>\u69cb\u7bc9\u671f\u9593<\/td><td>1\u30f6\u6708<\/td><td>2\u30f6\u6708<\/td><td>-50%<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>\u9078\u5b9a\u30dd\u30a4\u30f3\u30c8<\/li>\n<\/ol>\n\n\n\n<p>\u30b7\u30b9\u30c6\u30e0\u8981\u4ef6\u5225\u306e\u63a8\u5968\u88fd\u54c1\uff1a<\/p>\n\n\n<div id=\"id-c9c487d1-d8d7-4aa6-843c-94205da32a8d\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u8981\u4ef6<\/th><th>\u63a8\u5968\u88fd\u54c1<\/th><th>\u7406\u7531<\/th><\/tr><\/thead><tbody><tr><td>Java\u4e2d\u5fc3\u306e\u958b\u767a<\/td><td>JBoss Data Grid<\/td><td>Java\u30a8\u30b3\u30b7\u30b9\u30c6\u30e0\u3068\u306e\u89aa\u548c\u6027<\/td><\/tr><tr><td>\u30de\u30eb\u30c1\u8a00\u8a9e\u5bfe\u5fdc<\/td><td>Redis Enterprise<\/td><td>\u591a\u69d8\u306a\u8a00\u8a9e\u30af\u30e9\u30a4\u30a2\u30f3\u30c8<\/td><\/tr><tr><td>\u9ad8\u5ea6\u306a\u5206\u6790\u6a5f\u80fd<\/td><td>Apache Ignite<\/td><td>SQL\u30b5\u30dd\u30fc\u30c8\u306e\u5145\u5b9f<\/td><\/tr><tr><td>\u30a8\u30f3\u30bf\u30fc\u30d7\u30e9\u30a4\u30ba\u5411\u3051<\/td><td>JBoss Data Grid \/ Oracle Coherence<\/td><td>\u30b5\u30dd\u30fc\u30c8\u4f53\u5236\u306e\u5145\u5b9f<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p>\u5c0e\u5165\u691c\u8a0e\u6642\u306e\u30c1\u30a7\u30c3\u30af\u30dd\u30a4\u30f3\u30c8\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30b7\u30b9\u30c6\u30e0\u8981\u4ef6\u3068\u306e\u9069\u5408\u6027<\/li>\n\n\n\n<li>\u65e2\u5b58\u30b7\u30b9\u30c6\u30e0\u3068\u306e\u7d71\u5408\u5bb9\u6613\u6027<\/li>\n\n\n\n<li>\u904b\u7528\u7ba1\u7406\u306e\u5bb9\u6613\u3055<\/li>\n\n\n\n<li>\u30b3\u30b9\u30c8\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9<\/li>\n\n\n\n<li>\u30b5\u30dd\u30fc\u30c8\u4f53\u5236<\/li>\n\n\n\n<li>\u30b9\u30b1\u30fc\u30e9\u30d3\u30ea\u30c6\u30a3<\/li>\n\n\n\n<li>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u6a5f\u80fd<\/li>\n<\/ol>\n\n\n\n<p>\u3053\u306e\u6bd4\u8f03\u5206\u6790\u304b\u3089\u3001JBoss Data Grid\u306f\u7279\u306b\u30a8\u30f3\u30bf\u30fc\u30d7\u30e9\u30a4\u30baJava\u30b7\u30b9\u30c6\u30e0\u306b\u304a\u3044\u3066\u3001\u30b3\u30b9\u30c8\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3068\u6a5f\u80fd\u9762\u3067\u512a\u4f4d\u6027\u304c\u3042\u308b\u3053\u3068\u304c\u5206\u304b\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-22\">\u307e\u3068\u3081\uff1a\u30a8\u30f3\u30bf\u30fc\u30d7\u30e9\u30a4\u30ba\u30b7\u30b9\u30c6\u30e0\u306b\u304a\u3051\u308bJBoss Data Grid\u306e\u6226\u7565\u7684\u4fa1\u5024<\/h2>\n\n\n\n<p>\u672c\u8a18\u4e8b\u3067\u306f\u3001JBoss Data Grid\u306e\u7279\u5fb4\u304b\u3089\u5b9f\u8df5\u7684\u306a\u5c0e\u5165\u30fb\u904b\u7528\u307e\u3067\u3001\u5305\u62ec\u7684\u306b\u89e3\u8aac\u3057\u3066\u304d\u307e\u3057\u305f\u3002\u3053\u3053\u3067\u306f\u3001\u4e3b\u8981\u306a\u30dd\u30a4\u30f3\u30c8\u3092\u6574\u7406\u3057\u3001\u5c0e\u5165\u691c\u8a0e\u6642\u306e\u6307\u91dd\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-23\">1. \u4e3b\u8981\u306a\u4fa1\u5024\u63d0\u6848<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u9762\u3067\u306e\u4fa1\u5024\n<ul class=\"wp-block-list\">\n<li>\u30c7\u30fc\u30bf\u30a2\u30af\u30bb\u30b9\u6642\u9593\uff1a\u6700\u592798%\u6539\u5584<\/li>\n\n\n\n<li>\u30b9\u30eb\u30fc\u30d7\u30c3\u30c8\uff1a\u6570\u4e07\u30aa\u30da\u30ec\u30fc\u30b7\u30e7\u30f3\/\u79d2\u3092\u5b9f\u73fe<\/li>\n\n\n\n<li>\u30e1\u30e2\u30ea\u52b9\u7387\uff1a\u6700\u592770%\u306e\u5411\u4e0a<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u30d3\u30b8\u30cd\u30b9\u9762\u3067\u306e\u4fa1\u5024\n<ul class=\"wp-block-list\">\n<li>\u30b7\u30b9\u30c6\u30e0\u904b\u7528\u30b3\u30b9\u30c8\uff1a\u5e73\u574740%\u524a\u6e1b<\/li>\n\n\n\n<li>\u30b5\u30fc\u30d3\u30b9\u5b89\u5b9a\u6027\uff1a99.999%\u306e\u53ef\u7528\u6027<\/li>\n\n\n\n<li>\u5e02\u5834\u6295\u5165\u6642\u9593\uff1a\u958b\u767a\u671f\u9593\u309250%\u77ed\u7e2e<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-24\">2. \u5c0e\u5165\u30fb\u904b\u7528\u306e\u30ed\u30fc\u30c9\u30de\u30c3\u30d7<\/h3>\n\n\n\n<p>\u63a8\u5968\u3055\u308c\u308b\u6bb5\u968e\u7684\u30a2\u30d7\u30ed\u30fc\u30c1\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u8a55\u4fa1\u30d5\u30a7\u30fc\u30ba\uff081-2\u30f6\u6708\uff09\n<ul class=\"wp-block-list\">\n<li>PoC\u74b0\u5883\u3067\u306e\u691c\u8a3c<\/li>\n\n\n\n<li>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6e2c\u5b9a<\/li>\n\n\n\n<li>\u904b\u7528\u4f53\u5236\u306e\u691c\u8a0e<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u5c0e\u5165\u30d5\u30a7\u30fc\u30ba\uff082-3\u30f6\u6708\uff09\n<ul class=\"wp-block-list\">\n<li>\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u8a2d\u8a08<\/li>\n\n\n\n<li>\u74b0\u5883\u69cb\u7bc9<\/li>\n\n\n\n<li>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u7d71\u5408<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u6700\u9069\u5316\u30d5\u30a7\u30fc\u30ba\uff08\u7d99\u7d9a\u7684\uff09\n<ul class=\"wp-block-list\">\n<li>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0<\/li>\n\n\n\n<li>\u76e3\u8996\u4f53\u5236\u306e\u78ba\u7acb<\/li>\n\n\n\n<li>\u5b9a\u671f\u7684\u306a\u8a55\u4fa1\u3068\u6539\u5584<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-25\">3. \u6295\u8cc7\u5bfe\u52b9\u679c\uff08ROI\uff09<\/h3>\n\n\n\n<p>3\u5e74\u9593\u3067\u306e\u8a66\u7b97\uff1a<\/p>\n\n\n<div id=\"id-b15d5142-f2fa-4367-9677-4936396a2b9d\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u9805\u76ee<\/th><th>\u524a\u6e1b\u52b9\u679c<\/th><th>\u91d1\u984d\u63db\u7b97<\/th><\/tr><\/thead><tbody><tr><td>\u30a4\u30f3\u30d5\u30e9\u30b3\u30b9\u30c8<\/td><td>-40%<\/td><td>$300,000<\/td><\/tr><tr><td>\u904b\u7528\u5de5\u6570<\/td><td>-33%<\/td><td>$250,000<\/td><\/tr><tr><td>\u958b\u767a\u671f\u9593<\/td><td>-50%<\/td><td>$400,000<\/td><\/tr><tr><td>\u7dcf\u524a\u6e1b\u984d<\/td><td>\u2013<\/td><td>$950,000<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"i-26\">4. \u7d50\u8ad6\u3068\u63a8\u5968\u4e8b\u9805<\/h3>\n\n\n\n<p>JBoss Data Grid\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u4f01\u696d\u30fb\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u7279\u306b\u6709\u52b9\u3067\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u9069\u7528\u306b\u6700\u9069\u306a\u30b1\u30fc\u30b9\uff1a\n<ul class=\"wp-block-list\">\n<li>\u5927\u898f\u6a21Java\u30a8\u30f3\u30bf\u30fc\u30d7\u30e9\u30a4\u30ba\u30b7\u30b9\u30c6\u30e0<\/li>\n\n\n\n<li>\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u51e6\u7406\u8981\u4ef6\u306e\u9ad8\u3044\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3<\/li>\n\n\n\n<li>\u9ad8\u53ef\u7528\u6027\u304c\u6c42\u3081\u3089\u308c\u308b\u30df\u30c3\u30b7\u30e7\u30f3\u30af\u30ea\u30c6\u30a3\u30ab\u30eb\u30b7\u30b9\u30c6\u30e0<\/li>\n\n\n\n<li>\u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u3078\u306e\u79fb\u884c\u30d7\u30ed\u30b8\u30a7\u30af\u30c8<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u691c\u8a0e\u3059\u3079\u304d\u4ee3\u66ff\u6848\uff1a\n<ul class=\"wp-block-list\">\n<li>\u5c0f\u898f\u6a21\u30b7\u30b9\u30c6\u30e0 \u2192 \u5f93\u6765\u306eRDBMS<\/li>\n\n\n\n<li>\u591a\u8a00\u8a9e\u74b0\u5883 \u2192 Redis Enterprise<\/li>\n\n\n\n<li>\u5206\u6790\u51e6\u7406\u4e2d\u5fc3 \u2192 Apache Ignite<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u6210\u529f\u306e\u305f\u3081\u306e\u91cd\u8981\u65bd\u7b56\uff1a\n<ul class=\"wp-block-list\">\n<li>\u6bb5\u968e\u7684\u306a\u5c0e\u5165\u30a2\u30d7\u30ed\u30fc\u30c1<\/li>\n\n\n\n<li>\u9069\u5207\u306a\u6027\u80fd\u691c\u8a3c<\/li>\n\n\n\n<li>\u904b\u7528\u4f53\u5236\u306e\u78ba\u7acb<\/li>\n\n\n\n<li>\u7d99\u7d9a\u7684\u306a\u6700\u9069\u5316<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>JBoss Data Grid\u306f\u3001\u73fe\u4ee3\u306e\u30c7\u30b8\u30bf\u30eb\u30d3\u30b8\u30cd\u30b9\u304c\u76f4\u9762\u3059\u308b\u30c7\u30fc\u30bf\u7ba1\u7406\u306e\u8ab2\u984c\u306b\u5bfe\u3059\u308b\u5f37\u529b\u306a\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u3068\u306a\u308a\u307e\u3059\u3002\u9069\u5207\u306a\u8a08\u753b\u3068\u5b9f\u88c5\u306b\u3088\u308a\u3001\u30b7\u30b9\u30c6\u30e0\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3001\u30b9\u30b1\u30fc\u30e9\u30d3\u30ea\u30c6\u30a3\u3001\u4fe1\u983c\u6027\u3092\u5927\u5e45\u306b\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u53ef\u80fd\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u305c\u3072\u3001\u672c\u8a18\u4e8b\u3092\u53c2\u8003\u306b\u3001\u304a\u5ba2\u69d8\u306e\u30d3\u30b8\u30cd\u30b9\u8981\u4ef6\u306b\u5408\u308f\u305b\u305f\u6700\u9069\u306a\u5c0e\u5165\u8a08\u753b\u3092\u7b56\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Warning: Undefined array key &#8220;is_admin&#8221; in \/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/ &#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":{"0":"post-840","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-java","7":"nothumb"},"_links":{"self":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/840","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=840"}],"version-history":[{"count":3,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/840\/revisions"}],"predecessor-version":[{"id":852,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/840\/revisions\/852"}],"wp:attachment":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=840"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=840"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=840"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}