springcloud(二)------ Eureka 服务治理,服务注册与发现

一 创建“服务注册中心”

1 创建eureka-server,作为服务器

创建一个基础的Spring Boot工程,命名为eureka-server,并在pom.xml中引入需要的依赖内容

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- 服务中心依赖 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
        </dependency>
    </dependencies>
    <!-- 依赖版本管理-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Dalston.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

2 配置文件

spring.application.name=eureka-server
server.port=1001

eureka.instance.hostname=localhost
## 不让它自己注册自己玩
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
# 设为false,关闭自我保护
eureka.server.enable-self-preservation=false
# 清理间隔(单位毫秒,默认是60*1000)
eureka.server.eviction-interval-timer-in-ms=4000

默认情况下,服务器会将自己注册成服务,这里我们关闭了。

3 启动类入口

只需要增加 注解 @EnableEurekaServer ,就可以了

@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {

    public static void main(String[] args) {
       // SpringApplication.run(EurekaServerApplication.class, args);
        //高版本的不行,要用其他的方法启动
         new SpringApplicationBuilder(EurekaServerApplication.class).web(true).run(args);
    }

}

4 启动查看

启动后访问地址

在这里插入图片描述
这样我们的服务器就好了。

二 创建两个服务客户端

我们这两个服务,作为集群,注册到 上面的服务器,模拟为购物的订单处理服务,让 其他放调用

1 创建 eureka-client,作为提供服务方

创建一个基本的Spring Boot应用。命名为eureka-client,并引入依赖

<parent> 
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.4.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

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

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

2 配置文件

spring.application.name=eureka-client
server.port=2001
eureka.client.serviceUrl.defaultZone=http://localhost:1001/eureka/
  • eureka-client 是注册到服务方的名称,供识别和其他方调用
  • 2001 是自己端口
  • http://localhost:1001/eureka/: 是服务方的地址,我们将提供的服务注册到这里

3启动类配置

只需要增加注解 @EnableDiscoveryClient,就可以了

@EnableDiscoveryClient
@SpringBootApplication
public class EurekaClientApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaClientApplication.class, args);
       // new SpringApplicationBuilder(EurekaClientApplication.class).web(true).run(args);

    }

}

这样,在启动的时候,就把提供的接口服务到了服务器,DiscoveryClient接口在eureka的实现中获取到的所有服务清单。由于Spring Cloud在服务发现这一层做了非常好的抽象,所以,对于上面的程序,我们可以无缝的从eureka的服务治理体系切换到consul的服务治理体系中区。

4 定义一个接口,库存处理

/**
 * 提供库存服务
 */
@RestController
public class RepoController {
    @Autowired
    DiscoveryClient discoveryClient;

    @GetMapping("/productRepo")
    public String productRepo() {
        String services = "Services: " + discoveryClient.getServices(); // 调用本服务的消费者
        System.out.println("调用本服务的消费方:"+services);
        System.out.println("==================> 的更新库存信息接口被调用了");
        String result = "success服务1";
        return result;
    }

}

这样就好了,

复制上面的项目,改名为 eureka-client-two,只需修改一个端口为: 2002就可以了
这样我们就要两个 服务了,端口分别是 2001和2001,可以模拟集群。

再次查看服务方,我们现这两个服务已经注册好了。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值