spring cloud 服务注册与发现

spring cloud 是基于spring boot 的。

通过@EnableEurekaServer注解声明注册中心服务器

通过@EnableEurekaClient注解来声明客户端服务发布

废话少说,干正事。

(这里需要注意,也可以通过在eclipse中添加插件sts来直接创建spring boot项目,则maven中pom.xml的内容就会自动生成。本篇最后会截图进行说明)


步骤一:建立一个maven项目,指代注册中心服务器 springcloud-EurekaServer,在pom.xml中导入依赖

(需要注意下版本的问题,spring boot1.5.2.RELEASE  spring cloud Camden.SR6)


<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>springcloud-EurekaServer</groupId>
	<artifactId>springcloud-EurekaServer</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	
	<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.2.RELEASE</version>
   </parent>

<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>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-eureka-server</artifactId>
    </dependency>
</dependencies>
    
</project>

步骤二:配置参数application.properties(也可使用.yml)

spring.application.name=eureka-server
server.port=10001
 #是否将自身注册
eureka.client.register-with-eureka=false  
#如果为true,启动时报警.
eureka.client.fetch-registry=false  
#表示向自身注册
eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
eureka.server.evictionIntervalTimerInMs=5000

步骤三:建立注册中心的启动类 使用@EnableEurekaServer注解

package com.cloud.main;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
     public static void main(String[] args) {
    	
		SpringApplication.run(EurekaServerApplication.class, args);
		 System.out.println("******Eureka 微服务  已启动*****");
		
	}
}

到这里我们可以启动运行试一下,注册中心就搭建好了。



接下来我们发布服务到这个注册中心上。


步骤四:建立服务发布的客户端。新建maven项目 springbloud-EurekaClient ,在Pom.xml中导入依赖

<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>springcloud-EurekaClient</groupId>
  <artifactId>springcloud-EurekaClient</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
  	<parent>
	    <groupId>org.springframework.boot</groupId>
	    <artifactId>spring-boot-starter-parent</artifactId>
	    <version>1.5.2.RELEASE</version>
   </parent>
  
  <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</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>Camden.SR6</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
  
  
</project>

步骤五:建立配置文件application.yml

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:10001/eureka/  #服务注册中心的地址
      
server:
   port: 8081   
spring:
  application:
    name: service-hello
    
#指代 spring.application.name=service-hello

步骤六:使用@EnableEurekaClient来声明发布服务,这里也同时使用@RestController来编写控制层代码在该类中,可以选择单独创建接口。

package com.cloud.main;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@EnableEurekaClient
@RestController
public class EurekaClientApplication {
      public static void main(String[] args) {
	     SpringApplication.run(EurekaClientApplication.class, args);
	}
      @Value("${server.port}")
      private String port;
      
      @RequestMapping("/hello")
      public String home(@RequestParam String name) {
    	  return "hello"+name+",i am from port:"+port;
      }
}


步骤七:因为注册中心端我们已经开启了的,现在我们直接开启客户端注册服务。


再看一下注册中心。发布的服务名是客户端配置文件中的spring.application.name=service-hello



到这里就结束了。

番外:再eclipse中导入sts插件,直接创建springboot

步骤一:


步骤二:输入sts,下载插件


下载完成之后在创建项目的时候直接选择spring--spring boot就可以了





猜你喜欢

转载自blog.csdn.net/sinat_35821285/article/details/80679201
今日推荐