springcloud之eureka服务注册

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013219624/article/details/85064946

1.准备

为方便测试,建了多项目工程,方便开发,目录结构如下

springcloud-demo
    api             # 公共模块
    eureka-7001     # eureka注册中心
    provider-8001   # 服务提供者provider
    consumer-9001   # 服务消费者consumer

2.springcloud-demo引入依赖

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Dalston.SR1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>1.5.9.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

注:主要就是Springboot(1.5.9.RELEASE)和Springcloud(Dalston.SR1) 如果版本不兼容可能会出现错误

3.api

没什么可说的 就是一些公共的类 后面会对他改造 所以取名是api 不是common

4.eureka-7001

# 依赖引入
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>

# EurekaApplication添加@EnableEurekaServer,开启服务中心

# application.yml配置
server:
  port: 7001
eureka:
  instance:
    # eureka服务端的实例名称
    hostname: localhost
  client:
    # false表示不向注册中心注册自己
    register-with-eureka: false
    # false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
    fetch-registry: false
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

注:启动后可以直接访问注册中心

5.provider-8001

# 依赖引入
<!-- actuator监控信息完善 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- 将微服务provider侧注册进eureka -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>

# ProviderApplication添加@EnableEurekaClient,服务提供者也就是要到注册中心 注册自己的服务

# application.yml配置
server:
  port: 8001 
eureka:
  client:
    service-url:
      defaultZone: http://localhost:7001/eureka
  instance:
    instance-id: provider-8001
    # 访问路径可以显示IP地址
    prefer-ip-address: true
info:
  app.name: provider-8001
  company.name: www.boomsecret.com
  build.artifactId: $project.artifactId$
  build.version: $project.version$
  
注:$xx$ 是自定义符号
  <resources>
      <resource>
          <directory>src/main/resources</directory>
          <filtering>true</filtering>
      </resource>
  </resources>
  <plugins>
      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
          <configuration>
              <delimiters>
                  <delimiter>$</delimiter>
              </delimiters>
          </configuration>
      </plugin>
  </plugins>

6.consumer-9001

# 依赖引入
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>

# RestTemplate配置 可以调用provider服务
@Configuration
public class RestTemplateConfig {
    @Bean
    public RestTemplate restTemplate(ClientHttpRequestFactory factory) {
        return new RestTemplate(factory);
    }

    @Bean
    public ClientHttpRequestFactory simpleClientHttpRequestFactory() {
        SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
        factory.setReadTimeout(5000);
        factory.setConnectTimeout(15000);
        return factory;
    }
}

7.总结

其实这个例子就是简单的eureka注册中心搭建 和服务提供者的简单实现 接下来会更深入的讲解

源码:https://gitee.com/jsjack_wang/springcloud-demo master分支

猜你喜欢

转载自blog.csdn.net/u013219624/article/details/85064946