SpringCloud-Eureka注册中心

选择版本

搭建项目需要选择合适的版本,这样才可以减少一些不必要的BUG的出现。

Spring Cloud与Spring Boot版本对应关系

方法一:打开Spring官网 ,选择Spring Cloud往下滑

方法二:更详细的版本对应关系访问 https://start.spring.io/actuator/info ;使用json格式化工具格式化

方法三:也可以访问 https://docs.spring.io/spring-cloud/docs/ ,点击某一个版本reference -> html就可以看到对应的Spring Boot版本

搭建父工程

搭建Maven项目,命名为spring-cloud-2022 

删除src文件夹,导入依赖 

①统一管理资源版本,使用dependencyManagement标签

    <dependencyManagement>
        <dependencies>
          
        </dependencies>
    </dependencyManagement>

②导入SpringCloud依赖

            <!--SpringCloud 依赖-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.SR12</version>
            </dependency>

③导入SpringBoot依赖

            <!--SpringBoot 依赖-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.3.12.RELEASE</version>
            </dependency>

④数据库相关依赖

            <!--数据库连接池依赖-->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.1.21</version>
            </dependency>
            <!--MySQL依赖-->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.47</version>
            </dependency>
            <!--mybatis依赖-->
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>2.1.4</version>
            </dependency>

⑤导入其他依赖

            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.17</version>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.18.24</version>
                <optional>true</optional>
            </dependency>

搭建Eureka注册中心

在父工程里面创建maven模块,命名为cloud-eureka7001

①导入依赖

        <!--eureka server依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
        <!--spring boot依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

②resources目录下创建application.yml配置文件,设置参数

server:
  port: 7001

spring:
  application:
    name: cloud-eureka
eureka:
  instance:
    hostname: localhost
  client:
    register-with-eureka: false #自己是注册中心,因此不注册自己
    fetch-registry: false
    service-url:                #注册与发现地址
      defaultZone: http://localhost:7001/eureka/

③创建启动类,添加@EnableEurekaServer注解

@EnableEurekaServer
@SpringBootApplication
public class Eureka7001 {
    public static void main(String[] args) {
        SpringApplication.run(Eureka7001.class, args);
    }
}

④启动Eureka注册中心,访问http://localhost:7001/

搭建服务提供者

在父工程里面新建maven模块,命名为cloud-provider8001

 ①导入依赖

        <!--eureka依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <!--springboot依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

②创建application.yml,设置端口号

server:
  port: 8001

spring:
  application:
    name: cloud-provider

eureka:
  client:
    register-with-eureka: true    #注册到注册中心
    fetch-registry: true
    service-url:                  #注册中心地址
      defaultZone: http://localhost:7001/eureka/
  instance:
    prefer-ip-address: true
    instance-id: provider8001

③创建启动类,添加@EnableEurekaClient注解

@EnableEurekaClient
@SpringBootApplication
public class Provider8001 {
    public static void main(String[] args) {
        SpringApplication.run(Provider8001.class, args);
    }
}

④创建controller

@Slf4j
@RestController
@RequestMapping("provider")
public class ProviderController {

    @GetMapping("getUUID")
    public String getUUID() {
        String uuid = UUID.randomUUID().toString();
        log.info(uuid);
        return uuid;
    }
}

⑤访问http://localhost:8001/provider/getUUID

 ⑥ 启动Eureka注册中心,访问http://localhost:7001/ 

搭建消费者 

在父工程里面新建maven模块,命名为cloud-consumer80

①导入依赖

        <!--eureka client依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <!--spring boot依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-actuator</artifactId>
        </dependency>
        <!--负载均衡依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
        </dependency>

②创建application.yml配置文件,设置参数

server:
  port: 80

spring:
  application:
    name: cloud-consumer

eureka:
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://localhost:7001/eureka/

③创建启动类,添加@EnableEurekaClient注解

@EnableEurekaClient
@SpringBootApplication
public class Consumer80 {
    public static void main(String[] args) {
        SpringApplication.run(Consumer80.class, args);
    }
}

④创建ApplicationContextConfig类

@Configuration
public class ApplicationContextConfig {

    @Bean
    @LoadBalanced
    public RestTemplate getRestTemplate() {
        //用来远程调用,调用provider提供的服务
        return new RestTemplate();
    }
}

⑤创建controller

@RestController
@RequestMapping("consumer")
public class ConsumerController {
    //提供者名称
    private static final String URL="http://cloud-provider";
    @Autowired
    private RestTemplate restTemplate;

    @GetMapping("getUUID")
    public String getUUID(){
        String result=restTemplate.getForObject(URL+"/provider/getUUID",String.class);
        return result;
    }
}

⑥ 依次启动Eureka注册中心,提供者,消费者,访问http://localhost:7001/ 

⑦ 访问http://localhost/consumer/getUUID 实现远程调用

搭建Eureka集群 

配置hosts映射文件

①以管理员的身份启动记事本

②打开C:\Windows\System32\drivers\etc下的hosts,追加以下内容并保存

#####  eureka集群
127.0.0.1 eureka7001
127.0.0.1 eureka7002

修改cloud-eureka7001配置

①修改application.yml配置文件

server:
  port: 7001

spring:
  application:
    name: cloud-eureka

eureka:
  instance:
    hostname: eureka7001
  client:
    register-with-eureka: false #自己是注册中心,因此不注册自己
    fetch-registry: false
    service-url:
      defaultZone: http://eureka7002:7002/eureka     #集群(相互注册)
      #更多Eureka注册中心,逗号隔开往后加:  
      #    http://eureka7002:7002/eureka,http://eureka7003:7003/eureka ...

新建Eureka注册中心,命名为cloud-eureka7002

①导入依赖

        <!--eureka server依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
        <!--spring boot依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

②创建application.yml配置文件

server:
  port: 7002

spring:
  application:
    name: cloud-eureka

eureka:
  instance:
    hostname: eureka7002
  client:
    register-with-eureka: false #自己是注册中心,因此不注册自己
    fetch-registry: false
    service-url:
      defaultZone: http://eureka7001:7001/eureka

③创建启动类,添加@EnableEurekaServer注解

@EnableEurekaServer
@SpringBootApplication
public class Eureka7002 {
    public static void main(String[] args) {
        SpringApplication.run(Eureka7002.class, args);
    }
}

测试

①启动cloud-eureka7001,cloud-eureka7002

②访问http://eureka7001:7001/

 

③访问http://eureka7002:7002/

 

集群模式下进行远程调用

⭐我们需要把provider,consumer注册到集群当中,所以需要修改他的注册地址

修改cloud-provider8001的配置

①修改application.yml配置文件

server:
  port: 8001

spring:
  application:
    name: cloud-provider

eureka:
  instance:
    prefer-ip-address: true
    instance-id: ${spring.application.name}:${server.port}
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://eureka7001:7001/eureka,http://eureka7002:7002/eureka  #集群模式

修改cloud-consumer80的配置

①修改application.yml配置文件

server:
  port: 80

spring:
  application:
    name: cloud-consumer

eureka:
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://eureka7001:7001/eureka,http://eureka7002:7002/eureka  #集群模式

测试

①依次启动Eureka集群,cloud-provider8001,cloud-consumer80

②访问​​​​​​http://eureka7001:7001/

 

③访问http://eureka7002:7002/

④远程调用

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值