SpringCloud教程(一)服务的注册与发现(Eureka) - Go语言中文社区

SpringCloud教程(一)服务的注册与发现(Eureka)


1、环境介绍:

    开发工具idea、基于springboot2.0.3和springcloud Finchley。

2、创建服务注册中心

      采用Eureka作为服务注册与发现的组件

      新建springboot项目,项目名eureka

      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>
	<groupId>com.xly</groupId>
	<artifactId>eureka</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>eureka</name>
	<description>Demo project for Spring Boot</description>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.3.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<properties>
		<java.version>1.8</java.version>
		<spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
	</properties>

	<dependencies>
		<!--eureka 服务端-->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
		</dependency>

		<!--web包  启动需要-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

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

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>${spring-cloud.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

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

</project>

 

      编辑配置文件。首先我们把配置文件application.properties的后缀改成application.yml,方便层级观看

eureka:
  client:
    register-with-eureka: false
    service-url:
      defaultZone: http://localhost:8761/eureka/
server:
  port: 8761
spring:
  application:
    name: eureka


        注:eureka.client.registerWithEureka:false  与  fetchRegistry:false  表明自己是一个eureka server.自己不注册自己。如果不设置的话启动会报错。具体原因请看:https://blog.csdn.net/xu12387/article/details/89307378

        注册中心得默认地址是8761,所以我们就默认得端口就好了!

 

   最后在启动类配置:@EnableEurekaServer注解,声明自己是一个注册中心,注意是Servier哦!

 

启动项目访问:localhost:8761

 

 

3、接下来我们新建客户端,注册到eureka服务端上

   新建sprinboot项目,项目名client

   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>2.0.3.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.xly</groupId>
	<artifactId>client</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>client</name>
	<description>Demo project for Spring Boot</description>

	<properties>
		<java.version>1.8</java.version>
		<spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>${spring-cloud.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

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

</project>

           其实你会发现和注册中心eureka的配置没啥区别,仔细看区别就在于这个包,服务端引用得是server结尾的,而客户端引用的是clien结尾,这也是区分服务端与客服端得最好方法!

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

   

     编辑配置文件application.yml

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/
  instance:
    hostname: client
spring:
  application:
    name: client

server:
  port: 8081

         其中客户端这里配置的http://localhost:8761/eureka/表示我们的注册中心的地址,instance:hostname:client标识注册上去显示的名称叫client,待会启动后大家就知道了。

 

最后在启动类上加上:@EnableDiscoveryClient注解,声明自己是一个客户端,不加的话你的配置都不起作用的。

 

启动项目:

    这里一定要注意,一定要先把我们的服务端(eureka)启动了再启动客服端(client)!不然你只启动客服端,客户端去找我们的服务端找不到会报错的。

  启动客服端(client),然后我们再来访问我们的服务端(注册中心):localhost:8761

    你会发现一个服务已经注册在服务中了,服务名为CLENT ,端口为8081

 

源码地址:https://gitee.com/xu0123/springcloud

相关文章:springboot教程全集

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/xu12387/article/details/89468020
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢