社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
开发工具idea、基于springboot2.0.3和springcloud Finchley。
采用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
新建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教程全集
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!