分布式Day01

1.京淘项目架构设计
1.1 互联网架构设计特点
1.1.1高并发

    用户在同一时间内大量的访问服务器.      tomcat服务器并发能力:  200-250 (JVM调优1000)    硬件条件: 物理服务器处理能力 网络带宽.
1
1.1.2.分布式
    1).分布式计算
            由多个线程,共同来完成某项特定的任务.  拆合问题
    2.分布式系统
            鸡蛋不要放到一个篮子里(分布式).
            tomcat服务器可以准备多台,分别部署到不同的位置.防止断电...带来的影响

1.1.3.集群
        搭建tomcat服务器集群,是抗击高并发的有效的手段.
1.1.4.高可用性(HA)
     一般在集群中设置高可用. 当服务器发生异常时,可以由程序自动的实现故障的迁移.而不要人为的参与.
1
1.1.5.数据安全性
一般的数据安全性 需要防止黑客.保证数据库安全性/数据备份/自动完成备份.
阿里巴巴: 技术型公司

1.2 京淘项目架构设计

在这里插入图片描述
2. 数据库表设计
2.1 数据库表关系
核心: 站在一个角度考虑问题.

2.1.1 一对一
用户与部门 一个用户只有一个部门 所以一对一
用户与用户详情 一个用户对应一个详情 一对一
一个详情对应一个用户 一对一

在这里插入图片描述
2.1.2 一对多
部门与用户 一个部门下边有多个用户 一对多

 在这里插入图片描述


2.1.3 多对多
案例:
1. 角色和权限 一个角色对应多个权限
一个权限对应多个角色
表的个数: 一般的多对多都是三张表 有中间表的参与

在这里插入图片描述
2.2 京淘表设计

 在这里插入图片描述


2.3 导入数据表
2.3.1 安装数据库工具

在这里插入图片描述
2.3.2 创建数据库链接

在这里插入图片描述 


2.3.3 导入数据库
1).导入数据库

在这里插入图片描述

2).添加数据库文件

在这里插入图片描述

3).操作数据表

在这里插入图片描述
3.SpringBoot高级用法
3.1 关于maven复习
3.1.1 什么是maven
maven是一站式的项目管理工具. 包括项目的构建/项目运行/项目打包/项目发布等功能于一身.
1

 在这里插入图片描述


3.1.2 检查本地仓库位置
1).maven配置文件位置 配置路径随意 但是位置需要固定

在这里插入图片描述
2).检查本地库地址

 在这里插入图片描述


3).检查私服镜像地址

 <mirror>
    <id>aliyun</id>
    <name>aliyun for maven</name>
    <mirrorOf>*</mirrorOf>
    <url>https://maven.aliyun.com/repository/public</url>
   </mirror>

3.1 IDEA环境配置
3.1.1 安装lombok插件

在这里插入图片描述
3.1.2 安装Spring工具包

 在这里插入图片描述


3.1.3 修改缩放

在这里插入图片描述
3.1.4 配置大小写提示

在这里插入图片描述 


3.1.5 参数提示

在这里插入图片描述
3.1.6 添加自动编译

 在这里插入图片描述


3.1.7 配置自动保存(版本差异)

在这里插入图片描述
3.1.8 配置maven环境

 在这里插入图片描述


3.2 JDK检查

在这里插入图片描述
3.3 SpringBoot入门案例
3.3.1 创建项目

 在这里插入图片描述


3.3.2 选择jar包
由于入门案例,暂时不需要其他包

在这里插入图片描述
3.3.3 maven命令说明
1). install 命令
将项目按照坐标,生成jar/war包.

在这里插入图片描述 

2).clean 删除项目中的target文件目录及内容.
3).compile 将.java文件 编译为.class文件 一般在开发中使用,如果需要打包部署 直接使用install.

3.3.4 项目发布
命令: java -jar xxx.jar

在这里插入图片描述

万能取消组合键: CTRL + C

3.4 项目开发整体流程
甲方(爸爸)---------> 招投标(不错公关部门)------->项目经理(指挥官)------->确定团队(产品部/设计部/研发部/测试部/实施部/运维部)------>产品经理负责出图(原型图–业务逻辑)-------->UI设计----------->WEB开发工程师-------->后端开发工程师----->测试人-------->运维人员.

4.SpringBoot编辑项的说明
4.1 关于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>

    <!--
        项目坐标: 将来生成的jar/war包在指定的目录中进行存储
        作用:  方便通过坐标的形式查找项目的jar包.
    -->
    <!--组ID定义 一般由公司域名倒写-->
    <groupId>com.jt</groupId>
    <!--项目ID: 一般定义项目名称 必须唯一-->
    <artifactId>springboot_demo1</artifactId>
    <!--版本号-->
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot_demo1</name>
    <description>Demo project for Spring Boot</description>

    <!--
        PARENT标签定义了 springBoot2.4.1的大版本中所有的相关依赖的jar包的版本号
        的配置信息
        旧的工程: jar包特别的容易冲突
    -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.1</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>


    <properties>
        <!--定义当前项目运行时jdk版本-->
        <java.version>1.8</java.version>
        <!--跳过测试类打包-->
        <skipTests>true</skipTests>
    </properties>

    <dependencies>
        <!--问题1: 当程序解析到dependency 程序加载jar包文件???
            说明:根据依赖的坐标去本地仓库中按照指定的位置查找jar包文件
            之后进行依赖.
        -->

        <!--问题2: maven中的jar包具有依赖的传递的
            依赖传递性:  A依赖B,  B依赖C
            当依赖了A时,会自动的添加B/C

            实现原理:
                maven工具坐标首先加载jar包文件.但是jar包文件本身就是一个
                maven项目.所以maven程序又会去加载该jar包文件的xxx.pom
                进行解析 再次添加额外的包.至此实现了依赖的传递性.
        -->

        <!--问题3: 如何保证jar包文件的安全性 不被别人篡改.
            文件加密:  md5加密/sha1算法
            答: 采用sha1算法动态生成文件的摘要,之后与原服务器数据进行对比
        -->
        <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>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>


4.2 SHA1算法说明
SHA-1(英语:Secure Hash Algorithm 1,中文名:安全散列算法1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。
十六进制数: 0-9 A-F 全复式之后+1 结果是否重复???

常识:
1). 如果对相同的数据进行hash计算,问值是否相同? 相同
2). 如果对不同数据进行hash计算 问值是否相同? 可能相同 hash碰撞!!!
3). 一个文件1M,一个文件1G 问hash计算的速度那个快? A. 一样快(理论值)
时间复杂度O(1)

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41819851/article/details/130309815