SpringCloud教程-02:服务注册与消费

摘要:本文主要讲解如何将一个服务注册到eureka注册中心上,供其他消费者使用此服务。

将一个服务注册到eureka注册中心上供其他服务使用,非常简单,步骤如下:

  • 1.新建项目
  • 2.引入eureka依赖
  • 3.添加注解
  • 4.修改配置文件
  • 5.新建一个controller,提供一个服务接口
  • 6.启动项目

由于后续需要演示负载均衡,这里会创建两个项目company_server1,company_server2,这两个项目提供完全相同的服务,注册到注册中心时,使用相同的服务名称company-server,由于是两个服务,所以项目的端口是不同的,其他相同。

1.新建项目

新建一个SpringBoot项目company_server1。

2.引入eureka依赖

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>Finchley.SR2</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

3.添加注解

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

@EnableEurekaClient
@SpringBootApplication
public class CompanyServer1Application {

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

4.修改配置文件

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,里面写一个服务接口,对外提供服务,代码如下:

@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,提供相同的服务,方便后面演示负载均衡。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券