天天看點

SpringCloud系列二:Springcloud 服務提供者和服務消費者

一.服務提供者

完整的目錄結果如下:

SpringCloud系列二:Springcloud 服務提供者和服務消費者

1. 搭建maven工程(略)

2. 修改pom檔案,引入依賴,注意看關鍵依賴上的注釋

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.wx</groupId>
	<artifactId>cloud_cart_client</artifactId>
	<version>0.0.1-SNAPSHOT</version>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.9.RELEASE</version>
	</parent>

	<!-- 統一配置版本 -->
	<properties>
		<java.version>1.8</java.version>
		<mybatis-spring.version>1.2.1</mybatis-spring.version>
		<druid.version>1.1.10</druid.version>
		<fastjson.version>1.2.31</fastjson.version>
	</properties>
	<!-- 使用dependencyManagement進行版本管理 -->
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>Camden.SR6</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>
	<dependencies>
		<!-- 引入eureka 用戶端依賴 -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka</artifactId>
		</dependency>
		<!-- 引入ribbon 依賴 ,用來實作負載均衡,我們這裡隻是使用,先不作其他介紹 -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-ribbon</artifactId>
		</dependency>
		<!-- fastjson -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>${fastjson.version}</version>
		</dependency>
	</dependencies>
	<build>
		<plugins>
			<!-- 設定通過jdk1.8編譯項目 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
					<encoding>utf-8</encoding>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-resources-plugin</artifactId>
				<configuration>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
			<!-- 可通過maven指令運作項目和打包運作 -->
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<executable>true</executable>
					<includeSystemScope>true</includeSystemScope>
				</configuration>
			</plugin>

		</plugins>
	</build>
</project>
           

3. 編寫springboot配置檔案,如圖:

SpringCloud系列二:Springcloud 服務提供者和服務消費者

4. 建立啟動類:

SpringCloud系列二:Springcloud 服務提供者和服務消費者

5. 對外提供服務的接口如下圖所示:

SpringCloud系列二:Springcloud 服務提供者和服務消費者

6. 啟動并測試:

觀察啟動日志,你會發現有提示說向注冊中心注冊了服務的提示,如下圖

SpringCloud系列二:Springcloud 服務提供者和服務消費者

通路eureka注冊中心,發現服務已經注冊成功了

SpringCloud系列二:Springcloud 服務提供者和服務消費者

二.服務消費者

完整的目錄結果如下:

SpringCloud系列二:Springcloud 服務提供者和服務消費者

1. 搭建maven工程(略)

2. 修改pom檔案,引入依賴,注意看關鍵依賴上的注釋

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.wx</groupId>
	<artifactId>cloud_cart_client</artifactId>
	<version>0.0.1-SNAPSHOT</version>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.9.RELEASE</version>
	</parent>

	<!-- 統一配置版本 -->
	<properties>
		<java.version>1.8</java.version>
		<mybatis-spring.version>1.2.1</mybatis-spring.version>
		<druid.version>1.1.10</druid.version>
		<fastjson.version>1.2.31</fastjson.version>
	</properties>
	<!-- 使用dependencyManagement進行版本管理 -->
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>Camden.SR6</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>
	<dependencies>
		<!-- 引入eureka 用戶端依賴 -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka</artifactId>
		</dependency>
		<!-- 引入ribbon 依賴 ,用來實作負載均衡,我們這裡隻是使用,先不作其他介紹 -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-ribbon</artifactId>
		</dependency>
		<!-- fastjson -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>${fastjson.version}</version>
		</dependency>
	</dependencies>
	<build>
		<plugins>
			<!-- 設定通過jdk1.8編譯項目 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
					<encoding>utf-8</encoding>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-resources-plugin</artifactId>
				<configuration>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
			<!-- 可通過maven指令運作項目和打包運作 -->
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<executable>true</executable>
					<includeSystemScope>true</includeSystemScope>
				</configuration>
			</plugin>

		</plugins>
	</build>
</project>
           

3. 編寫springboot配置檔案,如圖:

SpringCloud系列二:Springcloud 服務提供者和服務消費者

4. 建立啟動類:

SpringCloud系列二:Springcloud 服務提供者和服務消費者
大家發現了沒有,服務提供者和服務消費者都要用到@ EnableDiscoveryClient注解,而且springboot配置的Eureka注冊中心都是一樣的,說明一個應用既可以作為服務提供者,又可以來消費其它的服務。      

5.服務消費的controller如下圖所示:

SpringCloud系列二:Springcloud 服務提供者和服務消費者

6. 啟動并測試:

觀察啟動日志,你會發現有提示說向注冊中心注冊了服務的提示,如下圖

SpringCloud系列二:Springcloud 服務提供者和服務消費者

通路eureka注冊中心,發現服務已經注冊成功了

SpringCloud系列二:Springcloud 服務提供者和服務消費者

接下來,我們進行一下服務消費,如圖所示:

SpringCloud系列二:Springcloud 服務提供者和服務消費者

三.總結

以上執行個體實作了基本的服務治理:

通過spring-cloud-starter-eureka-server和@EnableEurekaServer實作服務注冊中心

通過spring-cloud-starter-eureka和@EnableDiscoveryClient注冊到【注冊中心】并提供服務

通過spring-cloud-starter-eureka和@EnableDiscoveryClient注冊到【注冊中心】并發現服務

繼續閱讀