1. 首页
  2. 开发
  3. 详情

《spring cloud微服务开发》三、服务发现(注册服务提供者)

changs  • 

我们已经有了一个服务注册中心,这节我们讲下如何向服务注册中心注册服务。

1、我们新建一个maven项目eureka-client,在pom.xml中加入

<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>

2、application.yml配置中加入

spring:
  application:
    name: service-common
server:
  port: 9002
  context-path: /eurekaClient
eureka:
  client:
    service-url:
      defaultZone: http://root:changs@127.0.0.1:9000/eureka/

这里需要注意,由于我们注册中心启用了安全认证,这里的url需要加入用户名和密码。


3、启动类中启用注解@EnableEurekaClient或者@EnableDiscoveryClient

@SpringBootApplication
@EnableEurekaClient
public class EurekaClientApplication {

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

这里我们使用的是EnableEurekaClient。EnableEurekaClient和EnableDiscoveryClient是EnableEurekaClient只能使用于注册中心是Eureka的,而EnableDiscoveryClient可以使用于任何注册中心。


启动应用,我们访问服务注册中心http://127.0.0.1:9000/,可以看到我们的服务已经注册成功了。

blob.png


下面我们给这个服务添加一个具体的服务,如用户服务:

@RestController
@RequestMapping("/user")
public class UserController {

    @RequestMapping("/getNames")
    public List getNames(){
        List names = new ArrayList();
        names.add("张三");
        names.add("李四");
        return names;
    }

    @RequestMapping("/getName")
    public String getName(){
        return "changs";
    }
}

用户服务中我们提供了2个接口,一个getNames获取姓名列表,一个getName获取姓名,这里我们只做演示,不具体从数据库中获取,代码中写死即可。

启动之后我们可以通过http://127.0.0.1:9002/eurekaClient/user/getNames访问。

blob.png

下一节我们讲解如何在服务消费者中消费该服务。


声明:若要转载FengHuoX中的任何博客请注明转载地址