24AK

欢迎您的到来!!!

springcloud2.1.10版本----一 Spring Cloud Eureka

一、服务的注册与发现




 关系调用说明:


服务生产者启动时,向服务注册中心注册自己提供的服务;

服务消费者启动时,在服务注册中心订阅自己所需要的服务;

注册中心返回服务提供者的地址信息个消费者;

消费者从提供者中调用服务。

二、Eureka简介


Eureka是Spring Cloud Netflix微服务套件中的一部分,可以与Springboot构建的微服务很容易的整合起来。Eureka包含了服务器端和客户端组件。服务器端,也被称作是服务注册中心,用于提供服务的注册与发现。Eureka支持高可用的配置,当集群中有分片出现故障时,Eureka就会转入自动保护模式,它允许分片故障期间继续提供服务的发现和注册,当故障分片恢复正常时,集群中其他分片会把他们的状态再次同步回来。客户端组件包含服务消费者与服务生产者。在应用程序运行时,Eureka客户端向注册中心注册自身提供的服务并周期性的发送心跳来更新它的服务租约。同时也可以从服务端查询当前注册的服务信息并把他们缓存到本地并周期性的刷新服务状态。


 


三  Eureka项目搭建


1 搭建服务注册中心


首先启动一个springboot项目,选择next




输入Group、Artifact和package参数,选择next




选择添加Eureka Server模块,然后next


 


点击finish完成项目创建。




<1> 在启动类中加入@EnableEurekaServer注解


import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

 

@SpringBootApplication

@EnableEurekaServer

public class Myspringcloud01Application {

 

    public static void main(String[] args) {

        SpringApplication.run(Myspringcloud01Application.class, args);

    }

 

}

<2> application.propertis文件配置


server.port=8087

 

//服务名称

spring.application.name=eureka-server

eureka.instance.hostname=localhost

#代表不向注册中心注册自己,因为该应用为注册中心

eureka.client.register-with-eureka=false

#由于注册中心的职责就是维护服务实例,它并不需要去检索服务,所以也设置为false

eureka.client.fetch-registry=false

#eureka监控平台地址

eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka

<3> pom.xml文件


<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <parent>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-parent</artifactId>

        <version>2.1.10.RELEASE</version>

        <relativePath/> <!-- lookup parent from repository -->

    </parent>

    <groupId>com.springcloud</groupId>

    <artifactId>myspringcloud-01</artifactId>

    <version>0.0.1-SNAPSHOT</version>

    <name>myspringcloud-01</name>

    <description>Demo project for Spring Boot</description>

 

    <properties>

        <java.version>1.8</java.version>

        <spring-cloud.version>Hoxton.RC2</spring-cloud.version>

    </properties>

 

    <dependencies>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-actuator</artifactId>

        </dependency>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-web</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-netflix-eureka-server</artifactId>

            <version>2.1.0.RELEASE</version>

        </dependency>

    </dependencies>

 

    <dependencyManagement>

        <dependencies>

            <dependency>

                <groupId>org.springframework.cloud</groupId>

                <artifactId>spring-cloud-dependencies</artifactId>

                <version>${spring-cloud.version}</version>

                <type>pom</type>

                <scope>runtime</scope>

            </dependency>

        </dependencies>

    </dependencyManagement>

 

    <build>

        <plugins>

            <plugin>

                <groupId>org.springframework.boot</groupId>

                <artifactId>spring-boot-maven-plugin</artifactId>

            </plugin>

        </plugins>

    </build>

 

</project>

<4> 然后运行启动类,开启服务




 在网页中访问http://localhost:8087/进入服务的监控页面




 


2 注册服务提供者


也要创建一个新的springboot项目,点击next,进行下一步




填写需要的参数后,选择next下一步


 


选择Eureka Discovery Client模块,然后next下一步




finish创建完成


 

<1> 启动类添加@EnableDiscoveryClient注解


import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

 

@SpringBootApplication

@EnableDiscoveryClient

public class SpringcloudEurakeCllientApplication {

 

    public static void main(String[] args) {

        SpringApplication.run(SpringcloudEurakeCllientApplication.class, args);

    }

 

}

<2>  application.properties文件编写


server.port=8088

 

spring.application.name=eureka-client

eureka.client.service-url.defaultZone=http://localhost:8087/eureka/

<3>pom.xml文件


<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <parent>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-parent</artifactId>

        <version>2.2.1.RELEASE</version>

        <relativePath/> <!-- lookup parent from repository -->

    </parent>

    <groupId>com.springcloud.mall</groupId>

    <artifactId>springcloud-eurake-cllient</artifactId>

    <version>0.0.1-SNAPSHOT</version>

    <name>springcloud-eurake-cllient</name>

    <description>Demo project for Spring Boot</description>

 

    <properties>

        <java.version>1.8</java.version>

        <spring-cloud.version>Hoxton.RC2</spring-cloud.version>

    </properties>

 

    <dependencies>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-web</artifactId>

        </dependency>

        <dependency>

            <groupId>org.springframework.cloud</groupId>

            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>

        </dependency>

 

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-test</artifactId>

            <scope>test</scope>

            <exclusions>

                <exclusion>

                    <groupId>org.junit.vintage</groupId>

                    <artifactId>junit-vintage-engine</artifactId>

                </exclusion>

            </exclusions>

        </dependency>

    </dependencies>

 

    <dependencyManagement>

        <dependencies>

            <dependency>

                <groupId>org.springframework.cloud</groupId>

                <artifactId>spring-cloud-dependencies</artifactId>

                <version>${spring-cloud.version}</version>

                <type>pom</type>

                <scope>import</scope>

            </dependency>

        </dependencies>

    </dependencyManagement>

 

    <build>

        <plugins>

            <plugin>

                <groupId>org.springframework.boot</groupId>

                <artifactId>spring-boot-maven-plugin</artifactId>

            </plugin>

        </plugins>

    </build>

 

    <repositories>

        <repository>

            <id>spring-milestones</id>

            <name>Spring Milestones</name>

            <url>https://repo.spring.io/milestone</url>

        </repository>

    </repositories>

 

</project>

<4>  编写Controller


import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.ResponseBody;

 

 

@Controller

public class HelloController {

 

    @GetMapping("/order/id")

    @ResponseBody

    public String index(){

        String instance = "hgello";

        return instance;

    }

}

3 启动注册中心和注册服务的springboot项目


注册中心启动




注册服务的启动




访问注册中心监控页面




可以发现服务已经注册成功

————————————————

版权声明:本文为CSDN博主「24koby」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_31583183/article/details/103066082


«   2019年12月   »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索

Powered By Z-BlogPHP 1.5.2 Zero

24AK!!备案号:粤ICP备19155665号