﻿{"id":1045,"date":"2023-04-22T13:42:07","date_gmt":"2023-04-22T05:42:07","guid":{"rendered":"http:\/\/blog.sway.com.cn\/?p=1045"},"modified":"2023-04-23T10:49:23","modified_gmt":"2023-04-23T02:49:23","slug":"%e6%90%ad%e5%bb%ba%e5%be%ae%e6%9c%8d%e5%8a%a1%e6%9e%b6%e6%9e%84%ef%bc%9azookeeperdubbo","status":"publish","type":"post","link":"http:\/\/blog.sway.com.cn\/?p=1045","title":{"rendered":"\u642d\u5efa\u5fae\u670d\u52a1\u67b6\u6784\uff1aZookeeper+Dubbo(\u540c\u65f6\u652f\u6301Rest\u63a5\u53e3)"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u5b89\u88c5Zookeeper<\/h2>\n\n\n\n<p><a href=\"https:\/\/www.apache.org\/dyn\/closer.lua\/zookeeper\/zookeeper-3.8.1\/apache-zookeeper-3.8.1-bin.tar.gz\">https:\/\/www.apache.org\/dyn\/closer.lua\/zookeeper\/zookeeper-3.8.1\/apache-zookeeper-3.8.1-bin.tar.gz<\/a><\/p>\n\n\n\n<p>\u4e0b\u8f7d\u89e3\u538b\u540e\u9700\u8981\u5148\u914d\u7f6ezoo.cfg\uff0c\u53ef\u4ee5\u7528conf\/zoo_sample.cfg\u4f5c\u4e3a\u6837\u672c\u6765\u8fdb\u884c\u914d\u7f6e\uff0c\u6709\u4e24\u4e2a\u5173\u952e\u53c2\u6570\uff1a<\/p>\n\n\n\n<p>dataDir=D:\/apache-zookeeper-3.8.1-bin\/data<\/p>\n\n\n\n<p>admin.serverPort=8888\uff08\u9ed8\u8ba4\u4e3a8080\uff09<\/p>\n\n\n\n<p>\u7136\u540e\u8fd0\u884czkServer\u5373\u53ef\uff08\u9700\u8981\u914d\u7f6e\u597djava\u7684\u73af\u5883\u53d8\u91cf\uff09<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u5b89\u88c5Dubbo-admin<\/h2>\n\n\n\n<p><a href=\"https:\/\/github.com\/apache\/dubbo-admin\">https:\/\/github.com\/apache\/dubbo-admin<\/a><\/p>\n\n\n\n<p>\u5230\u8fd9\u91cc\u4e0b\u8f7drelease\u53d1\u884c\u7248\u672c<\/p>\n\n\n\n<p>\u89e3\u538b\u540e\u8fd0\u884cstartup\u5373\u53ef<\/p>\n\n\n\n<p>\u8fd0\u884c\u540e\u53ef\u4ee5\u8bbf\u95eehttp:\/\/localhost:8080\/\u767b\u5f55\u540e\u53f0\u67e5\u770b\u5fae\u670d\u52a1\u7684\u8fd0\u884c\u60c5\u51b5\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-4.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"224\" src=\"http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-4-1024x224.png\" alt=\"\" class=\"wp-image-1052\" srcset=\"http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-4-1024x224.png 1024w, http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-4-300x66.png 300w, http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-4-768x168.png 768w, http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-4-1536x336.png 1536w, http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-4-2048x449.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>\u9ed8\u8ba4\u8d26\u53f7\u5bc6\u7801\u90fd\u4e3aroot\uff0c\u4fee\u6539\u8d26\u53f7\u5bc6\u7801\u53ea\u9700\u8981\u5230conf\u4e2d\u4fee\u6539\u5373\u53ef\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u5728idea\u4e2d\u521b\u5efa\u5fae\u670d\u52a1\u9879\u76ee<\/h2>\n\n\n\n<p>\u4e00\u822c\u9700\u8981\u81f3\u5c11\u521b\u5efa\u4e09\u4e2a\u5de5\u7a0b\uff0c\u5982\u4e0b\u56fe\u6240\u793a\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image.png\"><img loading=\"lazy\" decoding=\"async\" width=\"630\" height=\"360\" src=\"http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image.png\" alt=\"\" class=\"wp-image-1047\" srcset=\"http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image.png 630w, http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-300x171.png 300w\" sizes=\"auto, (max-width: 630px) 100vw, 630px\" \/><\/a><\/figure>\n\n\n\n<p><strong>\u5148\u521b\u5efa\u4e00\u4e2a\u7236\u5de5\u7a0b\uff08\u793a\u4f8b\uff1asway-doctor\uff09\uff0c\u4e3a\u666e\u901a\u7684maven\u9879\u76ee\u5373\u53ef<\/strong><\/p>\n\n\n\n<p>\u5f15\u5165dubbo\u548czookeeper\u4f9d\u8d56\uff0c\u8fd9\u6837\u5c31\u4e0d\u9700\u8981\u5b50\u9879\u76ee\u91cd\u590d\u5f15\u7528\u4e86\u3002<\/p>\n\n\n\n<p>pom\u6587\u4ef6\u5982\u4e0b\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=\"\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?>\n&lt;project xmlns=\"http:\/\/maven.apache.org\/POM\/4.0.0\" xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\n         xsi:schemaLocation=\"http:\/\/maven.apache.org\/POM\/4.0.0 https:\/\/maven.apache.org\/xsd\/maven-4.0.0.xsd\">\n    &lt;modelVersion>4.0.0&lt;\/modelVersion>\n\n    &lt;!--springboot\u7248\u672c-->\n    &lt;parent>\n        &lt;groupId>org.springframework.boot&lt;\/groupId>\n        &lt;artifactId>spring-boot-starter-parent&lt;\/artifactId>\n        &lt;version>2.7.11&lt;\/version>\n        &lt;relativePath\/> &lt;!-- lookup parent from repository -->\n    &lt;\/parent>\n\n    &lt;!--\u5f53\u524d\u5de5\u7a0b\u7684\u7248\u672c\u4fe1\u606f-->\n    &lt;groupId>cn.com.sway.doctor&lt;\/groupId>\n    &lt;artifactId>sway-doctor&lt;\/artifactId>\n    &lt;version>0.0.1-SNAPSHOT&lt;\/version>\n    &lt;name>sway-doctor&lt;\/name>\n    &lt;description>sway-doctor&lt;\/description>\n\n    &lt;!--\u8bbe\u7f6e\u7236\u5de5\u7a0b\u7684\u5305\u4e3apom-->\n    &lt;packaging>pom&lt;\/packaging>\n\n    &lt;!--\u5f15\u5165\u5b50\u6a21\u5757-->\n    &lt;modules>\n        &lt;module>service-common&lt;\/module>\n        &lt;module>service-disease&lt;\/module>\n        &lt;module>service-main&lt;\/module>\n    &lt;\/modules>\n\n    &lt;!--\u7248\u672c\u63a7\u5236-->\n    &lt;properties>\n        &lt;java.version>1.8&lt;\/java.version>\n        &lt;dubbo.version>3.2.0&lt;\/dubbo.version>\n    &lt;\/properties>\n\n    &lt;dependencies>\n        &lt;dependency>\n            &lt;groupId>org.springframework.boot&lt;\/groupId>\n            &lt;artifactId>spring-boot-starter&lt;\/artifactId>\n        &lt;\/dependency>\n\n        &lt;dependency>\n            &lt;groupId>org.springframework.boot&lt;\/groupId>\n            &lt;artifactId>spring-boot-starter-test&lt;\/artifactId>\n            &lt;scope>test&lt;\/scope>\n        &lt;\/dependency>\n\n        &lt;!-- \u5f15\u5165spring-boot-starter\u4ee5\u53cadubbo\u548ccurator\u7684\u4f9d\u8d56 -->\n        &lt;dependency>\n            &lt;groupId>org.apache.dubbo&lt;\/groupId>\n            &lt;artifactId>dubbo-spring-boot-starter&lt;\/artifactId>\n            &lt;version>${dubbo.version}&lt;\/version>\n        &lt;\/dependency>\n        &lt;dependency>\n            &lt;groupId>org.apache.dubbo&lt;\/groupId>\n            &lt;artifactId>dubbo&lt;\/artifactId>\n            &lt;version>${dubbo.version}&lt;\/version>\n        &lt;\/dependency>\n        &lt;!-- \u6574\u5408dubbo\u4e0ezookeeper -->\n        &lt;dependency>\n            &lt;groupId>org.apache.dubbo&lt;\/groupId>\n            &lt;artifactId>dubbo-dependencies-zookeeper&lt;\/artifactId>\n            &lt;version>${dubbo.version}&lt;\/version>\n            &lt;type>pom&lt;\/type>\n        &lt;\/dependency>\n\n        &lt;!--\u5f15\u5165\u516c\u5171\u5de5\u7a0b-->\n        &lt;dependency>\n            &lt;groupId>cn.com.sway.doctor&lt;\/groupId>\n            &lt;artifactId>service-common&lt;\/artifactId>\n            &lt;version>0.0.1-SNAPSHOT&lt;\/version>\n            &lt;scope>compile&lt;\/scope>\n        &lt;\/dependency>\n\n        &lt;!-- https:\/\/mvnrepository.com\/artifact\/org.projectlombok\/lombok -->\n        &lt;dependency>\n            &lt;groupId>org.projectlombok&lt;\/groupId>\n            &lt;artifactId>lombok&lt;\/artifactId>\n        &lt;\/dependency>\n\n    &lt;\/dependencies>\n\n&lt;\/project>\n<\/pre>\n\n\n\n<p><strong>\u518d\u521b\u5efa\u516c\u5171\u5de5\u7a0b\uff0c\u4e00\u822c\u547d\u540d\u4e3acommon\uff08\u793a\u4f8b\uff1aservice-common\uff09\uff0c\u4e3a\u666e\u901a\u7684maven\u9879\u76ee\u5373\u53ef<\/strong><\/p>\n\n\n\n<p>\u4e3b\u8981\u5b58\u653e\u516c\u5171\u7684\u5b9e\u4f53\u7c7b\u4ee5\u53ca\u63a5\u53e3\u7c7b\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"594\" height=\"433\" src=\"http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-1.png\" alt=\"\" class=\"wp-image-1048\" srcset=\"http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-1.png 594w, http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-1-300x219.png 300w\" sizes=\"auto, (max-width: 594px) 100vw, 594px\" \/><\/a><\/figure>\n\n\n\n<p>\u540c\u65f6\u5728\u7236\u5de5\u7a0b\u7684pom\u6587\u4ef6\u4e2d\u5f15\u5165\u8be5\u4f9d\u8d56\u3002<\/p>\n\n\n\n<p>Disease\u4ee3\u7801\u5982\u4e0b\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=\"\">package cn.com.sway.doctor.service.common.model;\n\nimport lombok.Data;\n\nimport java.io.Serializable;\n\n@Data\npublic class Disease implements Serializable {\n\n    private String id;\n\n    private String name;\n\n}\n<\/pre>\n\n\n\n<p>DiseaseService\u4ee3\u7801\u5982\u4e0b\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=\"\">package cn.com.sway.doctor.service.common.service;\n\nimport cn.com.sway.doctor.service.common.model.Disease;\n\nimport java.util.List;\n\npublic interface DiseaseService {\n\n    List&lt;Disease> getList();\n\n}\n<\/pre>\n\n\n\n<p>pom\u6587\u4ef6\u4ee3\u7801\u5982\u4e0b\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=\"\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?>\n&lt;project xmlns=\"http:\/\/maven.apache.org\/POM\/4.0.0\"\n         xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\n         xsi:schemaLocation=\"http:\/\/maven.apache.org\/POM\/4.0.0 http:\/\/maven.apache.org\/xsd\/maven-4.0.0.xsd\">\n    &lt;parent>\n        &lt;artifactId>sway-doctor&lt;\/artifactId>\n        &lt;groupId>cn.com.sway.doctor&lt;\/groupId>\n        &lt;version>0.0.1-SNAPSHOT&lt;\/version>\n    &lt;\/parent>\n    &lt;modelVersion>4.0.0&lt;\/modelVersion>\n\n    &lt;artifactId>service-common&lt;\/artifactId>\n\n&lt;\/project><\/pre>\n\n\n\n<p><strong>\u63a5\u7740\u521b\u5efa\u5fae\u670d\u52a1SpringBoot\u5de5\u7a0b\uff0c\u4e00\u822c\u4e3aprovider\u6216\u8005\u5fae\u670d\u52a1\u7684\u540d\u79f0<\/strong><\/p>\n\n\n\n<p>\u5b9e\u73b0\u516c\u5171\u5de5\u7a0b\u7684service\u63a5\u53e3\uff0c\u5e76\u914d\u7f6edubbo\u548czookeeper\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"506\" height=\"425\" src=\"http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-2.png\" alt=\"\" class=\"wp-image-1050\" srcset=\"http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-2.png 506w, http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-2-300x252.png 300w\" sizes=\"auto, (max-width: 506px) 100vw, 506px\" \/><\/a><\/figure>\n\n\n\n<p>pom.xml\u7684\u4ee3\u7801\u5982\u4e0b\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=\"\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?>\n&lt;project xmlns=\"http:\/\/maven.apache.org\/POM\/4.0.0\" xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\n         xsi:schemaLocation=\"http:\/\/maven.apache.org\/POM\/4.0.0 https:\/\/maven.apache.org\/xsd\/maven-4.0.0.xsd\">\n    &lt;modelVersion>4.0.0&lt;\/modelVersion>\n\n    &lt;parent>\n        &lt;!--\u539f\u6765\u7684\u72ec\u7acbspringboot\u5de5\u7a0b\u914d\u7f6e\u9700\u8981\u6ce8\u91ca\u6389-->\n        &lt;!--&lt;groupId>org.springframework.boot&lt;\/groupId>\n        &lt;artifactId>spring-boot-starter-parent&lt;\/artifactId>\n        &lt;version>2.7.11&lt;\/version>\n        &lt;relativePath\/> &amp;lt;!&amp;ndash; lookup parent from repository &amp;ndash;&amp;gt;-->\n\n        &lt;!--\u5f15\u5165\u7236\u5de5\u7a0b\u7684pom\u4fe1\u606f-->\n        &lt;artifactId>sway-doctor&lt;\/artifactId>\n        &lt;groupId>cn.com.sway.doctor&lt;\/groupId>\n        &lt;version>0.0.1-SNAPSHOT&lt;\/version>\n    &lt;\/parent>\n\n    &lt;groupId>cn.com.sway.doctor&lt;\/groupId>\n    &lt;artifactId>service-disease&lt;\/artifactId>\n    &lt;version>0.0.1-SNAPSHOT&lt;\/version>\n\n    &lt;!--\u8bbe\u7f6e\u6253\u5305\u65b9\u5f0f-->\n    &lt;packaging>jar&lt;\/packaging>\n\n    &lt;name>service-disease&lt;\/name>\n    &lt;description>service-disease&lt;\/description>\n    &lt;properties>\n        &lt;java.version>1.8&lt;\/java.version>\n    &lt;\/properties>\n\n    &lt;dependencies>\n        &lt;dependency>\n            &lt;groupId>org.springframework.boot&lt;\/groupId>\n            &lt;artifactId>spring-boot-starter&lt;\/artifactId>\n        &lt;\/dependency>\n\n        &lt;dependency>\n            &lt;groupId>org.springframework.boot&lt;\/groupId>\n            &lt;artifactId>spring-boot-starter-test&lt;\/artifactId>\n            &lt;scope>test&lt;\/scope>\n        &lt;\/dependency>\n\n\n        &lt;!-- REST support dependencies -->\n        &lt;!-- https:\/\/mvnrepository.com\/artifact\/org.jboss.resteasy\/resteasy-client -->\n        &lt;dependency>\n            &lt;groupId>org.jboss.resteasy&lt;\/groupId>\n            &lt;artifactId>resteasy-client&lt;\/artifactId>\n            &lt;version>4.7.7.Final&lt;\/version>\n        &lt;\/dependency>\n        &lt;!-- https:\/\/mvnrepository.com\/artifact\/org.jboss.resteasy\/resteasy-netty4 -->\n        &lt;dependency>\n            &lt;groupId>org.jboss.resteasy&lt;\/groupId>\n            &lt;artifactId>resteasy-netty4&lt;\/artifactId>\n            &lt;version>4.7.7.Final&lt;\/version>\n            &lt;scope>test&lt;\/scope>\n        &lt;\/dependency>\n\n    &lt;\/dependencies>\n\n    &lt;build>\n        &lt;plugins>\n            &lt;plugin>\n                &lt;groupId>org.springframework.boot&lt;\/groupId>\n                &lt;artifactId>spring-boot-maven-plugin&lt;\/artifactId>\n            &lt;\/plugin>\n        &lt;\/plugins>\n    &lt;\/build>\n\n&lt;\/project>\n<\/pre>\n\n\n\n<p>DiseaseServiceImpl\u7684\u4ee3\u7801\u5982\u4e0b\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=\"\">package cn.com.sway.doctor.service.disease.impl;\n\nimport cn.com.sway.doctor.service.common.model.Disease;\nimport cn.com.sway.doctor.service.common.service.DiseaseService;\nimport org.apache.dubbo.config.annotation.DubboService;\nimport org.apache.dubbo.config.annotation.Service;\n\nimport javax.ws.rs.Consumes;\nimport javax.ws.rs.GET;\nimport javax.ws.rs.Path;\nimport javax.ws.rs.Produces;\nimport javax.ws.rs.core.MediaType;\nimport java.util.ArrayList;\nimport java.util.List;\n\n@DubboService(protocol = {\"dubbo\", \"rest\"})\n@Path(\"\/diseases\")\npublic class DiseaseServiceImpl implements DiseaseService {\n\n    @GET\n    @Path(\"\")\n    @Produces({MediaType.APPLICATION_JSON})\n    @Consumes({MediaType.APPLICATION_JSON})\n    @Override\n    public List&lt;Disease> getList() {\n\n        List&lt;Disease> list = new ArrayList&lt;Disease>();\n\n        Disease ganmao = new Disease();\n        ganmao.setId(\"1\");\n        ganmao.setName(\"\u611f\u5192\");\n        list.add(ganmao);\n\n        Disease kesou = new Disease();\n        kesou.setId(\"2\");\n        kesou.setName(\"\u54b3\u55fd\");\n        list.add(kesou);\n\n        Disease fashao = new Disease();\n        fashao.setId(\"3\");\n        fashao.setName(\"\u53d1\u70e7\");\n        list.add(fashao);\n\n        return list;\n    }\n}\n<\/pre>\n\n\n\n<p>application.yaml\u6587\u4ef6\u914d\u7f6e\u5982\u4e0b\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=\"\"># -------------------- Dubbo \u914d\u7f6e BEGIN --------------------\ndubbo:\n  registry: # \u5355\u6ce8\u518c\u4e2d\u5fc3,\u6ce8\u610f\u5c5e\u6027\u7ea7\u522b:dubbo.registry,\u6ce8\u610f\u591a\u6ce8\u518c\u4e2d\u5fc3\u683c\u5f0f:@Service(registry = {\"registry1\",\"registry2\",\"registry3\"})\n    register: true # true(\u9ed8\u8ba4), false:\u8868\u793a\u670d\u52a1\u4e0d\u6ce8\u518c\u5230\u6ce8\u518c\u4e2d\u5fc3(\u53ea\u8ba2\u9605,\u76f4\u8fde\u670d\u52a1\u6b63\u5e38),\u4e14dubbo-admin\u4e0d\u663e\u793a\n    address: zookeeper:\/\/127.0.0.1:2181\n#  registries: # \u591a\u6ce8\u518c\u4e2d\u5fc3,\u6ce8\u610f\u5c5e\u6027\u7ea7\u522b:dubbo.registries, \u4e0d\u540c\u7684\u65b9\u6cd5\u53ef\u4ee5\u7528@Service(registry = {\"registry2\"}),\u6307\u5b9a\u4e0d\u540c\u7684\u6ce8\u518c\u4e2d\u5fc3\n#    provider1:\n#      register: false #\u9ed8\u8ba4true, false:\u8868\u793a\u670d\u52a1\u4e0d\u6ce8\u518c\u5230\u6ce8\u518c\u4e2d\u5fc3\n#      address: zookeeper:\/\/55.55.55.82:2181\n#    provider2:\n#      register: false\n#      address: zookeeper:\/\/55.55.55.196:2181\n#    provider3:\n#      register: false\n#      address: zookeeper:\/\/55.55.55.139:2181\n  application:\n    name: sway-doctor-service-disease\n  #    qos-enable: true # \u9ed8\u8ba4\u503c true, \u662f\u5426\u5141\u8bb8\u5728\u7ebf\u8fd0\u7ef4, \u914d\u7f6e\u548c\u67e5\u8be2\u670d\u52a1\n  #    qos-port: 22222 # \u9ed8\u8ba4\u503c2222\n  #    qos-accept-foreign-ip: false # \u9ed8\u8ba4false , \u4e0d\u5141\u8bb8\u8fdc\u7a0b\u8bbf\u95ee telnet\n  scan:\n    base-packages: cn.com.sway.doctor.service.disease.serivce\n  protocols:\n    dubbo:\n      name: dubbo\n      port: 28080\n    rest:\n      name: rest\n      port: 8081\n      server: netty\n  provider:\n    retries: 0        # \u670d\u52a1\u63d0\u4f9b\u8005\u65e0\u9700\u91cd\u8bd5\n    timeout: 6000     # \u9ed8\u8ba4\u53ea\u67091s\n# -------------------- Dubbo \u914d\u7f6e END --------------------<\/pre>\n\n\n\n<p>\u6700\u540e\u8fd8\u9700\u8981\u5728SpringBoot\u7684\u542f\u52a8\u7c7b\u4e2d\u589e\u52a0@EnableDubbo\u6ce8\u89e3\uff0c\u542f\u52a8\u540e\u53ef\u4ee5\u5728Dubbo\u4e2d\u770b\u89c1\u5bf9\u5e94\u7684\u670d\u52a1\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-5.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"416\" src=\"http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-5-1024x416.png\" alt=\"\" class=\"wp-image-1053\" srcset=\"http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-5-1024x416.png 1024w, http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-5-300x122.png 300w, http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-5-768x312.png 768w, http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-5-1536x624.png 1536w, http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-5-2048x833.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p><strong>\u6700\u540e\u521b\u5efa\u6d88\u8d39\u8005\uff0c\u4e00\u822c\u4e3aconsumer\u6216main<\/strong><\/p>\n\n\n\n<p>\u6525\u5199RestController\uff0c\u4ee5\u4fbf\u8ba9\u5916\u90e8\u8c03\u7528\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-6.png\"><img loading=\"lazy\" decoding=\"async\" width=\"482\" height=\"543\" src=\"http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-6.png\" alt=\"\" class=\"wp-image-1054\" srcset=\"http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-6.png 482w, http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-6-266x300.png 266w\" sizes=\"auto, (max-width: 482px) 100vw, 482px\" \/><\/a><\/figure>\n\n\n\n<p>DiseaseApiControllerV1\u7684\u4ee3\u7801\u5982\u4e0b\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=\"\">package cn.com.sway.doctor.service.main.controller.api.v1;\n\nimport cn.com.sway.doctor.service.common.service.DiseaseService;\nimport org.apache.dubbo.config.annotation.Reference;\nimport org.springframework.web.bind.annotation.GetMapping;\nimport org.springframework.web.bind.annotation.RequestMapping;\nimport org.springframework.web.bind.annotation.RestController;\n\n@RestController\n@RequestMapping(\"\/api\/v1\/diseases\")\npublic class DiseaseApiControllerV1 {\n\n    @Reference\n    private DiseaseService diseasetService;\n\n    @GetMapping(\"\")\n    public Object student(){\n        return this.diseasetService.getList();\n    }\n\n}\n<\/pre>\n\n\n\n<p>\u914d\u7f6e\u6587\u4ef6application.properties\u7684\u4ee3\u7801\u5982\u4e0b\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=\"\">server.port=8000  \n\ndubbo.application.name=sway-doctor-service-main\ndubbo.registry.address=zookeeper:\/\/127.0.0.1:2181\ndubbo.monitor.protocol=registry<\/pre>\n\n\n\n<p>\u542f\u52a8\u540e\u67e5\u770bdubbo-admin\u540e\u53ef\u4ee5\u770b\u5230\u5bf9\u5e94\u7684\u670d\u52a1\u6d88\u8d39\u8005\u4fe1\u606f\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-7.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"406\" src=\"http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-7-1024x406.png\" alt=\"\" class=\"wp-image-1055\" srcset=\"http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-7-1024x406.png 1024w, http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-7-300x119.png 300w, http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-7-768x305.png 768w, http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-7-1536x610.png 1536w, http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-7-2048x813.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>\u6d4b\u8bd5\u670d\u52a1\u8c03\u7528\u7684\u7ed3\u679c\uff0c\u8bbf\u95eehttp:\/\/localhost:8000\/api\/v1\/diseases\uff0c\u8f93\u51fa\u7ed3\u679c\u5982\u4e0b\u56fe\u6240\u793a\u5373\u4e3a\u6210\u529f\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-8.png\"><img loading=\"lazy\" decoding=\"async\" width=\"853\" height=\"176\" src=\"http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-8.png\" alt=\"\" class=\"wp-image-1056\" srcset=\"http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-8.png 853w, http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-8-300x62.png 300w, http:\/\/blog.sway.com.cn\/wp-content\/uploads\/2023\/04\/image-8-768x158.png 768w\" sizes=\"auto, (max-width: 853px) 100vw, 853px\" \/><\/a><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>\u5b89\u88c5Zookeeper https:\/\/www.apache.org\/dyn\/closer.lua\/zooke [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1045","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/blog.sway.com.cn\/index.php?rest_route=\/wp\/v2\/posts\/1045","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.sway.com.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.sway.com.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.sway.com.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.sway.com.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1045"}],"version-history":[{"count":7,"href":"http:\/\/blog.sway.com.cn\/index.php?rest_route=\/wp\/v2\/posts\/1045\/revisions"}],"predecessor-version":[{"id":1062,"href":"http:\/\/blog.sway.com.cn\/index.php?rest_route=\/wp\/v2\/posts\/1045\/revisions\/1062"}],"wp:attachment":[{"href":"http:\/\/blog.sway.com.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1045"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.sway.com.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1045"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.sway.com.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1045"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}