本文,讲述如何将一个服务注册到eureka注册中心,主要分为以下几个步骤:
  • 1.新建项目
  • 2.引入eureka依赖
  • 3.添加注解
  • 4.修改配置文件
  • 5.新建一个controller,提供一个服务接口
  • 6.启动项目
由于后续需要演示负载均衡,这里会创建两个项目company_server1,company_server2,这两个项目提供完全相同的服务,注册到注册中心时,使用相同的服务名称company-server,由于是两个服务,所以项目的端口是不同的,其他相同。具体步骤如下:

1.新建项目

新建一个SpringBoot项目company_server1。

2.引入eureka依赖

eureka-client依赖:

1
2
3
4
5
<!--eureka client-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

springcloud依赖,在 标签外面:

1
2
3
4
5
6
7
8
9
10
11
12
<!--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>
1
<spring-cloud.version>Finchley.SR2</spring-cloud.version>

3.添加注解

在启动类添加注解@EnableEurekaClient,将项目启动为一个以eureka做注册中心的服务。

1
2
3
4
5
6
7
8
@EnableEurekaClient
@SpringBootApplication
public class CompanyServer1Application {

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

4.修改配置文件

1
2
3
4
5
6
7
8
9
server:
port: 8011
spring:
application:
name: company-server
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka

name: company-server,就是把此项目注册到注册中心时,服务名为company-server,后面其他项目,通过这个服务名称,就能找到这个服务,而不需要通过ip:port。

5.新建一个controller,提供一个服务接口

我们新建一个controller包,下面建一个CompanyController,里面写一个服务接口,对外提供服务,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
@RestController
@RequestMapping("company")
public class CompanyController {

@Value("${server.port}")
String port;

@GetMapping("get")
public String getCompany(Integer id){
return "port:"+port+",企业信息为:阿里巴巴"+id;
}
}

6.启动项目

启动项目,会发现项目注册到了注册中心上:
在这里插入图片描述
访问接口http://localhost:8011/company/get?id=2,发现接口也可以提供服务。
在这里插入图片描述
然后我们再写一个相同的服务,步骤和上面一样,端口改为8014,注册时,服务名和上面一样,也是company-server,提供相同的服务,方便后面演示负载均衡。

下一篇:SpringCloud教程(Finchley版本)-03:负载均衡(Ribbon)
完整源码参考:https://github.com/myJava4all/springcloudfinchley