{"@attributes":{"version":"2.0"},"channel":{"title":"\u95f2\u6563\u5de5\u7a0b\u5e08\u7b14\u8bb0","link":"https:\/\/open-native.com\/","description":"Recent content on \u95f2\u6563\u5de5\u7a0b\u5e08\u7b14\u8bb0","generator":"Hugo -- gohugo.io","language":"zh-cn","lastBuildDate":"Wed, 20 Sep 2023 00:24:55 +0800","item":[{"title":"\u5173\u4e8e\u7c7b\u6301\u6709\u9759\u6001\u53d8\u91cf\u800c\u5f15\u53d1\u7684\u95ee\u9898\u6392\u67e5","link":"https:\/\/open-native.com\/article\/static-property-java\/","pubDate":"Wed, 20 Sep 2023 00:24:55 +0800","guid":"https:\/\/open-native.com\/article\/static-property-java\/","description":"\u95ee\u9898\u63cf\u8ff0 \u95f2\u8bdd\u5c11\u53d9\uff0c\u5148\u4e0a\u4ee3\u7801\u3002\npublic function main() { Util util = new Util(); util.print(); } public class Util { public static provider = new Provider(); public Util() { # do sth } public void print() { # print sth } } public function Provider() { public Provider() { loadData(); } private void loadData() { # load data } } \u5927\u6982\u4f7f\u7528\u903b\u8f91\u662f\u8fd9\u6837\uff0c\u5728\u8c03\u7528\u5165\u53e3\uff0c\u5b9e\u4f8b\u5316Util\u5bf9\u8c61\u5e76\u8c03\u7528\u4ed6\u7684print\u65b9\u6cd5\u3002 \u8fd9\u4e2a\u65f6\u5019\uff0c\u83b7\u53d6\u5230\u4e86\u4e00\u4e2aruntime exception\uff1aclass Util not defined\u3002\n\u7c7b\u660e\u660e\u5c31\u6446\u5728\u90a3\u91cc\uff0c\u4e3a\u4ec0\u4e48\u4f1a\u62a5\u5f02\u5e38\u5462\uff1f \u5927\u5bb6\u5982\u679c\u4e86\u89e3\u4e86\u7c7b\u9759\u6001\u6210\u5458\u53d8\u91cf\u7684\u521d\u59cb\u5316\u8fc7\u7a0b\uff0c\u5c31\u4e00\u773c\u770b\u51fa\u6765\u95ee\u9898\u3002\n\u9996\u5148\uff0cprovider\u662f\u5728Util\u7c7b\u88ab\u52a0\u8f7d\u7684\u65f6\u5019\u521d\u59cb\u5316\u7684\uff0c\u8981\u65e9\u4e8eUtil\u7684\u5b9e\u4f8b\u5316\u3002\n\u5176\u6b21\uff0c\u5982\u679cprovider\u521d\u59cb\u5316\u5931\u8d25\uff0c\u4f1a\u5bfc\u81f4Util\u7c7b\u52a0\u8f7d\u5931\u8d25\uff0c\u5728\u5b9e\u4f8b\u5316\u7684\u65f6\u5019\u5c31\u4f1a\u629b\u5f02\u5e38\u3002\n\u95ee\u9898\u7684\u76f4\u63a5\u539f\u56e0\u662f\u5728Provider\u7684\u6784\u9020\u8fc7\u7a0b\uff0c\u7531\u4e8e\u6784\u9020\u51fd\u6570\u6267\u884c\u4e86loadData\u7684\u52a8\u4f5c\uff0c\u8fd9\u91cc\u5c31\u5b58\u5728\u4e00\u4e9b\u4e0d\u786e\u5b9a\u56e0\u7d20\uff0c\u4f1a\u5bfc\u81f4\u9519\u8bef\u7684\u53d1\u751f\uff0c\u4ece\u800c\u5f71\u54cd\u5230\u4e86Util\u7684\u52a0\u8f7d\u3002\n\u6539\u8fdb\u601d\u8def \u7cbe\u7b80\u7c7b\u521d\u59cb\u5316\u7684\u8fc7\u7a0b\uff0c\u4f18\u5148\u4fdd\u8bc1\u5bf9\u8c61\u80fd\u5b9e\u4f8b\u5316\u6210\u529f\uff0c\u4ece\u800c\u518d\u6267\u884c\u6570\u636e\u52a0\u8f7d\u7684\u903b\u8f91\u3002\u53ef\u4ee5\u5229\u7528Spring\u7684PostConstruct\u6ce8\u89e3\u6765\u5b9e\u73b0\u5b9e\u4f8b\u5316\u548c\u6570\u636e\u52a0\u8f7d\u52a8\u4f5c\u7684\u5206\u79bb\u3002"},{"title":"java\u5305\u88c5\u7c7b\u578b","link":"https:\/\/open-native.com\/java\/box-type\/","pubDate":"Wed, 02 Aug 2023 23:36:26 +0800","guid":"https:\/\/open-native.com\/java\/box-type\/","description":"Java\u5305\u88c5\u7c7b\u578b\uff08\u4e5f\u79f0\u4e3a\u88c5\u7bb1\u7c7b\u578b\uff09\u662f\u4e3a\u4e86\u89e3\u51b3\u57fa\u672c\u6570\u636e\u7c7b\u578b\u4e0d\u80fd\u76f4\u63a5\u53c2\u4e0e\u9762\u5411\u5bf9\u8c61\u7684\u7279\u6027\uff0c\u4f8b\u5982\u4f7f\u7528\u6cdb\u578b\u3001\u96c6\u5408\u7b49\u3002\u7136\u800c\uff0c\u7531\u4e8e\u88c5\u7bb1\u7c7b\u578b\u5728\u5e95\u5c42\u662f\u901a\u8fc7\u5bf9\u8c61\u5305\u88c5\u57fa\u672c\u6570\u636e\u7c7b\u578b\uff0c\u56e0\u6b64\u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\u53ef\u80fd\u4f1a\u5bfc\u81f4\u6027\u80fd\u95ee\u9898\uff0c\u5c24\u5176\u662f\u5728\u9891\u7e41\u7684\u88c5\u7bb1\u548c\u62c6\u7bb1\u64cd\u4f5c\u4e2d\u3002\n\u5982\u679c\u5728\u6027\u80fd\u654f\u611f\u7684\u4ee3\u7801\u4e2d\u4f7f\u7528\u5305\u88c5\u7c7b\u578b\uff0c\u53ef\u4ee5\u8003\u8651\u4ee5\u4e0b\u51e0\u79cd\u65b9\u6cd5\u6765\u63d0\u9ad8\u6027\u80fd\uff1a\n\u4f7f\u7528\u57fa\u672c\u6570\u636e\u7c7b\u578b\uff1a\u4f18\u5148\u4f7f\u7528\u57fa\u672c\u6570\u636e\u7c7b\u578b\uff08\u5982int\u3001double\u7b49\uff09\u800c\u4e0d\u662f\u88c5\u7bb1\u7c7b\u578b\uff08\u5982Integer\u3001Double\u7b49\uff09\uff0c\u8fd9\u6837\u53ef\u4ee5\u907f\u514d\u88c5\u7bb1\u548c\u62c6\u7bb1\u64cd\u4f5c\u7684\u5f00\u9500\u3002 \u4f7f\u7528valueOf()\u65b9\u6cd5\uff1a\u5bf9\u4e8e\u88c5\u7bb1\u64cd\u4f5c\uff0c\u53ef\u4ee5\u4f7f\u7528valueOf()\u65b9\u6cd5\u6765\u83b7\u53d6\u5305\u88c5\u5bf9\u8c61\uff0c\u800c\u4e0d\u662f\u4f7f\u7528\u6784\u9020\u51fd\u6570\u3002valueOf()\u65b9\u6cd5\u5185\u90e8\u53ef\u80fd\u4f1a\u4f7f\u7528\u7f13\u5b58\uff0c\u4ece\u800c\u907f\u514d\u521b\u5efa\u4e0d\u5fc5\u8981\u7684\u65b0\u5bf9\u8c61\u3002 \u4f8b\u5982\uff1a Integer num = Integer.valueOf(42); \/\/ \u4f7f\u7528valueOf()\u65b9\u6cd5 \u4f7f\u7528\u7f13\u5b58\uff1a\u5bf9\u4e8e\u5c0f\u8303\u56f4\u7684\u6574\u6570\u6216\u5e38\u7528\u7684\u6d6e\u70b9\u6570\uff0cJava\u5728\u88c5\u7bb1\u64cd\u4f5c\u65f6\u4f1a\u8fdb\u884c\u7f13\u5b58\uff0c\u56e0\u6b64\u5728\u8fd9\u4e9b\u503c\u7684\u88c5\u7bb1\u548c\u62c6\u7bb1\u64cd\u4f5c\u4e0a\u4f1a\u66f4\u5feb\u3002 \u4f8b\u5982\uff1a Integer num1 = 42; \/\/ \u81ea\u52a8\u88c5\u7bb1\uff0c\u4f7f\u7528\u7f13\u5b58 int num2 = num1; \/\/ \u81ea\u52a8\u62c6\u7bb1 \u907f\u514d\u9891\u7e41\u88c5\u7bb1\u548c\u62c6\u7bb1\uff1a\u5728\u5faa\u73af\u6216\u9ad8\u9891\u64cd\u4f5c\u4e2d\uff0c\u5c3d\u91cf\u907f\u514d\u9891\u7e41\u5730\u8fdb\u884c\u88c5\u7bb1\u548c\u62c6\u7bb1\u64cd\u4f5c\uff0c\u53ef\u4ee5\u5c06\u57fa\u672c\u6570\u636e\u7c7b\u578b\u653e\u5165\u96c6\u5408\u6216\u6570\u7ec4\u4e2d\uff0c\u800c\u4e0d\u662f\u4f7f\u7528\u88c5\u7bb1\u7c7b\u578b\u7684\u96c6\u5408\u3002 \u4f7f\u7528Java 8\u7684Optional\u7c7b\uff1a\u5bf9\u4e8e\u53ef\u80fd\u4e3anull\u7684\u503c\uff0c\u53ef\u4ee5\u4f7f\u7528Java 8\u4e2d\u7684Optional\u7c7b\u6765\u5904\u7406\uff0c\u800c\u4e0d\u662f\u4f7f\u7528\u53ef\u80fd\u4f1a\u5f15\u8d77\u88c5\u7bb1\u7684\u88c5\u7bb1\u7c7b\u578b\u3002 \u4f8b\u5982\uff1a\nOptional&lt;Integer&gt; optionalNum = Optional.ofNullable(someValue); \/\/ \u4f7f\u7528Optional\u7c7b \u4f7f\u7528\u7b2c\u4e09\u65b9\u5e93\uff1a\u6709\u4e9b\u7b2c\u4e09\u65b9\u5e93\u4e13\u95e8\u9488\u5bf9\u6027\u80fd\u8fdb\u884c\u4e86\u4f18\u5316\uff0c\u53ef\u4ee5\u8003\u8651\u4f7f\u7528\u8fd9\u4e9b\u5e93\u6765\u5904\u7406\u7279\u5b9a\u7684\u6027\u80fd\u95ee\u9898\u3002 \u603b\u7684\u6765\u8bf4\uff0c\u5728\u6027\u80fd\u654f\u611f\u7684\u4ee3\u7801\u4e2d\uff0c\u5c3d\u91cf\u51cf\u5c11\u88c5\u7bb1\u548c\u62c6\u7bb1\u7684\u6b21\u6570\uff0c\u4f18\u5148\u4f7f\u7528\u57fa\u672c\u6570\u636e\u7c7b\u578b\uff0c\u5e76\u5408\u7406\u4f7f\u7528\u7f13\u5b58\u548c\u7b2c\u4e09\u65b9\u5e93\u6765\u63d0\u9ad8\u6027\u80fd\u3002\u5728\u5176\u4ed6\u60c5\u51b5\u4e0b\uff0c\u4f7f\u7528\u88c5\u7bb1\u7c7b\u578b\u53ef\u4ee5\u5e26\u6765\u66f4\u597d\u7684\u53ef\u8bfb\u6027\u548c\u7075\u6d3b\u6027\u3002\u4f18\u5316\u6027\u80fd\u65f6\u5e94\u5148\u8fdb\u884c\u6027\u80fd\u6d4b\u8bd5\uff0c\u786e\u4fdd\u4f18\u5316\u65b9\u6848\u771f\u6b63\u5e26\u6765\u4e86\u5b9e\u8d28\u7684\u6027\u80fd\u63d0\u5347\u3002"},{"title":"\u5404\u79cd\u8bbe\u8ba1\u6a21\u5f0f\u5982\u4f55\u7528java\u4ee3\u7801\u4f53\u73b0\uff1f","link":"https:\/\/open-native.com\/java\/design-pattern\/","pubDate":"Mon, 29 May 2023 11:36:26 +0800","guid":"https:\/\/open-native.com\/java\/design-pattern\/","description":"<h3 id=\"\u8bbe\u8ba1\u539f\u5219\">\u8bbe\u8ba1\u539f\u5219<\/h3>\n<ul>\n<li>\u591a\u7528\u7ec4\u5408\u5c11\u7528\u7ee7\u627f\u3002<\/li>\n<li>\u627e\u51fa\u5e94\u7528\u4e2d\u53ef\u80fd\u9700\u8981\u53d8\u5316\u4e4b\u5904\uff0c\u628a\u4ed6\u4eec\u72ec\u7acb\u51fa\u6765\uff0c\u4e0d\u8981\u548c\u90a3\u4e9b\u4e0d\u9700\u8981\u53d8\u5316\u7684\u4ee3\u7801\u6df7\u5408\u5728\u4e00\u8d77\u3002<\/li>\n<li>\u9488\u5bf9\u63a5\u53e3\u7f16\u7a0b\uff0c\u800c\u4e0d\u662f\u9488\u5bf9\u5b9e\u73b0\u7f16\u7a0b\u3002<\/li>\n<li>\u4e3a\u4e86\u4ea4\u4e92\u5bf9\u8c61\u4e4b\u95f4\u7684\u677e\u8026\u5408\u8bbe\u8ba1\u800c\u52aa\u529b\u3002<\/li>\n<li>\u7c7b\u5e94\u8be5\u5bf9\u6269\u5c55\u5f00\u653e\uff0c\u5bf9\u4fee\u6539\u5173\u95ed\u3002<\/li>\n<li>\u8981\u4f9d\u8d56\u62bd\u8c61\uff0c\u4e0d\u8981\u4f9d\u8d56\u5177\u4f53\u7c7b\u3002<\/li>\n<li>\u6700\u5c11\u77e5\u8bc6\u539f\u5219\uff1a\u53ea\u548c\u4f60\u7684\u5bc6\u53cb\u8c08\u8bdd\u3002\uff08\u76f8\u5f53\u4e8e\u7c7b\u95f4\u4ea4\u4e92\u9002\u5f53\u5c01\u88c5\uff0c\u51cf\u5c11\u8026\u5408\uff0c\u53ea\u8ba9\u5fc5\u8981\u90e8\u5206\u4ea4\u4e92\uff09<\/li>\n<\/ul>"},{"title":"Kubernetes Labels And Annotatios","link":"https:\/\/open-native.com\/article\/kubernetes-labels\/","pubDate":"Mon, 24 Apr 2023 22:27:50 +0800","guid":"https:\/\/open-native.com\/article\/kubernetes-labels\/","description":"In Kubernetes, you can use labels to assign key-value pairs to any resources.\nLabels are ubiquitous and necessary to everyday operations such as creating services.\nHowever, how should you name and use those labels?\nLet&rsquo;s start with the basics\nAny resource in Kubernetes can have labels\nSome labels are vital (e.g. service&rsquo;s selector, operators, etc.), and others are useful to tag resources (e.g. labelling a deployment)\nKubectl offers a --show-labels flag to help you list resources and their labels"},{"title":"Kubernetes Security Pratices","link":"https:\/\/open-native.com\/article\/kubernetes-security-pratices\/","pubDate":"Sat, 22 Apr 2023 21:51:31 +0800","guid":"https:\/\/open-native.com\/article\/kubernetes-security-pratices\/","description":"In this video I talk about a super important topic, which is security in Kubernetes and what are some of the best practices for securing your Kubernetes cluster.\nThe big challenge that we see in terms of Kubernetes security is that it&rsquo;s already so challenging to set up a Kubernetes cluster and to configure it to deploy the applications in it, that security often becomes the afterthought, adding on top of that already complex configuration."},{"title":"Kubernetes\u96c6\u7fa4\u5747\u8861\u5668-Descheduler","link":"https:\/\/open-native.com\/article\/descheduler\/","pubDate":"Wed, 12 Apr 2023 22:39:38 +0800","guid":"https:\/\/open-native.com\/article\/descheduler\/","description":"<h3 id=\"\u96c6\u7fa4\u5747\u8861\u5668\u7684\u5fc5\u8981\u6027\">\u96c6\u7fa4\u5747\u8861\u5668\u7684\u5fc5\u8981\u6027<\/h3>\n<p>\u4ece <code>kube-scheduler<\/code> \u7684\u89d2\u5ea6\u6765\u770b\uff0c\u5b83\u901a\u8fc7\u5404\u79cd\u7b97\u6cd5\u8ba1\u7b97\u51fa\u6700\u4f73\u8282\u70b9\u53bb\u8fd0\u884c Pod \u662f\u975e\u5e38\u5b8c\u7f8e\u7684\uff0c\u5f53\u51fa\u73b0\u65b0\u7684 Pod \u8fdb\u884c\u8c03\u5ea6\u65f6\uff0c\u8c03\u5ea6\u7a0b\u5e8f\u4f1a\u6839\u636e\u5176\u5f53\u65f6\u5bf9 Kubernetes \u96c6\u7fa4\u7684\u8d44\u6e90\u63cf\u8ff0\u505a\u51fa\u6700\u4f73\u8c03\u5ea6\u51b3\u5b9a\u3002\u4f46\u662f Kubernetes \u96c6\u7fa4\u662f\u52a8\u6001\u7684\uff0c\u96c6\u7fa4\u5728\u4e00\u6bb5\u65f6\u95f4\u5185\u5c31\u4f1a\u51fa\u73b0\u4e0d\u5747\u8861\u7684\u72b6\u6001\uff0c\u4f8b\u5982\u65b0\u8282\u70b9\u4e0a\u7ebf\u4e0e\u6545\u969c\u8282\u70b9\u4e0b\u7ebf\uff0c\u6216\u8005\u8282\u70b9\u7ef4\u62a4\uff0c\u9700\u8981\u5148\u6267\u884c\u8282\u70b9\u6392\u6c34\uff0c\u4f46\u662f\u7ef4\u62a4\u5b8c\u6210\u540e\uff0c\u4e4b\u524d\u7684 Pod \u5e76\u4e0d\u4f1a\u81ea\u52a8\u56de\u5230\u8be5\u8282\u70b9\u4e0a\u6765\uff0c\u56e0\u4e3a Pod \u4e00\u65e6\u88ab\u7ed1\u5b9a\u4e86\u8282\u70b9\u662f\u4e0d\u4f1a\u89e6\u53d1\u91cd\u65b0\u8c03\u5ea6\u7684\uff1b\u53c8\u6216\u8005\u4f8b\u5982\u8282\u70b9\u4e0a pod \u5229\u7528\u7387\u7684\u53d8\u5316\u5bfc\u81f4\u67d0\u4e9b\u8282\u70b9\u5229\u7528\u7387\u8fc7\u4f4e\u6216\u8005\u8fc7\u9ad8\uff1b\u8282\u70b9\u6807\u7b7e\u53d8\u5316\u5bfc\u81f4 pod \u7684\u4eb2\u548c\u7b56\u7565\u4e0d\u6ee1\u8db3\u8981\u6c42\u7b49\u7b49\uff0ckubernetes \u96c6\u7fa4\u5728\u4e00\u6bb5\u65f6\u95f4\u5185\u5c31\u51fa\u73b0\u4e86\u4e0d\u5747\u8861\u7684\u72b6\u6001\uff0c\u6240\u4ee5\u9700\u8981\u5747\u8861\u5668\u6765\u91cd\u65b0\u5e73\u8861\u96c6\u7fa4\u3002<\/p>\n<h3 id=\"descheduler-\u7ec4\u4ef6\u7b80\u4ecb\">Descheduler \u7ec4\u4ef6\u7b80\u4ecb<\/h3>\n<p>Kubernetes Descheduler \u7ec4\u4ef6\u662f\u4e00\u4e2a\u53ef\u9009\u7684 Kubernetes \u63d2\u4ef6\uff0c\u7528\u4e8e\u81ea\u52a8\u5316 Kubernetes \u96c6\u7fa4\u4e2d\u8282\u70b9\u7684\u8c03\u5ea6\u548c\u4f18\u5316\u3002\u5b83\u7684\u4e3b\u8981\u76ee\u7684\u662f\u89e3\u51b3 Kubernetes \u96c6\u7fa4\u4e2d\u8282\u70b9\u8d44\u6e90\u5229\u7528\u7387\u4e0d\u9ad8\u7684\u95ee\u9898\uff0c\u901a\u8fc7\u5728\u96c6\u7fa4\u4e2d\u8c03\u5ea6\u548c\u5254\u9664\u7a7a\u95f2\u6216\u4f4e\u8d1f\u8f7d\u8282\u70b9\u6765\u4f18\u5316\u96c6\u7fa4\u7684\u8d44\u6e90\u5229\u7528\u7387\u3002<\/p>\n<p>\u5177\u4f53\u6765\u8bf4\uff0cDescheduler \u901a\u8fc7\u5468\u671f\u6027\u68c0\u67e5 Kubernetes \u96c6\u7fa4\u4e2d\u7684\u8282\u70b9\u8d1f\u8f7d\u60c5\u51b5\uff0c\u7136\u540e\u6839\u636e\u7528\u6237\u5b9a\u4e49\u7684\u7b56\u7565\u6765\u5224\u65ad\u54ea\u4e9b\u8282\u70b9\u9700\u8981\u5254\u9664\u6216\u8fc1\u79fb\u3002\u5b83\u53ef\u4ee5\u8bc6\u522b\u90a3\u4e9b\u8d1f\u8f7d\u8f83\u4f4e\u7684\u8282\u70b9\uff0c\u5e76\u5c06\u5176\u4e0e\u5176\u4ed6\u8282\u70b9\u8fdb\u884c\u5408\u5e76\uff0c\u4ece\u800c\u4f7f\u8282\u70b9\u7684\u8d44\u6e90\u5229\u7528\u7387\u66f4\u9ad8\u3002<\/p>\n<p>\u6b64\u5916\uff0cDescheduler \u8fd8\u53ef\u4ee5\u5e2e\u52a9\u7528\u6237\u9884\u9632\u8282\u70b9\u6545\u969c\u3002\u5f53\u4e00\u4e2a\u8282\u70b9\u51fa\u73b0\u95ee\u9898\u65f6\uff0cDescheduler \u53ef\u4ee5\u81ea\u52a8\u5c06\u8be5\u8282\u70b9\u4e0a\u7684 Pod \u8fc1\u79fb\u5230\u5176\u4ed6\u8282\u70b9\u4e0a\uff0c\u4ee5\u786e\u4fdd Kubernetes \u96c6\u7fa4\u7684\u9ad8\u53ef\u7528\u6027\u548c\u7a33\u5b9a\u6027\u3002<\/p>"},{"title":"ISTIO Mixer \u7ec4\u4ef6\u67b6\u6784\u8be6\u89e3","link":"https:\/\/open-native.com\/article\/mixer-intro\/","pubDate":"Sat, 08 Apr 2023 21:29:24 +0800","guid":"https:\/\/open-native.com\/article\/mixer-intro\/","description":"<p>Mixer\u662fIstio\u53e6\u4e00\u4e2a\u975e\u5e38\u91cd\u8981\u7684\u7ec4\u4ef6\uff0c\u4e3b\u8981\u804c\u8d23\u5c31\u662f\u8d1f\u8d23\u63d0\u4f9b\u7b56\u7565\u63a7\u5236\u548c\u9065\u6d4b\u7edf\u8ba1\u3002<\/p>\n<h3 id=\"1-mixer\u6574\u4f53\u67b6\u6784\u8be6\u89e3\">1. Mixer\u6574\u4f53\u67b6\u6784\u8be6\u89e3<\/h3>\n<p>Mixer\u6574\u4f53\u67b6\u6784\uff1a\n<img src=\"https:\/\/open-native.obs.cn-north-4.myhuaweicloud.com\/1383365-20200114204447477-84964089.png\" alt=\"Mixer\u67b6\u6784\u56fe\"><\/p>\n<p>\u5728\u670d\u52a1\u95f4\u8fdb\u884c\u8bf7\u6c42\u8f6c\u53d1\u65f6\uff0cEnvoy\u5bf9Mixer\u53d1\u8d77Check\u3001Report\u8fd9\u4e24\u6b21\u8bf7\u6c42\uff0c\u5373\u5728\u8f6c\u53d1\u8bf7\u6c42\u524d\u8bf7\u6c42Mixer\u6267\u884c\u8bbf\u95ee\u7b56\u7565\u7684\u7ba1\u7406\u914d\u989d\uff0c\u5e76\u5728\u8bf7\u6c42\u8f6c\u53d1\u540e\u4e0a\u62a5\u8981\u9065\u6d4b\u6570\u636e\u3002<\/p>"},{"title":"Cilium Network Policy\u5b9e\u8df5","link":"https:\/\/open-native.com\/article\/cilium-network-policy\/","pubDate":"Thu, 06 Apr 2023 15:55:09 +0800","guid":"https:\/\/open-native.com\/article\/cilium-network-policy\/","description":"<h3 id=\"\u4e3a\u4ec0\u4e48\u9700\u8981networkpolicy\">\u4e3a\u4ec0\u4e48\u9700\u8981Networkpolicy<\/h3>\n<p>Networkpolicy\u53ef\u4ee5\u63a7\u5236\u8fdb\u51fapod\u7684\u7f51\u7edc\u6d41\u91cf\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u6bcf\u4e2apod\u90fd\u53ef\u4ee5\u76f8\u4e92\u901a\u4fe1\u3002\u5f53\u4f60\u60f3\u8981\u963b\u6b62\u67d0\u4e9b\u5fae\u670d\u52a1\u76f8\u4e92\u901a\u4fe1\u65f6\uff0c\u7f51\u7edc\u7b56\u7565\u5c31\u4f1a\u6d3e\u4e0a\u7528\u573a\uff0c\u7279\u522b\u662f\u5f53\u4f60\u4e0e\u5176\u4ed6\u56e2\u961f\u5728\u5171\u4eab\u96c6\u7fa4\u4e2d\u5de5\u4f5c\u65f6\u3002\u8fd9\u4f7f\u60a8\u7684\u5fae\u670d\u52a1\u5728\u591a\u79df\u6237\u73af\u5883\u4e2d\u66f4\u5177\u6709\u9694\u79bb\u6027\u3002<br>\n\u5173\u4e8eNetworkpolicy\u7684\u4e00\u4e9b\u57fa\u7840\u77e5\u8bc6\uff0c\u53ef\u4ee5\u53c2\u7167\u6587\u7ae0\uff1a<a href=\"http:\/\/open-native.com\/article\/networkpolicy\/\">Kubernetes NetworkPolicy\u5b9e\u8df5\u6307\u5357<\/a><\/p>"},{"title":"ISTIO Pilot \u7ec4\u4ef6\u67b6\u6784\u8be6\u89e3","link":"https:\/\/open-native.com\/article\/pilot-intro\/","pubDate":"Mon, 27 Mar 2023 21:29:24 +0800","guid":"https:\/\/open-native.com\/article\/pilot-intro\/","description":"<p>Pilot\u662fIstio\u63a7\u5236\u5e73\u9762\u7684\u6838\u5fc3\u7ec4\u4ef6\uff0c\u662f\u7ba1\u7406\u548c\u914d\u7f6eIstio\u670d\u52a1\u7f51\u683c\u4e2d\u6240\u6709Envoy\u4ee3\u7406\u5b9e\u4f8b\u7684\u53f8\u4ee4\u5b98\u3002<\/p>\n<h3 id=\"pilot\u67b6\u6784\u8be6\u89e3\">Pilot\u67b6\u6784\u8be6\u89e3<\/h3>\n<p>Pilot\u67b6\u6784\u56fe\uff1a<br>\n<img src=\"https:\/\/raw.githubusercontent.com\/servicemesher\/website\/master\/content\/blog\/lightweight-service-mesh-practice-in-ucloud\/00704eQkgy1fsaijtidnzj30hs0edq67.jpg\" alt=\"Pilot\u67b6\u6784\u56fe\"><\/p>"},{"title":"Centos 7.x\u5185\u6838\u7248\u672c\u5347\u7ea7\u5b9e\u8df5","link":"https:\/\/open-native.com\/article\/kernel-upgrade\/","pubDate":"Sun, 19 Mar 2023 16:26:38 +0800","guid":"https:\/\/open-native.com\/article\/kernel-upgrade\/","description":"<p>\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cCentos7.X\u7684\u5185\u6838\u7248\u672c\u662f3.10\uff0c\u5982\u4f55\u53bb\u5347\u7ea7\u5185\u6838\u5462\uff1f<\/p>\n<ol>\n<li>\u67e5\u770b\u4e00\u4e0b\u5f53\u524d\u7684\u7cfb\u7edf\u7248\u672c<\/li>\n<\/ol>\n<pre tabindex=\"0\"><code>~ uname -r\n3.10.0-1160.el7.x86_64\n<\/code><\/pre>"},{"title":"Kubernetes NetworkPolicy\u5b9e\u8df5\u6307\u5357","link":"https:\/\/open-native.com\/article\/networkpolicy\/","pubDate":"Fri, 17 Mar 2023 21:35:04 +0800","guid":"https:\/\/open-native.com\/article\/networkpolicy\/","description":"<p>\u6839\u636eKubernetes\u7684\u7f51\u7edc\u6a21\u578b\uff0c\u96c6\u7fa4\u4e2d\u7684\u6240\u6709pod\u90fd\u53ef\u4ee5\u76f4\u63a5\u76f8\u4e92\u901a\u4fe1\uff0c\u4e0d\u7ba1\u5b83\u4eec\u5b58\u5728\u4e8e\u54ea\u4e2a\u8282\u70b9\u4e0a\uff0c\u6216\u5b58\u5728\u4e8e\u54ea\u4e2a\u547d\u540d\u7a7a\u95f4\u4e2d\uff0c\u901a\u4fe1\u8fc7\u7a0b\u4e0d\u9700\u8981NAT\u3002\u4ece\u53ef\u7528\u6027\u7684\u89d2\u5ea6\u6765\u770b\uff0c\u8fd9\u662f\u975e\u5e38\u4fbf\u6377\u7684\uff0c\u4f46\u4ece\u5b89\u5168\u6027\u6765\u770b\uff0c\u8fd9\u8c8c\u4f3c\u6709\u4e00\u70b9\u95ee\u9898\u3002\u5047\u8bbe\u653b\u51fb\u8005\u4fb5\u5165\u4e86\u4e00\u4e2a\u4e0d\u53d7\u7f51\u7edc\u9650\u5236\u5730pod\uff0c\u4ed6\u5c31\u53ef\u4ee5\u8fde\u63a5\u5230\u540c\u4e00\u96c6\u7fa4\u4e2d\u7684\u4efb\u4f55\u4e00\u4e2apod\uff0c\u751a\u81f3\u662f\u6709\u6743\u9650\u8bbf\u95ee\u654f\u611f\u4fe1\u606f\u7684pod\u3002<br>\n\u4f7f\u7528NetworkPolicy\uff0c\u53ef\u4ee5\u5728IP\u5730\u5740\u6216\u7aef\u53e3\u7ea7\u522b\u4e0a\u9650\u5236Kubernetes\u96c6\u7fa4\u4e2dpod\u4e4b\u95f4\u7684\u7f51\u7edc\u6d41\u91cf\u3002<\/p>"},{"title":"\u5982\u4f55\u7406\u89e3\u5fae\u670d\u52a1\u67b6\u6784\u4e2d\u7684\u8d1f\u8f7d\u5747\u8861\u548cAPI\u7f51\u5173?","link":"https:\/\/open-native.com\/article\/slb\/","pubDate":"Sun, 12 Mar 2023 00:24:55 +0800","guid":"https:\/\/open-native.com\/article\/slb\/","description":"<p><img src=\"https:\/\/open-native.obs.cn-north-4.myhuaweicloud.com\/1*4YiKYTkjpRLAfIg23XxPpA.webp\" alt=\"image.png\"><br>\nAPI\u7f51\u5173\u548c\u8d1f\u8f7d\u5747\u8861\u5668\u90fd\u662f\u5fae\u670d\u52a1\u4f53\u7cfb\u7ed3\u6784\u4e2d\u975e\u5e38\u91cd\u8981\u7684\u7ec4\u4ef6\uff0c\u4f46\u5b83\u4eec\u5374\u53d1\u6325\u7740\u4e0d\u540c\u7684\u4f5c\u7528\uff0c\u5404\u53f8\u5176\u804c\u3002<br>\nAPI\u7f51\u5173\u662f\u6240\u6709API\u8bf7\u6c42\u7684\u552f\u4e00\u5165\u53e3\uff0c\u5176\u4e3a\u5fae\u670d\u52a1\u63d0\u4f9b\u4e86\u8def\u7531\u3001\u9650\u6d41\u3001\u7194\u65ad\u3001\u8ba4\u8bc1\u548c\u9274\u6743\u3001API\u7248\u672c\u63a7\u5236\u7b49\u529f\u80fd\u3002\u5411\u4e0a\u5bf9\u5ba2\u6237\u7aef\u9690\u85cf\u4e86\u5e95\u5c42\u5fae\u670d\u52a1\u7684\u590d\u6742\u6027\uff0c\u5411\u4e0b\u8fd8\u5bf9\u5404\u4e2a\u9886\u57df\u670d\u52a1\u63d0\u4f9b\u9632\u8150\u5c42\u7684\u4f5c\u7528\u3002\u5728\u5b8f\u89c2\u4e0a\u8bb2\uff0c\u901a\u8fc7\u4e0a\u8ff0\u529f\u80fd\uff0cAPI\u7f51\u5173\u5c06\u4e0d\u786e\u5b9a\u6027\uff08\u6d41\u91cf\u7684\u4e0d\u786e\u5b9a\u6027\u3001\u7528\u6237\u884c\u4e3a\u7684\u4e0d\u786e\u5b9a\u6027\u7b49\u7b49\uff09\u8f6c\u5316\u4e3a\u786e\u5b9a\u6027\uff0c\u6781\u5927\u63d0\u9ad8\u4e86\u7cfb\u7edf\u7684\u53ef\u9760\u7a0b\u5ea6\u3002<\/p>"},{"title":"\u5728Kubernetes\u4e2d\uff0c\u5982\u4f55\u8bbe\u7f6eCPU\u7684requests\u548climits","link":"https:\/\/open-native.com\/article\/r-l\/","pubDate":"Tue, 07 Mar 2023 19:06:49 +0800","guid":"https:\/\/open-native.com\/article\/r-l\/","description":"<p>\u5728Kubernetes\u96c6\u7fa4\u4e2d\uff0c\u8be5\u5982\u4f55\u8bbe\u7f6eCPU\u7684requests\u548climits\u5462\uff1f<\/p>\n<p>\u53ef\u4f9b\u9009\u62e9\u7684\u7b56\u7565\u5305\u542b\uff1a<\/p>\n<ul>\n<li>\u53ea\u4f7f\u7528limits<\/li>\n<li>\u4ece\u6765\u4e0d\u7528limits\uff0c\u53ea\u662f\u8bbe\u7f6erequests<\/li>\n<li>\u6216\u8005\uff0c\u4e24\u8005\u54ea\u4e00\u4e2a\u90fd\u4e0d\u7528\u3002<\/li>\n<\/ul>\n<p>\u8be5\u4f5c\u4f55\u9009\u62e9\u5462\uff1f<\/p>"},{"title":"\u4e00\u6587\u89e3\u8bfbeBPF","link":"https:\/\/open-native.com\/article\/ebpf\/","pubDate":"Mon, 27 Feb 2023 21:17:50 +0800","guid":"https:\/\/open-native.com\/article\/ebpf\/","description":"<h3 id=\"\u4ecb\u7ecd\">\u4ecb\u7ecd<\/h3>\n<p>eBPF\uff08extended Berkeley Packet Filter\uff09\u662f\u4e00\u79cdLinux\u5185\u6838\u4e2d\u7684\u865a\u62df\u673a\u6280\u672f\uff0c\u5b83\u5141\u8bb8\u7528\u6237\u5728\u5185\u6838\u4e2d\u8fd0\u884c\u81ea\u5b9a\u4e49\u7684\u4ee3\u7801\uff0c\u4ece\u800c\u5b9e\u73b0\u66f4\u9ad8\u7ea7\u522b\u7684\u7f51\u7edc\u8fc7\u6ee4\u3001\u76d1\u63a7\u548c\u5b89\u5168\u529f\u80fd\u7b49\u3002eBPF\u6700\u521d\u662f\u7531Linux\u5185\u6838\u5f00\u53d1\u8005Brendan Gregg\u548cOthers\u57282014\u5e74\u63d0\u51fa\u7684\uff0c\u5b83\u662f\u4f20\u7edfBPF\uff08Berkeley Packet Filter\uff09\u7684\u589e\u5f3a\u7248\uff0c\u652f\u6301\u66f4\u591a\u7684\u6307\u4ee4\u548c\u6570\u636e\u7ed3\u6784\uff0c\u4f7f\u5f97\u7528\u6237\u53ef\u4ee5\u7f16\u5199\u66f4\u52a0\u590d\u6742\u548c\u9ad8\u7ea7\u7684\u4ee3\u7801\u3002<\/p>\n<p>eBPF\u6280\u672f\u7684\u6838\u5fc3\u662f\u4e00\u4e2a\u865a\u62df\u673a\uff0c\u8be5\u865a\u62df\u673a\u8fd0\u884c\u5728\u5185\u6838\u4e2d\uff0c\u5177\u6709JIT\uff08\u5373\u65f6\u7f16\u8bd1\uff09\u529f\u80fd\uff0c\u53ef\u4ee5\u5c06\u7528\u6237\u7f16\u5199\u7684eBPF\u4ee3\u7801\u7f16\u8bd1\u6210\u672c\u5730\u4ee3\u7801\uff0c\u4ece\u800c\u83b7\u5f97\u63a5\u8fd1\u672c\u5730\u4ee3\u7801\u7684\u6267\u884c\u6548\u7387\u3002eBPF\u4ee3\u7801\u53ef\u4ee5\u5728\u8fd0\u884c\u65f6\u52a8\u6001\u6ce8\u5165\u5230\u5185\u6838\u4e2d\uff0c\u800c\u4e0d\u9700\u8981\u91cd\u65b0\u7f16\u8bd1\u6216\u91cd\u65b0\u542f\u52a8\u5185\u6838\uff0c\u4ece\u800c\u4f7f\u5f97\u5b83\u5728\u8fd0\u884c\u65f6\u53ef\u4ee5\u5feb\u901f\u9002\u5e94\u4e0d\u540c\u7684\u573a\u666f\u548c\u9700\u6c42\u3002<\/p>"},{"title":"Istio 1.17 \u7248\u672c\u65b0\u7279\u6027\u4ecb\u7ecd","link":"https:\/\/open-native.com\/article\/istio-1.17\/","pubDate":"Thu, 23 Feb 2023 11:43:45 +0800","guid":"https:\/\/open-native.com\/article\/istio-1.17\/","description":"<p>2\u670814\u65e5\uff0cIstio\u793e\u533a\u53d1\u5e03\u4e861.17\u7684\u53d1\u5e03\u901a\u544a\u30021.17\u7248\u672c\u6dfb\u52a0\u4e86\u4e00\u4e9b\u91cd\u8981\u7684\u65b0\u529f\u80fd\uff0c\u5e76\u5c06\u4e00\u4e9b\u73b0\u6709\u7684\u529f\u80fd\u6210\u719f\u5ea6\u6807\u8bb0\u4e3aBeta\uff0c\u8868\u660e\u5b83\u4eec\u5df2\u7ecf\u51c6\u5907\u597d\u751f\u4ea7\u4f7f\u7528\u3002\u4ee5\u4e0b\u662f\u4e00\u4e9b\u4eae\u70b9\uff1a<\/p>\n<h3 id=\"\u91d1\u4e1d\u96c0\u5347\u7ea7\u548c\u4fee\u8ba2\u6807\u7b7e\u5347\u7ea7\u4e3abeta\u7248\u672c\">\u91d1\u4e1d\u96c0\u5347\u7ea7\u548c\u4fee\u8ba2\u6807\u7b7e\u5347\u7ea7\u4e3aBeta\u7248\u672c<\/h3>\n<p>Istio 1.6\u5728\u7248\u672c\u4e2d\u5f15\u5165\u4e86\u5bf9\u4f7f\u7528\u4fee\u8ba2\u7248\u6309\u7167\u91d1\u4e1d\u96c0\u6a21\u5f0f\u5347\u7ea7\u670d\u52a1\u7f51\u683c\u7684\u57fa\u672c\u652f\u6301\u3002\u4f7f\u7528\u8fd9\u79cd\u65b9\u6cd5\uff0c\u60a8\u53ef\u4ee5\u5e76\u6392\u8fd0\u884c\u591a\u4e2a\u63a7\u5236\u5e73\u9762\uff0c\u800c\u4e0d\u4f1a\u5f71\u54cd\u73b0\u6709\u7684\u90e8\u7f72\uff0c\u5e76\u7f13\u6162\u5730\u5c06\u5de5\u4f5c\u8d1f\u8f7d\u4ece\u65e7\u7684\u63a7\u5236\u5e73\u9762\u8fc1\u79fb\u5230\u65b0\u7684\u63a7\u5236\u5e73\u9762\u3002\u5728Istio 1.10\u4e2d\uff0c\u5f15\u5165\u4fee\u8ba2\u6807\u7b7e\u4f5c\u4e3a\u91d1\u4e1d\u96c0\u5347\u7ea7\u7684\u6539\u8fdb\uff0c\u4ee5\u5e2e\u52a9\u51cf\u5c11\u64cd\u4f5c\u5458\u4f7f\u7528\u4fee\u6539\u65f6\u5fc5\u987b\u505a\u7684\u66f4\u6539\u6570\u91cf\uff0c\u5e76\u5b89\u5168\u5347\u7ea7Istio\u63a7\u5236\u5e73\u9762\u3002\u8fd9\u662f\u6211\u4eec\u7684\u7528\u6237\u5728\u751f\u4ea7\u8fc7\u7a0b\u4e2d\u88ab\u5e7f\u6cdb\u91c7\u7528\u548c\u4f7f\u7528\u7684\u4e00\u4e2a\u7279\u6027\u3002\u6240\u6709\u8fd9\u4e9b\u7279\u6027\u7684\u96c6\u6210\u6d4b\u8bd5\u548c\u7aef\u5230\u7aef\u6d4b\u8bd5\u90fd\u5df2\u5b8c\u6210\uff0c\u5df2\u7ecf\u5347\u7ea7\u4e3aBeta\u7248\u672c\u3002<\/p>"},{"title":"\u6df1\u5165\u7406\u89e3Sidecar Injection","link":"https:\/\/open-native.com\/article\/k8s-injection\/","pubDate":"Wed, 08 Feb 2023 23:14:58 +0800","guid":"https:\/\/open-native.com\/article\/k8s-injection\/","description":"<p>\u5728\u4e91\u539f\u751f\u751f\u6001\u6108\u52a0\u6210\u719f\u7684\u52a0\u6301\u4e0b\uff0c\u5fae\u670d\u52a1\u67b6\u6784\u4f53\u7cfb\u670d\u52a1\u6cbb\u7406\u80fd\u529b\u4e0b\u6c89\uff0c\u57fa\u7840\u8bbe\u65bd\u7684\u670d\u52a1\u80fd\u529b\u548c\u8ba1\u7b97\u80fd\u529b\u8fdb\u4e00\u6b65\u62bd\u8c61\uff0c\u4ee5\u8fbe\u5230\u8fdb\u4e00\u6b65\u5b9e\u73b0\u5e94\u7528\u7a0b\u5e8f\u548c\u57fa\u7840\u670d\u52a1\u66f4\u52a0\u7ec6\u5316\u7684\u5782\u76f4\u5206\u5de5\u548c\u8fd0\u884c\u65f6\u89e3\u8026\uff0c\u5df2\u7ecf\u6210\u4e3a\u8d8a\u6765\u8d8a\u5bb9\u6613\u88ab\u5927\u5bb6 \u6240\u8ffd\u6c42\u7684\u65b0\u8d8b\u52bf\u3002<br>\n\u800c\u88ab\u793e\u533a\u5e7f\u6cdb\u4f7f\u7528\u7684Sidecar\u6a21\u5f0f\uff0c\u901a\u8fc7\u90e8\u7f72\u72ec\u7acb\u8fdb\u7a0b\u7684Sidecar\u5b9e\u73b0\u4e0e\u5e94\u7528\u7a0b\u5e8f\u677e\u8026\u5408\uff0c\u5927\u5927\u964d\u4f4e\u4e86\u6784\u5efa\u9ad8\u53ef\u7528\u3001\u9ad8\u5ea6\u5f39\u6027\u548c\u9ad8\u5ea6\u53ef\u6269\u5c55\u5fae\u670d\u52a1\u67b6\u6784\u4f53\u7cfb\u7684\u590d\u6742\u5ea6\u3002<\/p>"},{"title":"\u6df1\u5165\u5b66\u4e60kubernetes\u8054\u90a6","link":"https:\/\/open-native.com\/article\/k8s-fed\/","pubDate":"Wed, 08 Feb 2023 23:14:58 +0800","guid":"https:\/\/open-native.com\/article\/k8s-fed\/","description":"<p>Kubernetes\u4ece1.8\u7248\u672c\u8d77\u5c31\u58f0\u79f0\u5355\u96c6\u7fa4\u6700\u591a\u53ef\u652f\u63015000\u4e2a\u8282\u70b9\u548c15\u4e07\u4e2aPod\uff0c\u8fd9\u4e2a\u89c4\u6a21\u5bf9\u4e8e\u8170\u90e8\u4ee5\u4e0b\u56e2\u961f\u6765\u8bb2\u5df2\u7ecf\u8db3\u591f\u5e94\u5bf9\u4e1a\u52a1\u81a8\u80c0\u3002\u4f46\u662f\u603b\u4f1a\u51fa\u4e8e\u6df7\u5408\u4e91\u3001\u53ef\u6269\u5c55\u6027\u3001\u964d\u4f4e\u7f51\u7edc\u5ef6\u8fdf\u6216\u8005\u8de8\u53ef\u7528\u533a\u6545\u969c\u9694\u79bb\u7b49\u5404\u79cd\u5404\u6837\u56e0\u7d20\u8003\u91cf\u53bb\u90e8\u7f72\u591a\u96c6\u7fa4\u3002Kubernetes Cluster Federation \u53c8\u540d KubeFed \u6216 Federation v2\uff0cFederation\u5c06\u4f7f\u7ba1\u7406\u591a\u4e2a\u96c6\u7fa4\u53d8\u5f97\u7b80\u5355\uff0c\u6253\u7834\u5404\u4e2a\u96c6\u7fa4\u8fb9\u754c\uff0c\u4f7f\u4e4b\u4e0d\u518d\u662f\u4e00\u4e2a\u4e2a\u5b64\u5c9b\u3002<\/p>"},{"title":"Dapr\u52a9\u529b\u5f02\u6784\u8bed\u8a00\u7cfb\u7edf\u7684\u4e8b\u4ef6\u9a71\u52a8\u67b6\u6784\u8bbe\u8ba1","link":"https:\/\/open-native.com\/article\/dapr-intro\/","pubDate":"Thu, 02 Feb 2023 22:43:18 +0800","guid":"https:\/\/open-native.com\/article\/dapr-intro\/","description":"<p>\u6211\u4eec\u5728\u63a2\u8ba8\u5fae\u670d\u52a1\u65f6\uff0c\u901a\u5e38\u907f\u4e0d\u5f00\u670d\u52a1\u7684\u9897\u7c92\u5ea6\u548c\u670d\u52a1\u4e4b\u95f4\u7684\u677e\u8026\u5408\u3002\u4e5f\u5c31\u662f\u8bf4\u670d\u52a1\u5e94\u8be5\u662f\u80fd\u591f\u81ea\u6cbb\u7684\uff0c\u80fd\u591f\u638c\u63a7\u670d\u52a1\u6240\u6709\u7684\u4f9d\u8d56\uff0c\u5e76\u4e14\u5c3d\u91cf\u964d\u4f4e\u540c\u6b65\u901a\u4fe1\u7684\u9891\u7387\u3002\u4eca\u5929\u6211\u4eec\u6765\u63a2\u8ba8\u4e00\u4e0b\u5b9e\u73b0\u5206\u5e03\u5f0f\u670d\u52a1\u677e\u8026\u5408\u7684\u4e8b\u4ef6\u9a71\u52a8\u67b6\u6784\u6a21\u5f0f\uff0c\u4ee5\u53ca\u5f02\u6784\u8bed\u8a00\u7cfb\u7edf\u5982\u4f55\u5b9e\u73b0\u4e8b\u4ef6\u9a71\u52a8\u67b6\u6784\u8bbe\u8ba1\u3002<\/p>"},{"title":"\u4ece\u65e5\u5fd7\u6765\u63a2\u7a76Dapr\u6e90\u7801-Dapr runtime\u7684\u542f\u52a8\u8fc7\u7a0b","link":"https:\/\/open-native.com\/article\/dapr-runtime-start\/","pubDate":"Fri, 13 Jan 2023 23:02:40 +0800","guid":"https:\/\/open-native.com\/article\/dapr-runtime-start\/","description":"<h4 id=\"\u65e5\u5fd7\">\u65e5\u5fd7<\/h4>\n<p>\u9996\u5148\uff0c\u6211\u4eec\u6765\u6574\u4f53\u89c2\u5bdf\u4e00\u4e0b\u5728kubernetes\u96c6\u7fa4\u73af\u5883\u4e0bdapr\u670d\u52a1\u7684\u542f\u52a8\u65e5\u5fd7\uff0c\u4ee5\u4fbf\u5bf9\u542f\u52a8\u8fc7\u7a0b\u7684\u65f6\u95f4\u7ebf\u6709\u4e00\u4e2a\u6574\u4f53\u7684\u5370\u8c61\u3002<\/p>"},{"title":"\u5173\u4e8e istio-proxy 503\/504\u7b495xx\u95ee\u9898\u6392\u67e5","link":"https:\/\/open-native.com\/article\/istio-proxy-503\/","pubDate":"Sun, 02 Oct 2022 23:05:46 +0800","guid":"https:\/\/open-native.com\/article\/istio-proxy-503\/","description":"<h4 id=\"\u95ee\u9898\u63cf\u8ff0\">\u95ee\u9898\u63cf\u8ff0<\/h4>\n<p>\u5728\u751f\u4ea7\u73af\u5883\uff0c\u6211\u4eec\u6700\u8fd1\u90e8\u7f72\u4e86Istio Service Mesh\uff0cIstio\u63a7\u5236\u5e73\u9762\u4f1a\u5728\u6bcf\u4e2a\u670d\u52a1Pod\u91cc\u81ea\u52a8\u6ce8\u5165\u4e00\u4e2asidecar\u3002\u5f53\u5404\u4e2a\u670d\u52a1\u90fd\u521d\u59cb\u5316istio-proxy\uff0c\u901a\u8fc7sidecar\u53bb\u5b9e\u73b0\u670d\u52a1\u95f4\u7684\u8c03\u7528\u65f6\uff0c\u5e94\u7528\u548c\u670d\u52a1\u5c31\u4f1a\u9762\u4e34\u4e00\u4e2a\u5f88\u666e\u904d\u7684\u95ee\u9898\uff1aupstream \u670d\u52a1\u8c03\u7528\u6536\u5230HTTP 503\/504 response\uff0c\u8fd9\u4e2a\u62a5\u9519\u4fe1\u606f\u901a\u5e38\u90fd\u662f\u7531istio-proxy\u4ea7\u751f\u7684\u3002HTTP 503\u901a\u5e38\u53d1\u751f\u5728\u5e94\u7528\u548cistio-proxy\u7684inbound\u6216\u8005outbound\u8c03\u7528\uff0c\u6216\u8005\u662f\u670d\u52a1\u7f51\u683c\u5916\u90e8\u7684\u670d\u52a1\u8c03\u7528\u3002\u5f71\u54cd\u9762\u76f8\u5bf9\u4e25\u91cd\u7684\u662f\u901a\u8fc7\u7f51\u683c\u8bbf\u95ee\u5916\u90e8\u670d\u52a1\u7684outbound\u6d41\u91cf\uff0c\u76f8\u5bf9\u5c0f\u7684\u662f\u7f51\u683c\u5185\u90e8\u7684inbound\u6d41\u91cf\u3002HTTP 504\u7684\u95ee\u9898\u76f8\u5bf9\u8981\u5c11\u4e00\u4e9b\uff0c\u53ea\u6709\u5728upstream service\u7684\u63a5\u53e3response\u65f6\u95f4\u8d85\u8fc715\u79d2\u65f6\u624d\u4f1a\u53d1\u751f\uff0c\u56e0\u4e3aistio-proxy\u7684\u9ed8\u8ba4response\u8d85\u65f6\u65f6\u95f4\u5c31\u662f15\u79d2\u3002<\/p>"},{"title":"\u6d45\u6790\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1","link":"https:\/\/open-native.com\/article\/ddd-intro\/","pubDate":"Wed, 02 Mar 2022 23:29:33 +0800","guid":"https:\/\/open-native.com\/article\/ddd-intro\/","description":"<p>\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1\uff08Domain Driven Design\uff0c\u7b80\u79f0DDD\uff09\u662f\u4e00\u79cd\u8f6f\u4ef6\u8bbe\u8ba1\u65b9\u6cd5\u8bba\uff0c\u5b83\u7684\u76ee\u6807\u662f\u901a\u8fc7\u6df1\u5165\u7406\u89e3\u4e1a\u52a1\u9886\u57df\uff0c\u5c06\u8be5\u9886\u57df\u7684\u77e5\u8bc6\u8f6c\u5316\u4e3a\u8f6f\u4ef6\u6a21\u578b\u548c\u5b9e\u73b0\uff0c\u4ee5\u5b9e\u73b0\u9ad8\u6548\u3001\u53ef\u7ef4\u62a4\u3001\u53ef\u6269\u5c55\u548c\u6613\u4e8e\u7406\u89e3\u7684\u8f6f\u4ef6\u7cfb\u7edf\u3002<\/p>\n<p>\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1\u7684\u6838\u5fc3\u7406\u5ff5\u662f\u5c06\u4e1a\u52a1\u9886\u57df\u7684\u77e5\u8bc6\u4e0e\u8f6f\u4ef6\u5f00\u53d1\u8fc7\u7a0b\u7d27\u5bc6\u7ed3\u5408\u3002\u5728DDD\u4e2d\uff0c\u4e1a\u52a1\u9886\u57df\u88ab\u89c6\u4e3a\u8f6f\u4ef6\u7cfb\u7edf\u4e2d\u6700\u91cd\u8981\u7684\u90e8\u5206\uff0c\u56e0\u4e3a\u5b83\u63d0\u4f9b\u4e86\u7cfb\u7edf\u7684\u6838\u5fc3\u4ef7\u503c\u3002\u56e0\u6b64\uff0cDDD\u5c06\u4e1a\u52a1\u9886\u57df\u4f5c\u4e3a\u8f6f\u4ef6\u8bbe\u8ba1\u7684\u4e2d\u5fc3\uff0c\u5c06\u5176\u62bd\u8c61\u4e3a\u4e00\u4e2a\u9886\u57df\u6a21\u578b\u3002\u9886\u57df\u6a21\u578b\u662f\u4e1a\u52a1\u9886\u57df\u77e5\u8bc6\u7684\u8868\u8fbe\uff0c\u5b83\u63cf\u8ff0\u4e86\u4e1a\u52a1\u9886\u57df\u4e2d\u7684\u5b9e\u4f53\u3001\u503c\u5bf9\u8c61\u3001\u805a\u5408\u548c\u4e1a\u52a1\u89c4\u5219\u7b49\u6982\u5ff5\uff0c\u5e76\u5c06\u5b83\u4eec\u7ec4\u7ec7\u6210\u4e00\u4e2a\u6709\u673a\u7684\u6574\u4f53\u3002\u901a\u8fc7\u9886\u57df\u6a21\u578b\uff0cDDD\u53ef\u4ee5\u5c06\u4e1a\u52a1\u77e5\u8bc6\u8f6c\u5316\u4e3a\u8f6f\u4ef6\u8bbe\u8ba1\u4e2d\u7684\u5b9e\u4f53\u548c\u7c7b\uff0c\u4f7f\u5f97\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u66f4\u597d\u5730\u7406\u89e3\u4e1a\u52a1\u9700\u6c42\uff0c\u66f4\u52a0\u9ad8\u6548\u5730\u5b9e\u73b0\u8f6f\u4ef6\u7cfb\u7edf\u3002<\/p>"},{"title":"\u5206\u5e03\u5f0f\u7cfb\u7edf\u4e2d\u4e9a\u7a33\u5b9a\u5931\u8d25\u72b6\u6001","link":"https:\/\/open-native.com\/article\/metastable-failure\/","pubDate":"Thu, 13 Jan 2022 14:50:17 +0800","guid":"https:\/\/open-native.com\/article\/metastable-failure\/","description":"<p>\u8fd9\u7bc7\u6587\u7ae0\u7684\u521d\u8877\uff0c\u662f\u8bb0\u5f55\u62dc\u8bfb\u7531Nathan Bronson, Aleksey Charapko, Abutalib Aghayev, and Timothy Zhu\u5171\u540c\u53d1\u8868\u7684\u8bba\u6587<a href=\"https:\/\/sigops.org\/s\/conferences\/hotos\/2021\/papers\/hotos21-s11-bronson.pdf\">Metastable Failures in Distributed Systems<\/a>\u7684\u6536\u83b7\uff0c\u8fd9\u7bc7\u8bba\u6587\u63cf\u8ff0\u4e86\u4e00\u4e2a\u5728\u5927\u89c4\u6a21\u5206\u5e03\u5f0f\u7cfb\u7edf\u4e2d\u5f88\u5e38\u89c1\u7684\u5931\u8d25\u573a\u666f\uff1a\u4e9a\u7a33\u5b9a\u5931\u8d25\uff08metastable failures\uff09\uff0c\u5b83\u4eec\u4e3a\u4ec0\u4e48\u901a\u5e38\u5728\u9ad8\u8d1f\u8f7d\u5206\u5e03\u5f0f\u7cfb\u7edf\u4e2d\u53d1\u751f\uff0c\u4ee5\u53ca\u89e3\u51b3\u95ee\u9898\u7684\u601d\u8def\u6846\u67b6\uff1a\u5982\u4f55\u8bc6\u522b\u548c\u4ece\u4e9a\u7a33\u5b9a\u5931\u8d25\u4e2d\u6062\u590d\uff0c\u751a\u81f3\u5982\u4f55\u907f\u514d\u53d1\u751f\u4e9a\u7a33\u5b9a\u5931\u8d25\u3002<\/p>"},{"title":"How to setup Request timeout in Spring Boot REST API","link":"https:\/\/open-native.com\/java\/srpint-boot-timeout\/","pubDate":"Sun, 27 Jun 2021 18:23:19 +0800","guid":"https:\/\/open-native.com\/java\/srpint-boot-timeout\/","description":"<h4 id=\"timeout-using-transactional-annotation\">Timeout using @Transactional annotation<\/h4>\n<p>To set request timeout on database queries or calls by using Spring&rsquo;s @Transactional annotation. We may set the timeout attribute that it has. It has a default value of -1, which is the same as having no timeout at all.<\/p>\n<p>Let&rsquo;s say we have set this timeout to 50 seconds. An exception will be raised if the annotated method takes longer than this amount of time to execute. This approach is quite handy for time-consuming database searches or long-running SQL queries.<\/p>"},{"title":"Java \u9762\u8bd5\u9898\u6c47\u7f16 (\u4e03)","link":"https:\/\/open-native.com\/java\/interview-question-6\/","pubDate":"Sun, 27 Jun 2021 17:23:19 +0800","guid":"https:\/\/open-native.com\/java\/interview-question-6\/","description":"1. Multi threading 1.1 How do you create a thread In Java, there are two main ways to create a thread: by extending the Thread class, or by implementing the Runnable interface.\nExtending the Thread class:\nTo create a thread by extending the Thread class, you need to create a new class that extends Thread and overrides its run() method. The run() method contains the code that will be executed in the new thread."},{"title":"Java \u9762\u8bd5\u9898\u6c47\u7f16 (\u516d)","link":"https:\/\/open-native.com\/java\/interview-question-5\/","pubDate":"Sat, 26 Jun 2021 17:23:19 +0800","guid":"https:\/\/open-native.com\/java\/interview-question-5\/","description":"1. Collections 1.1 Why do we need collections in Java Collections in Java are a way to store and manipulate groups of objects. They are essential because they provide a way to manage data in a flexible and dynamic manner.\nHere are some of the key reasons why we need collections in Java:\nDynamic storage: Collections allow us to store and manipulate a large number of objects dynamically, without requiring us to know the exact number of objects in advance."},{"title":"Java \u9762\u8bd5\u9898\u6c47\u7f16 (\u4e94)","link":"https:\/\/open-native.com\/java\/interview-question-4\/","pubDate":"Fri, 25 Jun 2021 17:23:19 +0800","guid":"https:\/\/open-native.com\/java\/interview-question-4\/","description":"1. Advanced object oriented concepts 1.1 What is polymorphism Polymorphism is a fundamental concept in object-oriented programming (OOP) and refers to the ability of an object to take on multiple forms or behaviors. In Java, polymorphism allows an object to be treated as if it is of any type in its inheritance hierarchy.\nJava supports two types of polymorphism: static polymorphism (also known as method overloading) and dynamic polymorphism (also known as method overriding)."},{"title":"Java \u9762\u8bd5\u9898\u6c47\u7f16 (\u56db)","link":"https:\/\/open-native.com\/java\/interview-question-3\/","pubDate":"Thu, 24 Jun 2021 17:23:19 +0800","guid":"https:\/\/open-native.com\/java\/interview-question-3\/","description":"<h3 id=\"1-wrapper-classes\">1. Wrapper Classes<\/h3>\n<h4 id=\"11-what-are-wrapper-classes\">1.1 What are Wrapper classes<\/h4>\n<p>Wrapper classes are classes in object-oriented programming that are used to wrap or encapsulate primitive data types so that they can be treated as objects. In Java, for example, there are several wrapper classes such as Integer, Double, and Boolean that correspond to the primitive data types int, double, and boolean, respectively.<\/p>\n<p>Wrapper classes provide a way to represent primitive data types as objects, which allows them to be used in situations where objects are required, such as in collections or as method arguments. They also provide additional functionality, such as methods for converting between the wrapped value and other data types.<\/p>"},{"title":"8 Object-Oriented Design Principle and pattern","link":"https:\/\/open-native.com\/java\/8-oop-design-principle\/","pubDate":"Thu, 24 Jun 2021 16:23:19 +0800","guid":"https:\/\/open-native.com\/java\/8-oop-design-principle\/","description":"<h4 id=\"1-what-problem-is-solved-by-the-strategy-pattern-in-java\">1. What problem is solved by the Strategy pattern in Java?<\/h4>\n<p>Strategy pattern allows you to introduce a new algorithm or new strategy without changing the code which uses that algorithm. For example, the Collections.sort() method which sorts the list of the object uses the Strategy pattern to compare objects. Since every object uses a different comparison strategy you can compare various objects differently without changing the sort method.<\/p>"},{"title":"Java \u9762\u8bd5\u9898\u6c47\u7f16 (\u4e09)","link":"https:\/\/open-native.com\/java\/top-30-oop\/","pubDate":"Thu, 24 Jun 2021 16:23:19 +0800","guid":"https:\/\/open-native.com\/java\/top-30-oop\/","description":"<h4 id=\"1-what-is-method-overloading-in-oop-or-java\">1. What is method overloading in OOP or Java?<\/h4>\n<p>Method overloading in Java is an object-oriented programming concept that allows a programmer to declare two methods of the same name but with different method signatures, like a change in the argument list or a change in the type of argument.\nOriginal method :<\/p>\n<pre tabindex=\"0\"><code>public void  show(String message){\n      System.out.println(message);\n}\n<\/code><\/pre><p>Overloaded method: number of arguments is different:<\/p>"},{"title":"Java \u9762\u8bd5\u9898\u6c47\u7f16 (\u4e8c)","link":"https:\/\/open-native.com\/java\/interview-question-2\/","pubDate":"Mon, 21 Jun 2021 16:23:19 +0800","guid":"https:\/\/open-native.com\/java\/interview-question-2\/","description":"<h4 id=\"1-difference-between-string-stringbuffer-and-stringbuilder-in-java\">1. Difference between String, StringBuffer, and StringBuilder in Java?<\/h4>\n<p>String is immutable while both StringBuffer and StringBuilder are mutable, which means any change e.g. converting String to upper case or trimming white space will produce another instance rather than changing the same instance. In later two, StringBuffer is synchronized while StringBuilder is not, in fact, it&rsquo;s a ditto replacement of StringBuffer added in Java 1.5.<\/p>"},{"title":"Java \u9762\u8bd5\u9898\u6c47\u7f16 (\u4e00)","link":"https:\/\/open-native.com\/java\/interview-question\/","pubDate":"Fri, 18 Jun 2021 16:23:19 +0800","guid":"https:\/\/open-native.com\/java\/interview-question\/","description":"<p><strong>1. map\u91cc\uff0chashmap\u65e0\u5e8f\u7684\uff0c\u60f3\u8981\u6709\u5e8f\u7684\u8be5\u600e\u4e48\u529e\uff1f<\/strong><br>\nHashMap<\/p>\n<ul>\n<li>Map\u5b58\u50a8\u8fc7\u7a0b\uff1a\u8ba1\u7b97key\u7684hashCode\u503c\uff0c\u786e\u5b9a\u4f4d\u7f6e\uff1b\u5982\u679c\u4f4d\u7f6e\u4e0a\u6709\u5143\u7d20\uff0c\u7528equals\u5224\u65ad\u662f\u5426\u4e00\u81f4\uff0c\u5982\u679c\u4e00\u81f4\uff0c\u4e0d\u5b58\uff0c\u5982\u679c\u4e0d\u4e00\u81f4\uff0c\u904d\u5386\u4e0b\u4e00\u4e2a\u8282\u70b9\u7ee7\u7eed\u5224\u65adequals\u3002\u6ce8\uff1a\u6dfb\u52a0\u662f\u6dfb\u52a0\u5230\u94fe\u8868\u7684\u5c3e\u90e8\u3002\n\u52a0\u8f7d\u56e0\u5b50\uff08\u6269\u5bb9\u6761\u4ef6\uff09\uff1a\u9ed8\u8ba40.75\uff0c\u7a7a\u95f4\u5b58\u50a875%\u540e\u6269\u5bb9\u3002<\/li>\n<li>\u6269\u5bb9\uff1a\u5c06\u539f\u6765\u7684\u5143\u7d20\u91cd\u65b0\u8ba1\u7b97\u4f4d\u7f6e\u518d\u5b58\u5165\uff1b\u8ba1\u7b97\u9700\u8981\u65f6\u95f4\uff0c\u56e0\u6b64\u4e0d\u53ef\u4ee5\u9891\u7e41\u6269\u5bb9\uff0c\u6269\u5bb9\u662f\u6210\u500d\u7684\u3002<\/li>\n<li>HashMap\u6839\u636e\u952e\u53ef\u4ee5\u5f88\u5feb\u627e\u5230\u4ed6\u7684\u503c\uff0c\u56e0\u6b64\u5177\u6709\u5f88\u5feb\u7684\u8bbf\u95ee\u901f\u5ea6\uff0c\u904d\u5386\u65f6\uff0c\u53d6\u5f97\u6570\u636e\u7684\u987a\u5e8f\u662f\u5b8c\u5168\u968f\u673a\u7684\u3002<\/li>\n<li>HashMap\u4e0d\u652f\u6301\u7ebf\u7a0b\u7684\u540c\u6b65\uff0c\u5373\u4efb\u4e00\u65f6\u523b\u53ef\u4ee5\u6709\u591a\u4e2a\u7ebf\u7a0b\u540c\u65f6\u5199HashMap;\u53ef\u80fd\u4f1a\u5bfc\u81f4\u6570\u636e\u7684\u4e0d\u4e00\u81f4\u3002<\/li>\n<li>HashMap\u7684\u952e\u53ea\u5141\u8bb8\u4e00\u6761\u4e3anull\uff0c\u503c\u53ef\u4ee5\u591a\u4e2a\u4e3anull<\/li>\n<\/ul>"},{"title":"Spring Bean \u7684\u751f\u547d\u5468\u671f","link":"https:\/\/open-native.com\/java\/bean-lifetime\/","pubDate":"Thu, 22 Apr 2021 11:36:26 +0800","guid":"https:\/\/open-native.com\/java\/bean-lifetime\/","description":"<h3 id=\"\u751f\u547d\u5468\u671f\u7684\u4e3b\u8981\u6d41\u7a0b\">\u751f\u547d\u5468\u671f\u7684\u4e3b\u8981\u6d41\u7a0b<\/h3>\n<p>Bean \u7684\u751f\u547d\u5468\u671f\u6982\u62ec\u8d77\u6765\u5c31\u662f 4 \u4e2a\u9636\u6bb5\uff1a<\/p>\n<ol>\n<li>\u5b9e\u4f8b\u5316\uff08Instantiation\uff09<\/li>\n<li>\u5c5e\u6027\u8d4b\u503c\uff08Populate\uff09<\/li>\n<li>\u521d\u59cb\u5316\uff08Initialization\uff09<\/li>\n<li>\u9500\u6bc1\uff08Destruction\uff09<\/li>\n<\/ol>"},{"title":"Java \u95ee\u9898\u6392\u67e5","link":"https:\/\/open-native.com\/java\/java-trouble-shoot\/","pubDate":"Mon, 10 Sep 2018 16:23:19 +0800","guid":"https:\/\/open-native.com\/java\/java-trouble-shoot\/","description":"<h3 id=\"\u8fd0\u884c\u53c2\u6570\">\u8fd0\u884c\u53c2\u6570<\/h3>\n<p>\u5173\u4e8ejava\u542f\u52a8\u53c2\u6570\u914d\u7f6e\uff0c\u5927\u5bb6\u53ef\u4ee5\u53c2\u9605\uff1a<a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/technotes\/tools\/unix\/toc.html\">\u5b98\u65b9\u6587\u6863<\/a><\/p>\n<h4 id=\"\u67e5\u770bjvm\u53c2\u6570\">\u67e5\u770bJVM\u53c2\u6570<\/h4>\n<p>\u4f7f\u7528\u547d\u4ee4 <code>jps -l<\/code> \u67e5\u770b\u6240\u6709\u6b63\u5728\u8fd0\u884c\u7684Java\u7a0b\u5e8f\uff0c\u540c\u65f6\u663e\u793a\u542f\u52a8\u7c7b\u7c7b\u540d\uff0c\u83b7\u53d6\u5230PID<\/p>\n<pre tabindex=\"0\"><code>4706 org.apache.catalina.startup.Bootstrap\n5023 sun.tools.jps.Jps\n<\/code><\/pre>"}]}}