{"id":1808,"date":"2023-03-27T22:54:07","date_gmt":"2023-03-27T14:54:07","guid":{"rendered":"https:\/\/www.appblog.cn\/?p=1808"},"modified":"2023-04-22T09:24:24","modified_gmt":"2023-04-22T01:24:24","slug":"spring-cloud-alibaba-sidecar-multilingual-microservice-heterogeneous","status":"publish","type":"post","link":"https:\/\/www.appblog.cn\/index.php\/2023\/03\/27\/spring-cloud-alibaba-sidecar-multilingual-microservice-heterogeneous\/","title":{"rendered":"Spring Cloud Alibaba Sidecar \u591a\u8bed\u8a00\u5fae\u670d\u52a1\u5f02\u6784"},"content":{"rendered":"<h2>Spring Cloud Alibaba Sidecar \u4ecb\u7ecd<\/h2>\n<p>\u81ea<code>Spring Cloud Alibaba 2.1.1<\/code>\u7248\u672c\u540e\u589e\u52a0\u4e86<code>spring-cloud-alibaba-sidecar<\/code>\u6a21\u5757\u4f5c\u4e3a\u4e00\u4e2a\u4ee3\u7406\u7684\u670d\u52a1\u6765\u95f4\u63a5\u6027\u7684\u8ba9<strong>\u5176\u4ed6\u8bed\u8a00<\/strong>\u53ef\u4ee5\u4f7f\u7528<code>spring cloud alibaba<\/code>\u7b49\u76f8\u5173\u7ec4\u4ef6\u3002\u901a\u8fc7\u4e0e\u7f51\u5173\u6765\u8fdb\u884c\u8def\u7531\u7684\u6620\u5c04\uff0c\u4ece\u800c\u53ef\u4ee5\u505a\u5230\u670d\u52a1\u7684\u83b7\u53d6\uff0c\u7136\u540e\u53ef\u4ee5\u4f7f\u7528<code>Ribbon<\/code>\u95f4\u63a5\u6027\u8c03\u7528\u3002<\/p>\n<p><!-- more --><\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.yezhou.me\/AppBlog\/images\/Java\/Sidecar\u539f\u7406.jpg\" alt=\"Sidecar\u539f\u7406\" \/><\/p>\n<p>\u5982\u4e0a\u56fe\uff0c<code>Spring Cloud<\/code>\u5e94\u7528\u8bf7\u6c42<code>sidercar<\/code>\u7136\u540e\u8f6c\u53d1\u7ed9\u5176\u4ed6\u8bed\u8a00\u7684\u6a21\u5757\uff0c\u4f18\u52bf\u662f\u5bf9\u4e8e\u5f02\u6784\u670d\u52a1\u4ee3\u7801<code>\u96f6\u4fb5\u5165<\/code>\uff0c\u4e0d\u9700\u8981\u76f4\u63a5\u6839\u636e<code>nacos<\/code>\u6216\u5176\u4ed6\u6ce8\u518c\u4e2d\u5fc3<code>api<\/code>\u6ce8\u518c\u7b49<\/p>\n<h2>\u4f7f\u7528\u5165\u95e8<\/h2>\n<h3>\u6784\u5efa\u5176\u4ed6\u8bed\u8a00\u63a5\u53e3\u670d\u52a1<\/h3>\n<ul>\n<li>\u57fa\u4e8e<code>go<\/code>\u5199\u4e2a\u7b80\u5355\u7684\u670d\u52a1\u63a5\u53e3<\/li>\n<\/ul>\n<pre><code>http:\/\/127.0.0.1:8089\/sidecar<\/code><\/pre>\n<pre><code class=\"language-go\">package main\n\nimport (\n    &quot;encoding\/json&quot;\n    &quot;fmt&quot;\n    &quot;log&quot;\n    &quot;net\/http&quot;\n)\n\nfunc main() {\n    http.HandleFunc(&quot;\/sidecar&quot;, sidecar)\n    http.HandleFunc(&quot;\/heath&quot;, health)\n    log.Fatal(http.ListenAndServe(&quot;:8089&quot;, nil))\n}\nfunc sidecar(w http.ResponseWriter, r *http.Request) {\n    _, _ = fmt.Fprintf(w, &quot;hello spring cloud alibaba sidecar&quot;)\n}\n\nfunc health(w http.ResponseWriter, r *http.Request) {\n    w.Header().Set(&quot;Content-Type&quot;, &quot;application\/json&quot;)\n    actuator := make(map[string]string)\n    actuator[&quot;status&quot;] = &quot;UP&quot;\n    _ = json.NewEncoder(w).Encode(actuator)\n}<\/code><\/pre>\n<h2>\u6784\u5efa sidercar \u5e94\u7528<\/h2>\n<ul>\n<li>\u589e\u52a0<code>sidecar<\/code>\u4f9d\u8d56<\/li>\n<\/ul>\n<pre><code class=\"language-xml\">&lt;dependency&gt;\n    &lt;groupId&gt;com.alibaba.cloud&lt;\/groupId&gt;\n    &lt;artifactId&gt;spring-cloud-starter-alibaba-sidecar&lt;\/artifactId&gt;\n    &lt;version&gt;2.1.1.RELEASE&lt;\/version&gt;\n&lt;\/dependency&gt;<\/code><\/pre>\n<ul>\n<li>\u914d\u7f6e<code>application.yml<\/code><\/li>\n<\/ul>\n<pre><code class=\"language-yml\">server:\n  port: 8088\nspring:\n  cloud:\n    nacos:\n      discovery:\n        server-addr: localhost:8848\n  application:\n    name: go-provider\n\n# \u914d\u7f6e\u5f02\u6784\u670d\u52a1\nsidecar:\n  ip: localhost\n  port: 8089\n  health-check-url: http:\/\/localhost:8089\/health<\/code><\/pre>\n<h2>\u6784\u5efa nacos consumer\u5e94\u7528<\/h2>\n<ul>\n<li><code>application.yml<\/code><\/li>\n<\/ul>\n<pre><code class=\"language-yml\">server:\n  port: 8087\nspring:\n  cloud:\n    nacos:\n      discovery:\n        server-addr: localhost:8848\n  application:\n    name: nacos-consumer<\/code><\/pre>\n<ul>\n<li><code>consumer<\/code>\u903b\u8f91<\/li>\n<\/ul>\n<pre><code class=\"language-java\">@RestController\n@EnableDiscoveryClient\n@SpringBootApplication\npublic class NacosConsumerApplication {\n\n    public static void main(String[] args) {\n        SpringApplication.run(NacosConsumerApplication.class, args);\n    }\n\n    @Bean\n    @LoadBalanced\n    public RestTemplate restTemplate() {\n        return new RestTemplate();\n    }\n\n    @Autowired\n    private RestTemplate restTemplate;\n\n    @GetMapping(&quot;\/test&quot;)\n    public String test() {\n        return restTemplate.getForObject(&quot;http:\/\/go-provider\/sidecar&quot;, String.class);\n    }\n\n}<\/code><\/pre>\n<h2>\u6d4b\u8bd5\u4f7f\u7528<\/h2>\n<ul>\n<li>\u8bbf\u95ee<code>spring cloud consumer<\/code>\u5e94\u7528<\/li>\n<\/ul>\n<pre><code>curl http:\/\/localhost:8087\/test   <\/code><\/pre>\n<ul>\n<li>\u8f93\u51fa<code>go-provider<\/code>\u5e94\u7528<\/li>\n<\/ul>\n<pre><code>hello spring cloud alibaba sidecar<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Spring Cloud Alibaba Sidecar \u4ecb\u7ecd \u81eaSpring Cloud Alibaba 2 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[42],"tags":[457,456],"class_list":["post-1808","post","type-post","status-publish","format-standard","hentry","category-spring-cloud","tag-sidecar","tag-spring-cloud-alibaba"],"_links":{"self":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/1808","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/comments?post=1808"}],"version-history":[{"count":0,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/1808\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/media?parent=1808"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/categories?post=1808"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/tags?post=1808"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}