springcloud之Eureka

news2024/9/23 7:21:00

idea项目创建

1.创建一个project,然后把src目录删掉
2.修改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>

    <groupId>org.tang</groupId>
    <artifactId>springcloud</artifactId>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>springcloud-api</module>
        <module>springcloud-provider-dept-8001</module>
        <module>springcloud-consumer-dept80</module>
        <module>springcloud-eureka-7001</module>
    </modules>

    <!--1. 打包方式 pom-->
    <packaging>pom</packaging>
    <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>
        <junit.version>4.12</junit.version>
        <log4j.version>1.2.17</log4j.version>
        <lombok.version>1.16.18</lombok.version>
    </properties>
    <!-- 2. 父工程 管理-->
    <dependencyManagement>
    <!-- 2.1 供子工程依赖-->
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>0.2.0.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- 2.1 springCloud的依赖-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--2.1 SpringBoot-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.1.4.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--2.2 数据库-->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.47</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.1.10</version>
            </dependency>
            <!-- 2.3 SpringBoot 启动器-->
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>1.3.2</version>
            </dependency>
            <!-- 2.4 日志测试~-->
            <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>
            </dependency>
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>${log4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${lombok.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>

3.创建module模块
创建springcloud-api,主要是实体类,跟数据库

在这里插入图片描述

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">
    <parent>
        <artifactId>springcloud</artifactId>
        <groupId>org.tang</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>springcloud-api</artifactId>
    <!-- 当前的Module自己需要的依赖,如果父依赖中已经配置了版本,这里就不用写了   -->
    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

    </dependencies>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

</project>
package com.tang.springcloud.pojo;



import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;

@Data
@NoArgsConstructor
@Accessors(chain = true) //链式写法
public class Dept implements Serializable {
//    实体类 orm-> 表
    private Long deptno; //主键
    private String dname;

    //这个数据存在数据库的字段,微服务,一个服务对应一个数据库
    private String db_source;

    public Dept(Long deptno, String dname, String db_source) {
        this.deptno = deptno;
        this.dname = dname;
        this.db_source = db_source;
    }

    /**
     * 链式写法
     * Dept dept = new Dept()
     * dept.setDeptNo(11).setDname('ssss').setDb_source('001')
     * */


}

4.创建provider,服务提供者
创建module模块,springcloud-provider-dept-8001
在这里插入图片描述

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">
    <parent>
        <artifactId>springcloud</artifactId>
        <groupId>org.tang</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>springcloud-provider-dept-8001</artifactId>

    <dependencies>

        <!--导入Eureka Server依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
            <version>1.4.6.RELEASE</version>
            <!--去除jackson-dataformat-xml,否则会返回xml文件,而不是JSON-->
            <exclusions>
                <exclusion>
                    <groupId>com.fasterxml.jackson.dataformat</groupId>
                    <artifactId>jackson-dataformat-xml</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- 我们需要拿到实体类,所以要配置api module-->
        <dependency>
            <groupId>org.tang</groupId>
            <artifactId>springcloud-api</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <!-- mybatis整合Springboot -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
        </dependency>
        <!-- junit-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </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.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <!-- test-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-test</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- jetty-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jetty</artifactId>
        </dependency>
        <!-- 热部署
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>
        -->
    </dependencies>


    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

</project>
server:
  port: 8001

#mybaties 配置
#mybaties:
#  type-aliases-package: com.tang.springcloud.pojo
#  config-location: classpath:mybatis/mybatis-config.xml
#  mapper-locations: classpath:mybatis/mapper/*.xml

#spring 配置
spring:
  application:
    name: springcloud-provider-dept
#  datasource:
#    type: com.alibaba.druid.pool.DruidDataSource
#    driver-class-name: org.gjt.mm.mysql.Driver
#    url: jdbc:mysql://localhost:3306/db01?useUnicode=true&characterEncoding=utf-8
#    username: root
#    password: 123456

#Eureka配置
eureka:
  instance:
    instance-id: springcloud-provider-dept8001 #修改eureka上的默认描述信息
  # hostname: provider8001 # Eureka服务端的实例名称
  client:
    service-url: #监控页面
      #      this.serviceUrl.put("defaultZone", "http://localhost:8761/eureka/");
#      defaultZone: http://localhost:7001/eureka/,http://localhost:7002/eureka/,http://localhost:7003/eureka/
      defaultZone: http://localhost:7001/eureka/

#info配置
info:
  app.name: tangshen-springcloud
  company.name: www.duxiaowei.com

package com.tang.springcloud.service;

import com.tang.springcloud.pojo.Dept;

import java.util.List;

public interface DeptService {

//    public boolean addDept(Dept dept);

    public Dept queryById(Long id);

//    public List<Dept> queryAll();

}

package com.tang.springcloud.service;

//import com.tang.springcloud.dao.DeptDao;
import com.tang.springcloud.pojo.Dept;
import lombok.experimental.Accessors;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
@Service
@Accessors(chain = true) //链式写法
public class DeptServiceImpl implements DeptService{

//    @Autowired
//    private DeptDao deptDao;

//    @Override
//    public boolean addDept(Dept dept) {
//        return deptDao.addDept(dept);
//    }

    @Override
    public Dept queryById(Long id) {

//        造一个对象
        Dept dept = new Dept();
        System.out.println("DeptServiceImpl");
        dept.setDeptno(11L).setDname("duxiaowei").setDb_source("db_source");

        return dept;
    }


//    @Override
//    public List<Dept> queryAll() {
//        return deptDao.queryAll();
//    }
}

package com.tang.springcloud.controller;


import com.tang.springcloud.pojo.Dept;
import com.tang.springcloud.service.DeptService;
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.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

//提供Restfu服务
@RestController
public class DeptController {
    @Autowired
    private DeptService deptService;
    //获取一些配置的信息,得到具体的微服务
    @Autowired
    private DiscoveryClient client;

    @GetMapping("/dept/get/{id}")
    public Dept get(@PathVariable("id") Long id) {
        System.out.println("controller");
        return deptService.queryById(id);


    }

    //注册进来的微服务,获取一些消息
    @GetMapping("/dept/discovery")
    public Object discovery(){
        //获取微服务列表的清单
        List<String> services = client.getServices();
        System.out.println("discovery==> services"+ services);
        //得到一个具体的微服务信息,通过具体的微服务id,applicationName
        List<ServiceInstance> instances = client.getInstances("SPRINGCLOUD-PROVIDER-DEPT");
        for (ServiceInstance instance : instances) {
            System.out.println("----------------------------------------");
            System.out.println(
                    instance.getHost()+"\t"+
                    instance.getPort()+"\t"+
                    instance.getUri()+"\t"+
                    instance.getServiceId()+"\t"
            );

        }
        return this.client;

    }
}

package com.tang.springcloud;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;


//启动类
@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class})
@EnableEurekaClient   //开启Eureka客户端注解,在服务启动后自动向注册中心注册服务
@EnableDiscoveryClient //服务发现
public class DeptProvider_8001 {
    public static void main(String[] args) {
        SpringApplication.run(DeptProvider_8001.class,args);
    }
}

可以先关闭Eureka开关,启动,调用接口测试,接口服务是否可用

5.创建Eureka注册中心 ,springcloud-eureka-7001
在这里插入图片描述
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">
    <parent>
        <artifactId>springcloud</artifactId>
        <groupId>org.tang</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>springcloud-eureka-7001</artifactId>

    <dependencies>
        <!--导入Eureka Server依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
            <version>1.4.6.RELEASE</version>
        </dependency>
        <!--热部署工具-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>
    </dependencies>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

</project>
server:
  port: 7001

#Eureka
eureka:
  instance:
    hostname: localhost # Eureka服务端的实例名称
  client:
    register-with-eureka: false #标识是否想注册中心注册自己
    fetch-registry: false #fetch-registry如果为false表示自己为注册中心
    service-url: #监控页面
#      this.serviceUrl.put("defaultZone", "http://localhost:8761/eureka/");
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
#      defaultZone: http://localhost:7002/eureka/,http://localhost:7003/eureka/


package com.tang.springcloud;

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

@SpringBootApplication
@EnableEurekaServer  //服务端的启动类,可以接受别人注册进来~
public class EurekaServer_7001 {
    public static void main(String[] args) {
        SpringApplication.run(EurekaServer_7001.class,args);
    }
}

测试
注册中心:http://localhost:7001/
在这里插入图片描述

服务提供者:http://localhost:8001/dept/discovery
在这里插入图片描述
6. 消费者,
在这里插入图片描述
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">
    <parent>
        <artifactId>springcloud</artifactId>
        <groupId>org.tang</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>springcloud-consumer-dept80</artifactId>

    <dependencies>
        <!--导入Eureka Server依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
            <version>1.4.6.RELEASE</version>
            <!--去除jackson-dataformat-xml,否则会返回xml文件,而不是JSON-->
            <exclusions>
                <exclusion>
                    <groupId>com.fasterxml.jackson.dataformat</groupId>
                    <artifactId>jackson-dataformat-xml</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.tang</groupId>
            <artifactId>springcloud-api</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

    </dependencies>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

</project>
server:
  port: 80



#spring 配置,应用名
spring:
  application:
    name: springcloud-customer
#Eureka配置
eureka:
  instance:
    instance-id: springcloud-customer-dept80 #修改eureka上的默认描述信息
  # hostname: provider8001 # Eureka服务端的实例名称
  client:
    service-url: #监控页面
      #      this.serviceUrl.put("defaultZone", "http://localhost:8761/eureka/");
      #      defaultZone: http://localhost:7001/eureka/,http://localhost:7002/eureka/,http://localhost:7003/eureka/
      defaultZone: http://localhost:7001/eureka/

package com.tang.springcloud.controller;

import com.tang.springcloud.pojo.Dept;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

@RestController
public class DeptConsumerController {
    //理解:消费者,不应该有service层
    //Restful,
    // public <T> ResponseEntity<T> getForEntity(String url, Class<T> responseType, Map<String, ?> uriVariables)
    //使用RestTemplate访问restful接口非常的简单粗暴且无脑
    //(url,requestMap,ResponseBean.class) 这三个参数分别代表
    //REST请求地址,请求参数,Http响应转换 被 转换成的对象类型


    @Autowired
    private RestTemplate restTemplate;//提供多种便捷访问远程http服务的方法,简单的Restful服务模板

//    private static final String REST_URL_PREFIX = "http://localhost:8001";
    private static final String REST_URL_PREFIX = "http://localhost:8001";

    @GetMapping("/customer/dept/get/{id}")
    public Dept get(@PathVariable("id") Long id) {
        System.out.println("consumer------");
        System.out.println(REST_URL_PREFIX+"/dept/get/"+id);
        return restTemplate.getForObject(REST_URL_PREFIX+"/dept/get/"+id,Dept.class);
    }

}

package com.tang.springcloud.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class ConfigBean {
    //@Configuration = spring applicationContext.xml
    // 配置bean
    @Bean
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }
}

package com.tang.springcloud;

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

@SpringBootApplication
@EnableEurekaClient   //开启Eureka客户端注解,在服务启动后自动向注册中心注册服务
public class DeptConsumer_80 {
    public static void main(String[] args) {
        SpringApplication.run(DeptConsumer_80.class,args);
    }
}

测试

在这里插入图片描述

Eureka注册中心

注册中心概述

注册中心:提供服务注册和发现功能,维护了一张服务列表,登记了有哪些服务提供者,然后服务消费者每次请求这张登记表来进行服务调用。

服务提供者:提供服务的模块,需要把自己注册到注册中心。

服务消费者:从注册中心获取服务列表,向服务提供者请求服务。

  • 心跳

因为服务提供者可能故障,所以设有保活机制—-心跳检测。

心跳:提供者定期发送消息向Eureka刷新自己的状态

  • 服务注册

服务提供者在启动时,会检测配置属性中的:eureka.client.register-with-erueka=true参数是否正确,事实上默认就是true。如果值确实为true,则会向EurekaServer发起一个Rest请求,并携带自己的元数据信息,Eureka Server会把这些信息保存到一个双层Map结构中。第一层Map的Key就是服务名称,第二层Map的key是服务的实例id。(第二层Map为了支持服务提供者多机集群)

  • 高可用

修改Euraka配置文件,把EurekaServer自己也作为一个服务,向其他注册中心进行注册。

就是集群,水平扩展,在其他机器上部署注册中心,然后注册中心之间互相调用。出现单机故障时,存活的注册中心继续提供服务注册和发现功能。

  • 服务续约

在注册服务完成以后,服务提供者会维持一个心跳(定时向EurekaServer发起请求),告诉EurekaServer:“我还活着”。这个我们称为服务的续约(renew);

  • 失效剔除

有些时候,我们的服务提供方并不一定会正常下线,可能因为内存溢出、网络故障等原因导致服务无法正常工作。Eureka Server需要将这样的服务剔除出服务列表。因此它会开启一个定时任务,每隔60秒对所有失效的服务(超过90秒未响应)进行剔除。

可以通过eureka.server.eviction-interval-timer-in-ms参数对其进行修改,单位是毫秒,生成环境不要修改。

  • 保护模式

这是触发了Eureka的自我保护机制。当一个服务未按时进行心跳续约时,Eureka会统计最近15分钟心跳失败的服务实例的比例是否超过了85%。在生产环境下,因为网络延迟等原因,心跳失败实例的比例很有可能超标,但是此时就把服务剔除列表并不妥当,因为服务可能没有宕机。Eureka就会把当前实例的注册信息保护起来,不予剔除。生产环境下这很有效,保证了大多数服务依然可用。

但是这给我们的开发带来了麻烦, 因此开发阶段我们都会关闭自我保护模式:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/67547.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java+springboot的社区维修平台

JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven 系统结构图&#xff0c;如图4-3所示。 图4-3 系统结构图管 效果图 目 录 第一…

小迪-day15(Oracle,MongoDB、access、msSQL、postgresql注入)

1、sqlmap使用 基本操作笔记&#xff1a;-u #注入点 -f #指纹判别数据库类型 -b #获取数据库版本信息 -p #指定可测试的参数(?page1&id2 -p "page,id") -D "" #指定数据库名 -T "" #指定表名 -C "" #指定字段 -s &q…

[附源码]Python计算机毕业设计Django校刊投稿系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

项目经理如何做好跨部门沟通?

在项目管理中&#xff0c;计划不明确&#xff0c;职责定义不清晰&#xff0c;会造成沟通不畅&#xff0c;互相推诿的情况&#xff0c; 也会遇到跨部门沟通&#xff0c;就是相互相对独立的部门之间的沟通协调。这也让项目经理苦不堪言。 1、明确目标&#xff0c;计划制定 制…

Java API操作HDFS

文章目录1. 创建Maven项目2. 添加相关依赖3. 创建日志属性文件4. 启动集群HDFS服务5. 在HDFS上创建文件6. 写入HDFS文件6.1 将数据直接写入HDFS文件6.2 将本地文件写入HDFS文件7. 读取HDFS文件7.1 读取HDFS文件直接在控制台显示7.2 读取HDFS文件&#xff0c;保存为本地文件8. 重…

[附源码]计算机毕业设计青栞系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

[附源码]JAVA毕业设计沙县小吃点餐系统(系统+LW)

[附源码]JAVA毕业设计沙县小吃点餐系统&#xff08;系统LW&#xff09; 项目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术…

硬核性感!沉浸式体验 ZStack Cube 超融合的7大亮点功能

什么是硬核性感&#xff1f;技术够硬核&#xff0c;体验够性感&#xff01;&#xff01; ———by 东川路最靓的仔 传统数据中心承载核心业务&#xff0c;需要采购大量硬件设备堆叠实现整体冗余架构&#xff0c;同时还需消耗大量人力成本分散运维管理。ZStack Cube 超融合一体…

为什么这几年钱越来越难赚了?而有的人完全不受影响?

为什么这几年钱越来越难赚了&#xff1f;而有的人完全不受影响&#xff1f; 很多人都在说这几年赚钱越来越难了&#xff0c;尤其疫情这几年。放眼望去&#xff0c;无论是线下还是线上&#xff0c;哀鸿遍野。 大家也习惯性的将自己生意垮掉和项目垮掉的原因归结于疫情。那疫情大…

Spring学习 | Spring简介IOC简介

文章目录一、Spring简介二、IOC2.1 简介2.2 底层原理2.3 获取对象的API学习视频&#x1f3a5;&#xff1a;https://www.bilibili.com/video/BV1Vf4y127N5 一、Spring简介 &#x1f4ac;概述&#xff1a;Spring 是轻量级的开源的JavaEE框架&#xff0c;IOC和AOP是Spring 的两个…

表单和servlet在idea中实现文件的上传

1.前端jsp的搭建。 通过typefile的input标签就可以选择要上传的文件&#xff0c;当submit提交表单的时候就可以将选定的文件以流的形式提交。要注意的技术细节就是表单中有上传文件功能时&#xff0c;必须显式的将表单enctype设置为multipart/form-data&#xff0c;不带文件上…

解决gif导出后显示异常的现象

解决gif导出后显示异常的现象 背景&#xff1a; 上次gif支持透明度后&#xff0c;https://blog.csdn.net/c553110519/article/details/127757148?spm1001.2014.3001.5501&#xff0c; 发现当输入是动态的时候&#xff0c;会出现异常现象 如下所示&#xff1a; 现象原因分析…

[附源码]Python计算机毕业设计Django校园招聘微信小程序

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

原理说明书艾美捷魔力红组织蛋白酶B活性分析试剂盒

艾美捷ICT魔力红组织蛋白酶B活性分析试剂盒被研究人员用来定量和监测培养细胞和组织中的组织蛋白酶活性。 Quantitate and monitor intracellular cathepsin-B activity over time in vitro. The Magic Red substrate in this assay fluoresces red upon cleavage by active ca…

torch.nn.functional

非线性激活函数 torch.nn.functional.threshold(input, threshold, value, inplaceFalse)torch.nn.functional.relu(input, inplaceFalse)torch.nn.functional.relu6(input, inplaceFalse)torch.nn.functional.elu(input, alpha1.0, inplaceFalse) torch.nn.functional.leaky_…

智云通CRM:如何使用万能的“三问”,提升业绩?

我们在销售产品时&#xff0c;客户往往不知道自己需要什么。如果在这样的情况下贸然推销产品&#xff0c;很容易遭到客户的厌烦。 因此&#xff0c;销售要做的就是尽可能地帮助客户整理头绪&#xff0c;激发他们的购买欲。要做到这一点&#xff0c;只需要三句话&#xff1a; …

led护眼灯有蓝光吗?双十二选led护眼灯的好处有哪些

现在的人造灯光&#xff0c;任何产品都不可能完全避免蓝光&#xff0c;市面上宣传的所谓完全无蓝光其实就是虚假宣传&#xff0c;一个是技术上几乎做不到完全无蓝光&#xff0c;另一个就是这也完全没必要&#xff0c;因为要达到比较好的光线显色效果&#xff0c;就必须要保证全…

Elasticsearch的高级查询

目录 一、条件查询 1、单条件 1&#xff09;路由查询 2&#xff09;body体查询 2、多条件查询 1&#xff09;and---must 2&#xff09;or---should 3&#xff09;范围---filter 3、全文检索、完全匹配、高亮显示 二、聚合查询 1、分组 2、求平均值 一、条件查询 1、单…

通过虚拟机搭建个人NAS

通过虚拟机搭建个人NAS 1 搭建黑群辉NAS 前期资料&#xff1a; 黑群晖系统 天翼云&#xff1a;https://cloud.189.cn/t/Vj2QRbFzq6Nn&#xff08;访问码&#xff1a;i94s&#xff09; 百度网盘&#xff1a;链接:https://pan.baidu.com/s/1MqimGhZnOTIcYfZhY5Z4lw 提取码:75n…

JSP 视频点播系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 视频点播系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开 发&#xff0c;数据库为Mysql&#xff0c;使用ja…