spring cloud学习之三:服务治理

本文深入解析微服务架构中服务治理的核心概念,通过Spring Cloud Netflix Eureka实现服务注册与发现,构建分布式系统的服务管理机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

对服务治理的理解

服务治理是微服务的核心基础模块,他的作用是用来实现各个微服务实例的自动化注册与发现。

个人理解:在分布式系统中每个应用服务会分别部署到多台服务器上,也就会产生对于同一个接口的请求会有不同的服务器上(同一应用)的响应。对此,就需要对这些服务进行管理(服务注册、服务发现)。服务注册--每个应用以自身服务名作为一组来区分,组里包括该应用在哪些服务器上、IP、端口、版本号、通讯协议等信息。服务发现--服务间的调用不再是直接的指定IP:PORT/xxx的方式进行访问,而是通过之前的注册信息,服务内部进行查找并以某种轮询策略进行分配(那个服务器上的服务实例)访问;定期从服务端获取可用服务列表缓存到本地,当要访问某个服务时,从本地服务列表中进行查询(因此当Eureka宕掉之后其他服务能正常使用,但是不会有新挂接服务的访问信息)。这只是一种粗略的理解,希望能有帮助理解服务治理的概念。下面直接上构建过程。

 Spring Cloud Netflix 之 Euraka

 注:Spring Cloud Euraka,使用Netflix Euraka 来实现服务注册与发现,包含了服务端/客户端,并且都是Java语言进行编写的,所以Euraka主要适用于Java实现的分布式系统,或者是与jvm兼容的语言构建系统。但是由于Euraka服务端的服务治理机制提供了完备的RESTful API,所以也支持非Java语言构建的服务应用进行注册。而客户端部分流行开发平台以提供针对Euraka注册中心的客户端实现框架。

 服务注册中心 Euraka-Server

  1. 首先创建一个简单的spring boot工程:

 点击Next后

 勾选web是创建一个标准的spring boot web 工程,要注意spring boot的版本号;后续会有专门的spring boot的学习文档。

依赖配置pom.xml 

<?xml version="1.0" encoding="UTF-8"?>
<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>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.19.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.xing</groupId>
	<artifactId>eurakaone</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>eurakaone</name>
	<description>Demo project for Spring Boot</description>

	<properties>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<!--监控-->
		<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-actuator -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
			<version>1.5.19.RELEASE</version>
		</dependency>
		<!--eureka 服务端-->
		<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-eureka-server -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka-server</artifactId>
			<version>1.3.5.RELEASE</version>
		</dependency>

	</dependencies>

	<!--springCloud 主体框架-->
	<dependencyManagement>
		<dependencies>
			<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies -->
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>Edgware.SR5</version>
				<type>pom</type>
			</dependency>

		</dependencies>
	</dependencyManagement>


	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

在启动类中添加注解: @EnableEurekaServer 是该工程作为服务注册中心启动。

配置文件:添加配置

 访问注册中心界面

 

控制台--显示启动成功

 服务发现--Euraka Client

创建一个基础spring boot工程同上,不同之处在于:

依赖配置pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.19.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.xing</groupId>
	<artifactId>clientdemo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>demo</name>
	<description>Client Demo project for Spring Boot</description>

	<properties>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<!--监控-->
		<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-actuator -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
			<version>1.5.19.RELEASE</version>
		</dependency>
		<!--eureka 客户端-->
		<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-eureka -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka</artifactId>
			<version>1.3.5.RELEASE</version>
		</dependency>


	</dependencies>

	<!--springCloud 主体框架-->
	<dependencyManagement>
		<dependencies>
			<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies -->
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>Edgware.SR5</version>
				<type>pom</type>
			</dependency>
		</dependencies>
	</dependencyManagement>


	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

启动类添加注解:@EnableEurekaClient  是该工程可以在注册中心上注册被发现(该工程作为正常的业务工程进行开发)

至此简单的服务注册中心与服务发现工程创建完成!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值