1. 程式人生 > >Spring Cloud微學習(三)Eureka應用——服務間通訊

Spring Cloud微學習(三)Eureka應用——服務間通訊

微服務可以在“自己的程式”中執行,並通過“輕量級裝置與HTTP型API進行溝通”。這裡的溝通就是本節要說的服務間通訊。即各個微服務註冊到Eureka服務註冊中心,這些微服務之間的通訊

建立服務提供者

啟動上一節 Eureka入門——叢集的服務內容,把hello-service作為服務提供者,通過java -jar hello.jar --server.port=8181java -jar hello.jar --server.port=8282啟動兩個hello-service服務,開啟Eureka資訊面板可以看到兩個HELLO-SERVICE例項
這裡寫圖片描述

建立服務消費者

新建Spring Boot專案MeetSpringCloud

,spring.application.name=ribbon-consumer(別懷疑為什麼叫ribbon)在pom.xml中增加ribbon依賴

<dependency>
    <groupid>org.springframework.cloud</groupid>
    <artifactid>spring-cloud-starter-ribbon</artifactid>
</dependency>

修改主類MeetSpringCloud.java如下

@EnableDiscoveryClient
@SpringBootApplication
public class MeetSpringCloudApplication { @Bean @LoadBalanced RestTemplate restTemplate(){ return new RestTemplate(); } public static void main(String[] args) { SpringApplication.run(MeetSpringCloudApplication.class, args); } }

在包com.centerm.controller下建立類ConsumerController.java

如下,消費HELLO-SERVICE提供的getIndex服務

@RestController
@RequestMapping("")
public class ConsumerController {
    @Autowired
    RestTemplate restTemplate;

    @GetMapping("ribbon-consumer")
    public String helloConsumer() {
        return restTemplate.getForEntity("http://HELLO-SERVICE/getIndex",
                String.class).getBody();
    }
}

修改application.yml如下:

server:
  port: 9091
eureka:
  client:
    serviceUrl:
      defaultZone: http://peer1:11111/eureka/,http://peer2:22222/eureka/
spring:
  application:
    name: ribbon-consumer

執行程式,開啟Eureka資訊面板
這裡寫圖片描述

體驗消費結果

這裡寫圖片描述

檢視ribbon-consumer的日誌可以看到下面的資訊,列出了可用服務的列表以及訪問狀態等資訊,有關Ribbon的詳細介紹會在後面的章節中涉及

DynamicServerListLoadBalancer for client HELLO-SERVICE initialized: DynamicServerListLoadBalancer:{NFLoadBalancer:name=HELLO-SERVICE,current list of Servers=[AGOD21-05021513:8181, AGOD21-05021513:8282],Load balancer stats=Zone stats: {defaultzone=[Zone:defaultzone;   Instance count:2;   Active connections count: 0;    Circuit breaker tripped count: 0;   Active connections per server: 0.0;]
},Server stats: [[Server:AGOD21-05021513:8282;  Zone:defaultZone;   Total Requests:0;   Successive connection failure:0;    Total blackout seconds:0;   Last connection made:Thu Jan 01 08:00:00 CST 1970;  First connection made: Thu Jan 01 08:00:00 CST 1970;    Active Connections:0;   total failure count in last (1000) msecs:0; average resp time:0.0;  90 percentile resp time:0.0;    95 percentile resp time:0.0;    min resp time:0.0;  max resp time:0.0;  stddev resp time:0.0]
, [Server:AGOD21-05021513:8181; Zone:defaultZone;   Total Requests:0;   Successive connection failure:0;    Total blackout seconds:0;   Last connection made:Thu Jan 01 08:00:00 CST 1970;  First connection made: Thu Jan 01 08:00:00 CST 1970;    Active Connections:0;   total failure count in last (1000) msecs:0; average resp time:0.0;  90 percentile resp time:0.0;    95 percentile resp time:0.0;    min resp time:0.0;  max resp time:0.0;  stddev resp time:0.0]
]}ServerList:org.springf[email protected]1c0a0a56

相關推薦

Spring Cloud學習Eureka應用——服務通訊

微服務可以在“自己的程式”中執行,並通過“輕量級裝置與HTTP型API進行溝通”。這裡的溝通就是本節要說的服務間通訊。即各個微服務註冊到Eureka服務註冊中心,這些微服務之間的通訊 建立服務提供者 啟動上一節 Eureka入門——叢集的服務內容

Spring Cloud學習Eureka入門——叢集

引言:上一節 Eureka初探中我們介紹了Eureka服務端以及客戶端的基本搭建方法,那麼考慮如果Eureka所在的伺服器掛掉了,就相當於所以客戶端的通訊連線斷了。這一節將介紹如何降低出現這種問題

spring cloud系列教程4--eureka註冊中心叢集配置,服務註冊資訊完善

給大家推薦個靠譜的公眾號程式設計師探索之路,大家一起加油 ​   1.Eureka是什麼 Eureka是Netflix的一個子模組之一,AP設計原則。Eureka是一個以及Rest的服務,用於定位服務,以實現雲端中間層服務發現和故障轉移。服務註冊與發現對於微服務架構來

Spring Cloud Commons教程忽略網絡接口

ech 什麽 targe 地址 分享圖片 ans str log list 有時,忽略某些命名網絡接口是有用的,因此可以將其從服務發現註冊中排除(例如,在Docker容器中運行)。可以設置正則表達式的列表,這將導致所需的網絡接口被忽略。以下配置將忽略“docker0”接口

Spring Cloud Stream教程持續發布 - 訂閱支持

點對點 cst 服務 均值 而不是 兩個 搭建 另一個 進行 應用之間的通信遵循發布訂閱模式,其中通過共享主題廣播數據。這可以在下圖中看到,它顯示了一組交互式的Spring Cloud Stream應用程序的典型部署。 SCSt傳感器圖6. Spring Cloud Str

Spring極簡學習例項化Bean的方法有兩種

其實例項化一個Bean並沒有那麼複雜,不就是將new Bean()的過程放到Spring這裡來實現了嗎? 其實的確如此,當然了,之前的設計模式中的例項化Bean的方式Spring也得支援支援吧。 一、最直觀例項化(反射模式) xml配置 <bean id="car1

Spring Cloud 元件搭建Eureka服務發現

Spring Cloud生態圈目前有21個子專案來共同構建,解決了目前微服務系統的很多問題,廢話不多說,直接上其最普通簡單的Eureka服務發現與註冊中心搭建過程。本系列教材依照1.3.5.RELEASE版本,該版本比較穩定,JDK要求1.7以上。 1、mic

Spring Cloud 應用篇 之 Spring Cloud Sleuth + Zipkin修改資料儲存方式

(一)簡介預設情況下,Zipkin Server 會將跟蹤資訊儲存在記憶體中,每次重啟 Zipkin Server 都會使之前收集的跟蹤資訊丟失,並且當有大量跟蹤資訊時,記憶體儲存也會造成效能瓶頸,所以通常我們都需要將跟蹤資訊儲存到外部元件中,如 Mysql。由於 Sprin

Spring Cloud學習 服務治理!

  前言:之前網上學習過Spring Cloud,對於工作上需要是足夠了,總歸對於一些方面一知半解,最近難得有些閒暇時間,有幸讀了崔永超先生的《Spring Cloud 微服務實戰》,一方面記錄下自己的學習歷程和讀後感,一方面分享下自己對Spring Cloud微服務的一些見解,寫下此文。  注意:本文著重於

Spring Boot參考教程內部應用監控Actuator

使用方式 實現類 pat igp pid localhost aid 倉庫 默認 3. 內部應用監控(Actuator) 如上2.4中所述,傳統spring工程中工程的初始化過程,bean的生命周期,應用的內部健康情況均無法監控,為了解決這個問題,spring boot提供

Hadoop權威指南學習——MapReduce應用開發

開發MapReduce程式,有一個特定流程:1.寫map和reduce函式,並經過單元測試;2. 編寫本地測試程式執行作業;3. 在叢集上執行,使用IsolationRunner在失敗的相同輸入資料上執行任務;4. 優化調整,任務剖析,Hadoop提供鉤子(hook)輔助分

Spring Cloud Alibaba系列nacos作為服務配置中心

> Nacos 提供用於儲存配置和其他元資料的 key/value 儲存,為分散式系統中的外部化配置提供伺服器端和客戶端支援。使用 Spring Cloud Alibaba Nacos Config,您可以在 Nacos Server 集中管理你 Spring Cloud 應用的外部屬性配置。 首先我

Spring Cloud Alibaba系列sentinel實現服務限流降級

## 一、sentinel是什麼 sentinel的官方名稱叫分散式系統的流量防衛兵。Sentinel 以流量為切入點,從流量控制、熔斷降級、系統負載保護等多個維度保護服務的穩定性。在Spring Cloud專案中最開始我們使用的是Hystrix,目前已停止更新了。現在Spring Cloud官方推薦的是r

程序與執行緒——程序/執行緒通訊

在使用者空間中建立執行緒   用庫函式實現執行緒(《現代作業系統》 P61) #include<pthread.h> #include<stdio.h> #include<stdlib.h> #define NUMBER_OF_THREAD

(1)執行緒通訊---wait和notify的使用

這篇部落格記錄執行緒間通訊相關api使用以及理解。 首先第一點,我之前的部落格裡的執行緒之間也是通訊的,但是他們的通訊是建立在訪問的是同一個變數上的,相當於是變數、資料層面上的通訊,而下面要講的是執行緒層面上的通訊,這種比前者更加可控。 Wait和notify機制 首先明白為什麼會出現這個機制。 目的:舉個例

Spring Cloud學習Feign簡單使用

  前面瞭解瞭如何通過RestTemplate+Ribbon去消費服務,這裡講述如何通過Feign去消費服務。   Feign是一個宣告式的偽Http客戶端,它使得寫Http客戶端變得更簡單。使用Feign,只需要建立一個介面並註解。它具有可插拔的註解特性,可

Spring cloud Eureka服務註冊及發現發現使用服務

Feign是一個宣告式的Web Service客戶端,它使得編寫Web Serivce客戶端變得更加簡單。我們只需要使用Feign來建立一個介面並用註解來配置它既可完成。具體Feign的解釋請看:Spring Cloud Feign詮釋 下面,通過一個例子

Spring Cloud構建服務架構高可用服務註冊中心

前言在Spring Cloud系列文章的開始,我們就介紹了服務註冊與發現,其中,主要演示瞭如何構建和啟動服務註冊中心Eureka Server,以及如何將服務註冊到Eureka Server中,但是在之前的示例中,這個服務註冊中心是單點的,顯然這並不適合應用於線上生產環境,那

Spring Boot學習

src pack art tin pre size -s script jar Spring boot實戰 —— Hello Word 1、創建maven項目 2、pom.xml文件 <?xml version="1.0" encoding="UTF-8"?>

服務架構 SpringCloudEureka註冊中心集群篇

ima static ice fff active hostname 需要 lee 分別是 一:集群環境搭建第一步:我們新建兩個註冊中心工程一個叫eureka_register_service_master、另外一個叫eureka_register_service_back