摘要:筆者也是初學者,本文從創建項目工程開始,一步一步開始講解如何創建服務端和客戶端,一起學習,共同進步。下面我們使用工具創建相關項目。配置其中兩個屬性表明這個應用是端,而不是端。至此,端和端已經部署成功。
前言
spring cloud為互聯企業構建微服務提供了一整套的技術組件,其中Eureka是Spring Cloud體系中的核心。Netfix不是一個技術概念,它原本是國外一個視頻網站的名稱。這個視頻網站的技術團隊在微服務方向做了大量實踐,并提供了很多的技術組件,Eureka就是其中之一。筆者也是Spring Cloud初學者,本文從創建項目工程開始,一步一步開始講解如何創建eureka服務端和客戶端,一起學習,共同進步。
本文來源于我的技術博客:http://51think.net
一、什么是eureka我們經常看到一些互聯網企業在描述其技術架構時會使用到Eureka一詞,也聽說過Eureka用于服務注冊發現,并不清楚它是如何整合到應用層的。從代碼結構上來看,Eureka就是一個大jar包集合,maven引入這個jar包集合,并在應用層做簡單配置即可實現服務發現功能。也就是說,Spring Cloud已經將相關功能封裝的很好了,直接引用就行了,這也符合各種流行框架的宗旨,最大程度的降低非業務性的工作量,讓程序員更加專注實現自己的業務功能。Eureka這個組件是不能多帶帶運行的,需要以Springboot作為應用載體,真正的部署到虛機上面才能運行。
二、創建Eureka注冊中心注冊中心,顧名思義,類似于zookeeper一樣,提供服務注冊發現功能,即服務端的服務地址通過注冊中心全部暴露給客戶端,由客戶端實現負載均衡。下面我們使用idea工具創建相關項目。
1、創建一個maven主工程
2、在主工程下創建一個model,本例中命名為spring-cloud-eureka
3、填寫Group和Artifact
4、勾選Eureka Server
5、創建完成之后的pom文件
4.0.0 org.springframework.boot spring-boot-starter-parent 2.1.6.RELEASE com.example spring-cloud-eureka 0.0.1-SNAPSHOT spring-cloud-eureka Demo project for Spring Boot 1.8 Greenwich.SR2 org.springframework.cloud spring-cloud-starter-netflix-eureka-server org.springframework.boot spring-boot-starter-test test org.springframework.cloud spring-cloud-dependencies ${spring-cloud.version} pom import org.springframework.boot spring-boot-maven-plugin
pom文件中只有一個關鍵的spring-cloud-starter-netflix-eureka-server包,其實這個包下面依賴了很多子包,如下圖:
6、找到Springboot的啟動類,加上@EnableEurekaServer注解
@EnableEurekaServer代表這個springboot應用是一個注冊中心。
@EnableEurekaServer @SpringBootApplication public class EurekaServerApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerApplication.class, args); } }
7、配置application.yml
server: port: 8010 eureka: instance: hostname: localhost client: registerWithEureka: false fetchRegistry: false serviceUrl: defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
其中兩個屬性registerWithEureka: false fetchRegistry: false表明這個應用是Eureka Server端,而不是Client端。defaultZone用來申明這個注冊中心的地址,后面創建Eureka Client端時也要申明這個地址,以便向注冊中心注冊。
三、創建一個服務生產者應用這里我們要創建一個springboot應用作為服務的生產者,并且能夠將服務注冊到注冊中心。對于整個系統而言,我們創建的是一個服務端應用供客戶端調用,對于Eureka注冊中心而言,除了注冊中心是Server角色,其他都是Eureka Client角色。具體過程如下:
1、創建model過程與創建Eureka Server類似,名稱為spring-cloud-eureka-myservice
2、pom文件
4.0.0 org.springframework.boot spring-boot-starter-parent 2.1.6.RELEASE com.example spring-cloud-eureka-myservice 0.0.1-SNAPSHOT spring-cloud-eureka-myservice Demo project for Spring Boot 1.8 Greenwich.SR2 org.springframework.cloud spring-cloud-starter-netflix-eureka-client org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-starter-web org.springframework.cloud spring-cloud-dependencies ${spring-cloud.version} pom import org.springframework.boot spring-boot-maven-plugin
大家可以比較一下這個pom文件與之前的pom文件的差別,spring-cloud-starter-netflix-eureka-clien組件和之前注冊中心pom文件中的spring-cloud-starter-netflix-eureka-server相對應。spring-boot-starter-web組件用來提供web訪問能力,我們可以通過瀏覽器來訪問后臺服務。
3、使用@EnableEurekaClient來標注自己的身份
@EnableEurekaClient @SpringBootApplication public class MyServiceApplication { public static void main(String[] args) { SpringApplication.run(MyServiceApplication.class, args); } }
4、配置application.yml
eureka: client: serviceUrl: defaultZone: http://localhost:8010/eureka/ server: port: 8011 spring: application: name: myservice
這個配置項spring.application.name很重要,表明這個應用在微服務架構中的應用名稱,后面的案例中我們可以通過這個名稱來訪問這個服務。
5、啟動注冊中心應用spring-cloud-eureka
6、啟動服務生產者應用spring-cloud-eureka-myservice
7、訪問Eureka面板
Eureka提供一個web訪問頁面,通過這個頁面我們可以看到已注冊的服務列表以及注冊中心應用的狀態。瀏覽器訪問http://localhost:8010,會展現如下頁面:
紅框標注的部分即我們剛剛啟動的spring-cloud-eureka-myservice應用,服務名稱為myservice。
至此,Eureka Server端和Client端已經部署成功。
源碼地址:https://github.com/huangyubia...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/75605.html
摘要:本例中介紹如何使用來完成服務調用并實現負載均衡。即,對于注冊中心而言,生產者和調用者都是端。文件配置如下在文件中,我們將應用命名為,端口為,表示注冊中心地址。 前言 Ribbon是Spring Cloud體系中完成負載均衡的重要組件。Spring Cloud體系中有兩種完成服務調用的組件,一種是Ribbon+RestTemplate,另一種Feign。Feign默認使用的也是Ribbo...
摘要:前言在體系中扮演著統一網關的角色,負責與外部交互。與結合使用,可以根據服務名來訪問后端的服務,對于而言,也是一個。這段代碼表示,如果請求中沒有信息,就會報錯。 前言 Zuul在Spring Cloud 體系中扮演著統一網關的角色,負責與外部交互。用戶可以通過不同的URL特征來訪問不同的后端服務,類似于Nginx代理的效果。Zuul與Eureka結合使用,可以根據服務名來訪問后端的服務,...
摘要:在前面的過程中,我們創建了個服務發現我們使用作為服務發現組件,學習了的使用。加依賴加注解改配置使用項目三部曲,我們可以快速添加一個新組件,并正常使用這個我沒有在項目中實現,但是大家可以和一樣,三部曲搞定。 在前面的過程中,我們創建了4個project: 服務發現 我們使用Eureka 作為服務發現組件,學習了Eureka Server,Eureka Client的使用。 Eureka...
摘要:公眾號樂園的中提供了兩個組件實現軟負載均衡調用,分別是和。是基于和的客戶端負載工具,它是基于實現的,它可以在客戶端配置服務端列表,然后輪詢請求以實現均衡負載。 公眾號:java樂園 spring cloud的Netflix中提供了兩個組件實現軟負載均衡調用,分別是Ribbon和Feign。上一篇和大家一起學習了Ribbon。Ribbon :Spring Cloud Ribbon是基于H...
摘要:客戶端負載均衡器是一個客戶端負載均衡器,可以讓你對和客戶端的行為進行大量控制,已經使用了,因此,如果你使用,此部分也適用。 客戶端負載均衡器:Ribbon Ribbon是一個客戶端負載均衡器,可以讓你對HTTP和TCP客戶端的行為進行大量控制,Feign已經使用了Ribbon,因此,如果你使用@FeignClient,此部分也適用。 Ribbon中的一個核心概念是命名客戶端,每個負載均...
閱讀 3316·2021-11-25 09:43
閱讀 1304·2021-11-23 09:51
閱讀 3609·2021-10-11 11:06
閱讀 3698·2021-08-31 09:41
閱讀 3597·2019-08-30 15:53
閱讀 3510·2019-08-30 15:53
閱讀 965·2019-08-30 15:43
閱讀 3307·2019-08-29 14:02