msc-provider
整合Eureka Client,简单的web测试。
步骤和msc-consumer的创建一致。
创建
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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>team.one.msc</groupId>
<artifactId>msc-parent</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../msc-parent/pom.xml</relativePath>
</parent>
<artifactId>msc-provider</artifactId>
<version>1.0-SNAPSHOT</version>
<name>msc-provider</name>
<description>Demo project for Spring Boot</description>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- Java版本 -->
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</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>
yml文件
server:
# 端口
port: 18080
spring:
application:
# 对外暴露的服务名称,集群中的每个实例的服务名称是相同的
name: msc-provider
eureka:
client:
# 提供者需要向eureka server注册本实例,只有注册了才能让别的实例调用自己
register-with-eureka: true
# 如果本实例不调用别的实例,则不需要向eureka server拉取别的注册实例信息
fetch-registry: false
service-url:
# 向如下的eureka server注册本实例信息
defaultZone: http://eureka01:7001/eureka/
instance:
# 在eureka server注册的实例名称,具有唯一性,在集群内方便定位实例
instance-id: 提供者01
# 优先使用ip
prefer-ip-address: true
# 租期,即心跳时间
lease-renewal-interval-in-seconds: 2
# 自定义属性,在项目中使用
provider:
unique:
flag: pvd-01
启动类
package team.one.msc;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
@EnableEurekaClient
@SpringBootApplication
public class MscProviderApplication {
public static void main(String[] args) {
SpringApplication.run(MscProviderApplication.class, args);
}
}
测试类
package team.one.msc.provider.controller;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Created by lankk on 2020/5/13.
*
* @author lankk
* @date 2020/5/13
*/
@Slf4j
@RestController
@RequestMapping("/pvd")
public class ProviderController {
/**
* ${provider.unique.flag:NULL-flag} 表示
* 只有provider.unique.flag为null时,providerFlag 的值为 NULL-flag
* ,否则 providerFlag 为 provider.unique.flag 的值
*/
@Value("${provider.unique.flag:NULL-flag}")
private String providerFlag;
/**
* 简单测试
*
* @param id
* @return
*/
@GetMapping("/test/{id}")
public String testId(@PathVariable int id) {
log.info("ProviderController.testId,id={}", id);
return providerFlag + ",provide id=" + id;
}
}
启动测试
在浏览器中输入 http://localhost:7001/ ,可在注册中心看到msc-provider信息。
在浏览器中输入 http://localhost:18080/pvd/test/56 ,则会正常响应数据。