新建一个SpringBoot项目company_server1。
eureka-client依赖:
<!--eureka client-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
springcloud依赖,在 标签外面:
<!--springcloud依赖管理-->
<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>
<spring-cloud.version>Finchley.SR2</spring-cloud.version>
在启动类添加注解@EnableEurekaClient,将项目启动为一个以eureka做注册中心的服务。
@EnableEurekaClient
@SpringBootApplication
public class CompanyServer1Application {
public static void main(String[] args) {
SpringApplication.run(CompanyServer1Application.class, args);
}
}
server:
port: 8011
spring:
application:
name: company-server
eureka:
client:
service-url:
default: http://localhost:8761/eureka
name: company-server,就是把此项目注册到注册中心时,服务名为company-server,后面其他项目,通过这个服务名称,就能找到这个服务,而不需要通过ip:port。
我们新建一个controller包,下面建一个CompanyController,里面写一个服务接口,对外提供服务,代码如下:
@RestController
@RequestMapping("company")
public class CompanyController {
@Value("${server.port}")
String port;
@GetMapping("get")
public String getCompany(Integer id){
return "port:"+port+",企业信息为:阿里巴巴"+id;
}
}
启动项目,会发现项目注册到了注册中心上:
访问接口http://localhost:8011/company/get?id=2,发现接口也可以提供服务。
然后我们再写一个相同的服务,步骤和上面一样,端口改为8014,注册时,服务名和上面一样,也是company-server,提供相同的服务,方便后面演示负载均衡。