spring-cloud- (一)Eureka

spring-cloud- (一)Eureka
强烈推介IDEA2020.2破解激活,IntelliJ IDEA 注册码,2020.2 IDEA 激活码

Eureka,了解下

Eureka是Netflix开源的一款提供服务注册和发现的产品,它提供了完整的Service RegistryService Discovery实现。也是springcloud体系中最重要最核心的组件之一。
Eureka 是一个基于 REST 的服务,主要在 AWS 云中使用, 定位服务来进行中间层服务器的负载均衡和故障转移。
Eureka由两个组件组成:Eureka服务器和Eureka客户端。Eureka服务器用作服务注册服务器。Eureka客户端是一个java客户端,用来简化与服务器的交互、作为轮询负载均衡器,并提供服务的故障切换支持。

Eureka服务注册与发现

Spring Cloud Netflix的Eureka是一个服务注册和发现模块

创建maven项目

环境: jdk1.8 maven 3.2.5
工具: idea

点击File >> New >> Project
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
创建完成
在这里插入图片描述

搭建注册中心Eureka

选中项目>>右键,New>>Module

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
创建完成
在这里插入图片描述
项目的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 http://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.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.wy</groupId>
    <artifactId>eureka-server</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>eureka-server</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Greenwich.RC2</spring-cloud.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </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>

项目启动类,添加@EnableEurekaServer:

package com.wy.eurekaserver;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
   

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

}


项目配置application.yml

# 配置服务器端口
server:
  port: 8000
# 配置eureka实例主机名
eureka:
  instance:
    hostname: localhost
# 表明是eureka server
  client:
    register-with-eureka: false
    fetch-registry: false
# 设置默认的eureka server访问url
# 默认情况下erureka server也是一个eureka client ,必须要指定一个 server
    service-url:
      defaultZone: http://${
   eureka.instance.hostname}:${
   server.port}/eureka/

clean install
在这里插入图片描述
启动项目,浏览器访问(暂时还没有服务):
在这里插入图片描述

创建服务提供方

和创建eureka服务差不多
选中项目>>右键,New>>Module

在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
选择next

在这里插入图片描述
创建完成
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 http://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.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.wy</groupId>
    <artifactId>eureka-provider-one</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>eureka-provider-one</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Greenwich.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.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </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>

项目启动类,添加@EnableEurekaClient

package com.wy.eurekaproviderone;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class EurekaProviderOneApplication {
   

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

}


修改配置:

# 配置服务器端口
server:
  port: 8910
spring:
  application:
    name: cloud-eureka-provider
# 注册服务
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8000/eureka/

提供hello服务
在controller写一个HelloController,如下:

package com.wy.eurekaproviderone.controller;

import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/hello")
public class HelloController {
   

    @RequestMapping("/index/{name}")
    public String index(@PathVariable("name") String name) {
   
        return "hello "+name+",this is first messge";
    }

}

启动项目,访问eureka server
在这里插入图片描述

本文来源wySama0830,由架构君转载发布,观点不代表Java架构师必看的立场,转载请标明来源出处:https://javajgs.com/archives/14177

发表评论