1-Eureka服务注册与发现以及Eureka集群搭建(实操型)

news/2024/7/2 23:06:20

1-Eureka服务注册与发现以及Eureka集群搭建(实操型)

  • 1. 简单搭建微服务框架
    • 1.1 idea创建maven多模块项目
    • 1.2 项目结构
    • 1.3 项目依赖与配置
      • 1.3.1 父工程:dog-cloud-parent
      • 1.3.2 管理实体项目:dog-po
      • 1.3.3 服务提供者:dog-provider-8001
        • 1.3.3.1 简单项目结构
        • 1.3.3.2 pom文件
        • 1.3.3.3 yml文件
      • 1.3.4 服务消费者:dog-consumer-80
        • 1.3.4.1 项目目录结构
        • 1.3.4.2 pom文件
        • 1.3.4.3 yml文件
        • 1.3.4.4 配置类
    • 1.4 访问
      • 1.4.1 直接访问服务提供者
        • 1.4.2 访问服务消费者
  • 2. 建立EurekaServer服务注册中心(本地)
    • 2.1 创建子模块—EurekaServer服务注册中心
    • 2.2 pom文件
    • 2.3 yml文件
    • 2.4 启动类
  • 3. 将微服务注册进EurekaServer服务注册中心(本地)
    • 3.1 将服务提供者注册到EurekaServer服务注册中心
      • 3.1.1 修改pom文件
      • 3.1.2 修改yml文件
      • 3.1.3 启动类加注解
      • 3.1.4 测试
      • 3.1.5 控制访问路径显示IP地址
      • 3.1.6 完善微服务info内容
        • 3.1.6.1 修改pom文件
          • 3.1.6.1.1 微服务的pom文件
          • 3.1.6.1.2 父工程的pom文件
        • 3.1.6.2 修改yml文件
        • 3.1.6.3 观看效果
  • 4. Eureka服务发现(本地)
    • 4.1 提供发现服务的接口
      • 4.1.1 服务提供者
      • 4.1.2 服务消费者
    • 4.2 查看效果
  • 5. Eureka集群
    • 5.1 Eureka单机(远程服务器)
      • 5.1.1 创建Eureka Server项目
      • 5.1.2 项目简单配置
        • 5.1.2.1 pom文件
        • 5.1.2.2 yml文件
        • 5.1.2.3 启动类
      • 5.1.3 服务提供者yml配置
      • 5.1.4 启动看效果
    • 5.2 Eureka集群(远程服务器)
      • 5.2.1 EurekaServer准备yml配置文件
      • 5.2.2 微服务修改yml文件
      • 5.2.3 启动Eureka集群 和 微服务
  • 6. 附项目

1. 简单搭建微服务框架

1.1 idea创建maven多模块项目

  • 直接看下面的文章
    idea创建maven多模块项目.

1.2 项目结构

  • 简单介绍一下:
    • 父工程:dog-cloud-parent
    • 管理实体项目:dog-po
    • 微服务-服务提供者:dog-provider-8001
    • 微服务-服务消费者:dog-consumer-80
  • 如下:
    在这里插入图片描述

1.3 项目依赖与配置

1.3.1 父工程:dog-cloud-parent

  • pom如下:

    <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>
    
      <groupId>com.liu.susu</groupId>
      <artifactId>dog-cloud-parent</artifactId>
      <version>1.0-SNAPSHOT</version>
      <packaging>pom</packaging>
    
      <name>dog-cloud-parent</name>
      <url>http://maven.apache.org</url>
      <modules>
        <module>dog-po</module>
        <module>dog-provider-8001</module>
        <module>dog-consumer-80</module>
      </modules>
    
      <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    
        <spring-boot.version>1.5.9.RELEASE</spring-boot.version>
    
        <junit.version>3.8.1</junit.version>
        <log4j.version>1.2.17</log4j.version>
        <lombok.version>1.16.8</lombok.version>
        <java.version>1.8</java.version>
    
        <mysql-connector.version>8.0.15</mysql-connector.version>
      </properties>
    
    
        <dependencyManagement>
          <dependencies>
    
            <dependency>
              <groupId>org.springframework.cloud</groupId>
              <artifactId>spring-cloud-dependencies</artifactId>
              <version>Dalston.SR1</version>
              <type>pom</type>
              <scope>import</scope>
            </dependency>
            <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-dependencies</artifactId>
              <version>${spring-boot.version}</version>
              <type>pom</type>
              <scope>import</scope>
            </dependency>
    
    
            <!--注意驱动选择,如果mysql安装的是5.7的,可以用5.0.4,如果安装的是8.x的,要用8.0.15-->
            <dependency>
              <groupId>mysql</groupId>
              <artifactId>mysql-connector-java</artifactId>
    <!--          <version>5.0.4</version>-->
              <version>${mysql-connector.version}</version>
            </dependency>
    
            <dependency>
              <groupId>com.alibaba</groupId>
              <artifactId>druid</artifactId>
              <version>1.0.31</version>
            </dependency>
    
            <dependency>
              <groupId>org.mybatis.spring.boot</groupId>
              <artifactId>mybatis-spring-boot-starter</artifactId>
              <version>1.3.0</version>
            </dependency>
    
            <dependency>
              <groupId>ch.qos.logback</groupId>
              <artifactId>logback-core</artifactId>
              <version>1.2.3</version>
            </dependency>
    
            <dependency>
              <groupId>junit</groupId>
              <artifactId>junit</artifactId>
              <version>${junit.version}</version>
              <scope>test</scope>
            </dependency>
    
            <dependency>
              <groupId>log4j</groupId>
              <artifactId>log4j</artifactId>
              <version>${log4j.version}</version>
            </dependency>
    
          </dependencies>
       </dependencyManagement>
    
    </project>
    

1.3.2 管理实体项目:dog-po

  • 如下:
    在这里插入图片描述
    <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>com.liu.susu</groupId>
            <artifactId>dog-cloud-parent</artifactId>
            <version>1.0-SNAPSHOT</version>
        </parent>
    
        <artifactId>dog-po</artifactId>
        <packaging>jar</packaging>
    
        <name>dog-po</name>
        <url>http://maven.apache.org</url>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.18.26</version>
            </dependency>
    
        </dependencies>
    
    </project>
    

1.3.3 服务提供者:dog-provider-8001

1.3.3.1 简单项目结构

  • 如下:
    在这里插入图片描述

1.3.3.2 pom文件

  • 如下:
    <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>com.liu.susu</groupId>
            <artifactId>dog-cloud-parent</artifactId>
            <version>1.0-SNAPSHOT</version>
        </parent>
    
        <artifactId>dog-provider-8001</artifactId>
        <packaging>jar</packaging>
    
        <name>dog-provider-8001</name>
        <url>http://maven.apache.org</url>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>
    
        <dependencies>
    
            <dependency>
                <groupId>com.liu.susu</groupId>
                <artifactId>dog-po</artifactId>
                <version>${project.version}</version>
            </dependency>
    
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <scope>test</scope>
            </dependency>
    
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-core</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
            </dependency>
    
            <!--下面这几个,版本同${spring-boot.version}-->
            <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>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-jetty</artifactId>
            </dependency>
    
            <!--热部署  版本同${spring-boot.version}-->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>springloaded</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
            </dependency>
    
        </dependencies>
    </project>
    

1.3.3.3 yml文件

  • 如下:
    server:
      port: 8001
    
    spring:
      application:
        name: dog-provider
      datasource:
        type: com.alibaba.druid.pool.DruidDataSource
    #    driver-class-name: org.gjt.mm.mysql.Driver    # mysql5.7的
        driver-class-name: com.mysql.cj.jdbc.Driver    # mysql8.x版本的
        #    url: jdbc:mysql://localhost:3306/dogCloud
        url: jdbc:mysql://localhost:3306/dogCloud?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false
        username: root
        password: susu@123
        dbcp2:
          min-idle: 5        # 数据库连接池的最小维持连接数
          initial-size: 5    # 初始化连接数
          max-total: 5       # 最大连接数
          max-wait-millis: 200    # 等待连接获取的最大超时时间
    
    mybatis:
      config-location: classpath:mybatis/mybatis-config.xml
      type-aliases-package: com.liu.susu.pojo     # 所有entity实体别名类实体所在包
      mapper-locations:
        - classpath:mybatis/mapper/**/*.xml
    

1.3.4 服务消费者:dog-consumer-80

1.3.4.1 项目目录结构

  • 如下:
    在这里插入图片描述

1.3.4.2 pom文件

  • 如下:
    <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>com.liu.susu</groupId>
            <artifactId>dog-cloud-parent</artifactId>
            <version>1.0-SNAPSHOT</version>
        </parent>
    
        <artifactId>dog-consumer-80</artifactId>
        <description>微服务消费者-狗狗</description>
        <packaging>jar</packaging>
    
        <name>dog-consumer-80</name>
        <url>http://maven.apache.org</url>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>com.liu.susu</groupId>
                <artifactId>dog-po</artifactId>
                <version>${project.version}</version>
            </dependency>
    
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <scope>test</scope>
            </dependency>
    
            <!--下面这几个,版本同${spring-boot.version}-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <!--热部署  版本同${spring-boot.version}-->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>springloaded</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
            </dependency>
    
        </dependencies>
    </project>
    

1.3.4.3 yml文件

  • 如下:
    在这里插入图片描述

1.3.4.4 配置类

  • 如下:
    package com.liu.susu.config;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.client.RestTemplate;
    
    /**
     * @Description
     * @Author susu
     */
    
    @Configuration  
    public class ConfigBean {
    
        @Bean
        public RestTemplate getRestTemplate(){
            return new RestTemplate();
        }
    
    }
    

1.4 访问

1.4.1 直接访问服务提供者

  • 如下:
    在这里插入图片描述

1.4.2 访问服务消费者

  • 如下:
    在这里插入图片描述

2. 建立EurekaServer服务注册中心(本地)

2.1 创建子模块—EurekaServer服务注册中心

  • 在上面基础上再创建一个子模块,如下:
    在这里插入图片描述

2.2 pom文件

  • 如下:
    在这里插入图片描述

    <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>com.liu.susu</groupId>
            <artifactId>dog-cloud-parent</artifactId>
            <version>1.0-SNAPSHOT</version>
        </parent>
    
        <artifactId>dog-eureka-7001</artifactId>
        <packaging>jar</packaging>
    
        <name>dog-eureka-7001</name>
        <url>http://maven.apache.org</url>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>
    
        <dependencies>
    
            <!-- eureka-server 服务端
                 版本号继承父工程  -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-eureka-server</artifactId>
            </dependency>
    
        </dependencies>
    
    </project>
    

2.3 yml文件

  • 如下:
    在这里插入图片描述

    server:
      port: 7001
    
    eureka:
      instance:
        hostname: localhost    # eureka服务端的实例名
      client:
        register-with-eureka: false  # false表示不向注册中心注册自己
        fetch-registry: false    # false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
        service-url:   # 设置与eureka server交互的地址查询服务和注册服务都需要依赖这个地址
          defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
    

2.4 启动类

  • 注意加注解 @EnableEurekaServer ,如下:
    在这里插入图片描述

3. 将微服务注册进EurekaServer服务注册中心(本地)

3.1 将服务提供者注册到EurekaServer服务注册中心

3.1.1 修改pom文件

  • 如下:
    在这里插入图片描述
      <!--引入eureka-client(eureka客户端),将微服务provider注册进eureka-->
      <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-eureka</artifactId>
      </dependency>
      <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-config</artifactId>
      </dependency>
    

3.1.2 修改yml文件

  • 如下:
    在这里插入图片描述
    eureka:
      client: # 客户端注册进eureka服务列表内
        service-url:
          defaultZone: http://localhost:7001/eureka
    

3.1.3 启动类加注解

  • 如下:
    @EnableEurekaClient 
    
    在这里插入图片描述

3.1.4 测试

  • 启动EurekaServer 和 服务提供者,查看注册情况,如下:
    在这里插入图片描述

3.1.5 控制访问路径显示IP地址

  • 如下
    在这里插入图片描述

3.1.6 完善微服务info内容

  • 完善前的如下:
    在这里插入图片描述
    要想完善,如下:

3.1.6.1 修改pom文件

3.1.6.1.1 微服务的pom文件
  • 如下:

    <!--完善微服务的info (actuator监控信息完善),版本同${spring-boot.version}-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    
3.1.6.1.2 父工程的pom文件
  • 添加build构建信息,如下:
    在这里插入图片描述
      <build>
        <finalName>dog-cloud-parent</finalName>
        <resources>
          <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering> <!--过滤开启-->
          </resource>
        </resources>
        <plugins>
          <plugin> <!--插件负责解析和解读-->
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
          </plugin>
        </plugins>
      </build>
    
  • 另外,关于maven的其他配置可以看下面的文章,如下
    Maven中的小学问(版本问题、打包问题等).

3.1.6.2 修改yml文件

  • 添加下面内容,如下:
    在这里插入图片描述
    info:
      app.name: demo-dog-cloud-parent
      company.name: com.liu.susu
      build.artifactId: ${project.artifactId}
      build.version: ${project.version}
    

3.1.6.3 观看效果

  • 如下:
    在这里插入图片描述

4. Eureka服务发现(本地)

4.1 提供发现服务的接口

4.1.1 服务提供者

  • 如下:
    在这里插入图片描述
    package com.liu.susu.controller;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.cloud.client.ServiceInstance;
    import org.springframework.cloud.client.discovery.DiscoveryClient;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    /**
     * @Description
     * @Author susu
     */
    
    @RestController
    public class EurekaController {
    
        @Autowired
        private DiscoveryClient discoveryClient;
    
        @RequestMapping("/services/discoveryServices")
        public Object discoveryServices(){
            List<String> serviceList = discoveryClient.getServices();
            System.out.println(serviceList);
    
            Map<String, List<ServiceInstance>> serviceMap = new HashMap<>();
    
            for (String clientStr : serviceList) {
                List<ServiceInstance> instances = discoveryClient.getInstances(clientStr.toUpperCase());
                serviceMap.put(clientStr,instances);
            }
            return serviceMap;
        }
    
    }
    

4.1.2 服务消费者

  • 如下:
    在这里插入图片描述

    package com.liu.susu.controller;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.client.RestTemplate;
    
    /**
     * @Description
     * @Author susu
     */
    
    @RestController
    public class EurekaConsumerController {
    
        private static final String REST_URL_PREFIX = "http://localhost:8001";//服务提供者的端口8001
    
        @Autowired
        private RestTemplate restTemplate;
    
        @RequestMapping("/consumer/services/discoveryServices")
        public Object discoveryServices(){
            String url = REST_URL_PREFIX + "/services/discoveryServices";
            return restTemplate.getForObject(url, Object.class);
        }
    
    }
    

4.2 查看效果

  • 服务提供者,如下:
    在这里插入图片描述
  • 服务消费者,如下:
    在这里插入图片描述

5. Eureka集群

5.1 Eureka单机(远程服务器)

5.1.1 创建Eureka Server项目

  • 为了整个微服务项目看着简洁,就把Eureka Server项目单独拿出来了,重新创建如下
    在这里插入图片描述

5.1.2 项目简单配置

5.1.2.1 pom文件

  • 如下:
    <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>
    
      <groupId>com.liu.susu</groupId>
      <artifactId>cloud-eureka</artifactId>
      <version>1.0-SNAPSHOT</version>
      <packaging>jar</packaging>
    
      <name>cloud-eureka</name>
      <url>http://maven.apache.org</url>
    
      <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      </properties>
    
      <dependencies>
        <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-eureka-server</artifactId>
          <version>1.3.1.RELEASE</version>
        </dependency>
    
      </dependencies>
    
    
      <build>
        <resources>
          <resource>
            <directory>src/main/java</directory>
            <includes>
              <include>**/*.*</include>
            </includes>
          </resource>
          <resource>
            <directory>src/main/resources</directory>
            <includes>
              <include>**/*.*</include>
            </includes>
          </resource>
        </resources>
        <plugins>
          <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>1.5.9.RELEASE</version>
                <configuration>
                  <mainClass>com.liu.susu.App</mainClass>
                </configuration>
                <executions>
                  <execution>
                    <id>repackage</id>
                    <goals>
                      <goal>repackage</goal>
                    </goals>
                  </execution>
                </executions>
          </plugin>
        </plugins>
        <finalName>${project.name}</finalName>
      </build>
    
    </project>
    

5.1.2.2 yml文件

  • 如下:
    server:
      port: 2886
    
    eureka:
      instance:
        hostname: eureka-142    # eureka服务端的实例名
      client:
        register-with-eureka: false  # false表示不向注册中心注册自己
        fetch-registry: false    # false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
    

5.1.2.3 启动类

  • 如下:
    在这里插入图片描述

5.1.3 服务提供者yml配置

  • 地址换成启动服务的IP地址,如下:
    在这里插入图片描述

5.1.4 启动看效果

  • 如下:
    在这里插入图片描述

5.2 Eureka集群(远程服务器)

5.2.1 EurekaServer准备yml配置文件

  • 我这里直接准备了3个,当然一个也行,如果你部署的时候不嫌麻烦,可以修改一个,我这里为了部署方便,直接3套备好,如下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 每次只需要修改环境即可:
    在这里插入图片描述
  • 配置IP时,逗号后面不能有空格(注意!注意!注意!),通用配置如下:
    # 1. 集群配置---175机器上
    server:
      port: 2886
    
    eureka:
      instance:
        hostname: eureka-142    # eureka服务端的实例名
      client:
        register-with-eureka: false  # false表示不向注册中心注册自己
        fetch-registry: false    # false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
        service-url:   # 配置其他两台机器的IP
          defaultZone: http://IP2:2886/eureka/,http://IP3:2886/eureka/  # 注意:逗号后面不能有空格!!!!
    

5.2.2 微服务修改yml文件

  • 这里的微服务还是上面的服务提供者,如下:
    在这里插入图片描述

5.2.3 启动Eureka集群 和 微服务

  • 这里的微服务就是上面的服务提供者,效果如下:
    在这里插入图片描述

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

6. 附项目

  • 如下:
    1-Eureka服务注册与发现以及Eureka集群搭建(实操型).

http://lihuaxi.xjx100.cn/news/1293891.html

相关文章

实现对一个元素的滚动条进行平滑滚动至顶部的动画效果

1.elementUI中的平滑滚动至顶部的动画效果代码 const cubic value > Math.pow(value, 3); const easeInOutCubic value > value < 0.5 ? cubic(value * 2) / 2 : 1 - cubic((1 - value) * 2) / 2;const el this.el; const beginTime Date.now(); const beginVal…

雅迪渐进、小牛徐行,两轮电动车“尖子生”竞争加剧

配图来自Canva可画 2023年中旬&#xff0c;两轮电动车品牌陆续上新车&#xff0c;对外展示品牌实力和创新力。 5月9日&#xff0c;哈啰智能电动车发布“极智系列”三款搭载了哈啰图灵T30智能平台的新车&#xff1b;5月10日&#xff0c;九号公司发布全新设计的E系列电摩顶配车型…

最佳实践|亚马逊可持续发展的架构模型

在过去的十年里面&#xff0c;亚马逊云科技一直都致力于帮助企业和开发者实现数字化转型&#xff0c;包括如何使用云技术帮助企业提高运营中资源利用率&#xff1b;如何通过云基础架构、容器、DevOps 进行业务的创新和敏捷性&#xff1b;未来的十年&#xff0c;亚马逊云科技将帮…

数据倾斜排查

一、问题现象 租户反馈&#xff0c;任务执行时长加长&#xff0c;执行过程中任务卡在 99%&#xff0c;大概率是出现了数据倾斜 二、排查过程 数据倾斜大多数都是大 key 问题导致的。排查方法如下&#xff1a; 1.时间判断 reduce 的时间比其他 reduce 时间长的多&#xff0c;大…

从四个角度全面认识 ChatGPT

传统语言模型是什么样的&#xff1f;ChatGPT 涌现出了哪些新能力&#xff1f;这些能力都是怎么做到的&#xff1f;在 ChatGPT 大模型时代&#xff0c;我们应该怎么做&#xff1f; 当下最引人注目的语言模型 ChatGPT 如火如荼&#xff0c;主要还是因为其能力远远超越了传统模型。…

劫持react组件

劫持props 假设我们有一个原组件&#xff0c;它接收一个 name prop&#xff0c;并显示一个问候语&#xff1a; // 原组件 function Greeting(props) {return <h1> Hello, {props.name}! </h1>; }我们可以定义一个高阶组件&#xff0c;它可以通过 props 传递一个 …

Linux教程——Linux用户和用户组(包含两者之间的关系)

Linux 是多用户多任务操作系统&#xff0c;换句话说&#xff0c;Linux 系统支持多个用户在同一时间内登陆&#xff0c;不同用户可以执行不同的任务&#xff0c;并且互不影响。 例如&#xff0c;某台 Linux 服务器上有 4 个用户&#xff0c;分别是 root、www、ftp 和 mysql&…

PDF如何转换成Word?PDF转Word方法分享!​

PDF大家都不陌生了吧&#xff1f;作为打工人&#xff0c;学生党的大家都知道&#xff0c;PDF是现在不可或缺的文件传输工具之一&#xff0c;不仅可将文档转为Word&#xff0c;还可以转成excel,ppt等各种形式&#xff0c;其重要性不言而喻&#xff0c;那么今天小编就跟大家具体说…