博主首页

spring cloud (三、服务提供者demo_provider)

       spring cloud (一、服务注册demo_eureka)   

      spring cloud (二、服务注册安全demo_eureka)

      创建一个服务提供者注册到服务注册中心,跟前一个案例一样创建一个spring boot 项目 ;

     pom文件如下:

<?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.test.provider</groupId>
    <artifactId>provider</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>provider</name>
    <description>provider</description>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
         <version>1.5.3.RELEASE</version>
    <relativePath />
    </parent>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>
    <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>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
 
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Dalston.SR3</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>
    <repositories>
        <repository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
</project>

       配置文件如下

#应用(服务)名称
spring.application.name=eureka-provider
#端口号
server.port=8762
#注册的账号密码地址
eureka.client.serviceUrl.defaultZone=http://admin:admin@localhost:3333/eureka/

        启动类

/**
 * 服务提供者
 */
@EnableDiscoveryClient
@SpringBootApplication

public class ProviderApplication {

    public static void main(String[] args) {
        SpringApplication.run(ProviderApplication.class, args);
    }
}

     到这一步其实已经配置完成了,基本的代码;但是启动会报错,虽然配置了登录的账号和密码;但是由于spring cloud 的一些版本是需要修改注册中心的启动配置

   


 

     接下来的改动注意,这是是改服务注册管理那边的代码;

     我们在 spring cloud (一、服务注册demo_eureka)   中加上一个自己的类,加上如下的注解,然后再重新启动即可注册成功

    

@EnableWebSecurity
public class MyWebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable();
        super.configure(http);
    }

}

      这个时候我们先启动服务管理的demo,然后再启动服务提供者;最后登录服务控制台查看;

   

       这个时候我们可以看到服务注册中心多了一个服务;

   

 


 

       到这里虽然可以注册成功了。看起来是没有问题了,不过确实有一个问题;

       就是你把提供服务这边的demo程序停了,但是服务注册页面却显示还存在;

       处理这个问题,我们需要在服务注册的demo中加上自动检测失效的配置;

     

#启用主动失效,并且每次主动失效检测间隔为10s
eureka.server.eviction-interval-timer-in-ms=10000
eureka.server.enable-self-preservation=false

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2018-12-04 11:40  笑~笑  阅读(722)  评论(0编辑  收藏  举报