Eureka单机搭建

简介: Eureka单机搭建

 Eureka详解

Eureka

Spring Cloud Eureka 是Netflix 开发的注册发现组件,本身是一个基于 REST 的服务。提供注册与发现,同时还提供了负载均衡、故障转移等能力

Eureka3个角色

服务中心,服务提供者,服务消费者

Eureka Server:服务器端。它提供服务的注册和发现功能,即实现服务的治理。

Service Provider:服务提供者。它将自身服务注册到Eureka Server中,以便“服务消费者”能够通过服务器端提供的服务清单(注册服务列表)来调用它。

Service Consumer:服务消费者。它从 Eureka 获取“已注册的服务列表”,从而消费服务

springcloud架构

image.gif编辑

搭建父项目

创建Maven项目

编写pom.xml文件,添加以下内容

<packaging>pom</packaging>
<!-- 统一管理jar包版本 -->
<properties>
    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <spring-cloud.version>2021.0.0</spring-cloud.version>
    <spring-boot.version>2.6.3</spring-boot.version>
</properties>
<!-- 子模块继承之后,提供作用:锁定版本+子modlue不用写groupId和version  -->
<dependencyManagement>
    <dependencies>
        <!--spring boot 2.6.3-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>${spring-boot.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <!--spring cloud 2021.0.0-->
        <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>

image.gif

开启Run Dashboard面板

打开项目文件夹所在目录,找到.idea/workspace.xml 添加以下配置

<component name="RunDashboard">
 <option name="ruleStates">
  <list>
   <RuleState>
    <option name="name" value="ConfigurationTypeDashboardGroupingRule" />
   </RuleState>
   <RuleState>
    <option name="name" value="StatusDashboardGroupingRule" />
   </RuleState>
  </list>
 </option>
 <option name="configurationTypes">
 <set>
  <option value="SpringBootApplicationConfigurationType" />
 </set>
</option>
</component>

image.gif

搭建单机的Eureka

在父项目中创建maven项目模块,名字为:cloud-eureka(自定义)

编写pom.xml文件,加入以下依赖

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

image.gif

编写application.yml

server:
  port: 7001
spring:
  application:
    name: eureka
eureka:
  client:
    # 表示是否从Eureka Server获取注册的服务信息
    fetch-registry: false
    # 表示是否将自己注册到Eureka Server
    register-with-eureka: false
logging:
  pattern:
    console: '%d{MM/dd HH:mm:ss.SSS} %clr(%-5level) ---  [%-15thread] %cyan(%-50logger{50}):%msg%n'

image.gif

编写主启动类

@SpringBootApplication
@EnableEurekaServer//开启Eureka服务
public class Eureka7001 {
    public static void main(String[] args) {
        SpringApplication.run(Eureka7001.class,args);
    }
}

image.gif

访问

http://localhost:7001/

image.gif

image.gif编辑

子项目整合eureka

在父项目中创建maven项目cloud-eureka-pro
修改pom.xml

<dependencies>
    <!-- Eureka client-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
    <!-- SpringMVC-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- lombok-->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.22</version>
    </dependency>
</dependencies>

image.gif

编写application.yml

server:
  port: 80
spring:
  application:
    name: cloud-eureka-pro
eureka:
  client:
    service-url:
      # Eureka server 地址
      defaultZone: http://localhost:7001/eureka/

image.gif

编写主启动类

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

image.gif

制作eureka的docker镜像并运行

Pom.xml引入插件依赖【记得修改dockerHost的ip】

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.5.6</version>
        </plugin>
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <configuration>
                <imageName>livegoods/eurekaserver:1.0</imageName>
                <baseImage>openjdk:11</baseImage>
                <dockerHost>http://192.168.66.101:2375</dockerHost>
                <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
                <exposes>
                    <expose>8761</expose>
                </exposes>
                <resources>
                    <resources>
                        <targetPath>/</targetPath>
                        <directory>${project.build.directory}</directory>
                        <include>${project.build.finalName}.jar</include>
                    </resources>
                </resources>
            </configuration>
        </plugin>
    </plugins>
</build>

image.gif

打包成jar包

利用maven制作docker镜像【docker记得开启远程访问】

创建并启动容器

docker run -d -p 7001:7001 --name eureka 容器镜像名

image.gif

访问

Ip:7001/

image.gif


相关文章
|
3月前
|
Oracle 关系型数据库 Shell
Nacos部署问题之多节点集群报错如何解决
Nacos是一个开源的、易于部署的动态服务发现、配置管理和服务管理平台,旨在帮助微服务架构下的应用进行快速配置更新和服务治理;在实际运用中,用户可能会遇到各种报错,本合集将常见的Nacos报错问题进行归纳和解答,以便使用者能够快速定位和解决这些问题。
|
4月前
|
负载均衡 Java Maven
SpringCloud - Eureka服务注册与发现实战(单节点与集群)
SpringCloud - Eureka服务注册与发现实战(单节点与集群)
60 0
|
6月前
|
网络安全 Nacos
企业实战(4) Nacos单机部署与使用
企业实战(4) Nacos单机部署与使用
|
6月前
|
Java Linux Nacos
服务搭建篇(二) Nacos单机/集群服务搭建
注意:在单台服务器上搭建伪集群不能使用连续端口号(比如8848,8849,8850), 因为使 用8848(grpc会占用9848,9849),8849(grpc会占用9849,9850),会导致端口冲突 原因:Nacos2.x版本相比1.X新增了gRPC的通信方式,因此需要增加2个端口。新增端口是 在配置的主端口(server.port)基础上,进行一定偏移量自动生成
84 0
|
缓存 NoSQL 网络安全
22-微服务技术栈(高级):分布式缓存Redis主从集群
单机Redis可以解决应用缓存的问题,但是随着系统流量的增加,读操作开始指数级倍增时,及时单节点Redis基于内存的读写操作再快也会有性能瓶颈,此时我们可以借助主从架构(主负责写、从负责读)来优化上述场景,实现高并发读优化。
375 0
|
缓存 NoSQL 网络安全
23-微服务技术栈(高级):分布式缓存Redis哨兵集群
在上一节我们完成主从集群的搭建,虽然解决了读的压力,但是当集群主节点宕机时,系统架构有没有备用方案呢?如果没有是不是缓存层就直接失效、甚至异常了呢?在此基础之上我们可以借助于哨兵完成新主节点的选举,实现集群的自动恢复。
148 0
|
负载均衡 Java 微服务
(六)、集群Eureka构建
(六)、集群Eureka构建
(六)、集群Eureka构建
|
SQL 关系型数据库 MySQL
Nacos高可用集群搭建排坑版
Nacos高可用集群搭建排坑版
407 0
Nacos高可用集群搭建排坑版
|
存储 SQL 关系型数据库
【微服务】Nacos数据持久化以及集群的搭建
【微服务】Nacos数据持久化以及集群的搭建
665 0
【微服务】Nacos数据持久化以及集群的搭建
|
网络协议 Cloud Native Java
Nacos基本概念和单机部署
Nacos基本概念和单机部署
908 1