当前位置: 首页 > news >正文

SpringCloud学习笔记06

九十五、Cloud Alibaba简介

0、why会出现SpringCloud alibaba

Spring Cloud Netflix项目进入维护模式

1、是什么

官网:spring-cloud-alibaba/README-zh.md at 2.2.x · alibaba/spring-cloud-alibaba · GitHub 

2、能干嘛

 3、去哪下

spring-cloud-alibaba/README-zh.md at 2.2.x · alibaba/spring-cloud-alibaba · GitHub

4、怎么玩

Sentinel:把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
 
Nacos:一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
 
RocketMQ:一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。
 
Dubbo:Apache Dubbo™ 是一款高性能 Java RPC 框架。
 
Seata:阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案。
 
Alibaba Cloud ACM:一款在分布式架构环境中对应用配置进行集中管理和推送的应用配置中心产品。
 
Alibaba Cloud OSS: 阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。
 
Alibaba Cloud SchedulerX: 阿里中间件团队开发的一款分布式任务调度产品,提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。
 
Alibaba Cloud SMS: 覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。

5、官网

Spring Cloud Alibaba

九十六、Nacos简介和下载

0、SpringCloud Alibaba Nacos服务注册和配置中心

1、为什么叫Nacos

前四个字母分别为Naming和Configuration的前两个字母,最后的s为Service

2、是什么

①、一个更易于构建云原生应用的动态服务发现,配置管理和服务管理中心

②、Nacos:Dynamic Naming and Configuration Service

③、Nacos就是注册中心+配置中心的组合  等价于  Nacos = Eureka+Config+Bus

3、能干啥

①、替代Eureka做服务注册中心

②、替代Config做服务配置中心

4、去哪下

①、GitHub - alibaba/nacos: an easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications.

②、官网文档 home

5、各种注册中心比较

九十七、Nacos安装

1、运行

①、解压安装包,直接运行bin目录下的startup.cmd

②、命令运行成功后直接访问http://localhost:8848/nacos(默认账号密码都是nacos)

九十八、Nacos之服务提供者注册

1、spring的官网文档

Spring Cloud Alibaba Reference Documentation

2、Nacos作为服务注册中心演示

 ①、父POM

<!--spring cloud alibaba 2.1.0.RELEASE--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2.1.0.RELEASE</version><type>pom</type><scope>import</scope></dependency>

②、本模块POM

<?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>cloud2021</artifactId><groupId>com.nanjing.springcloud</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>cloudalibaba-provider-payment9001</artifactId><dependencies><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.62</version></dependency></dependencies>
</project>

③、YML

server:port: 9001spring:application:name: nacos-payment-providercloud:nacos:discovery:server-addr: localhost:8848 #配置Nacos地址management:endpoints:web:exposure:include: '*'

④、主启动类

package com.nanjing.springcloud.alibaba;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;/*** PaymentMain9001启动类** @author xizheng* @date 2023-03-27 18:18:19*/
@EnableDiscoveryClient
@SpringBootApplication
public class PaymentMain9001 {public static void main(String[] args) {SpringApplication.run(PaymentMain9001.class,args);}
}

⑤、业务类

package com.nanjing.springcloud.alibaba.controller;import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;/*** 付款控制器** @author xizheng* @date 2023-03-27 18:19:21*/
@RestController
public class PaymentController {@Value("${server.port}")private String serverPort;@GetMapping(value = "/payment/nacos/{id}")public String getPayment(@PathVariable("id") Integer id) {return "nacos registry, serverPort: "+ serverPort+"\t id"+id;}
}

⑥、测试

http://lcoalhost:9001/payment/nacos/1

nacos服务注册中心+服务提供者9001都ok了

⑦、为了下一章节演示nacos的负载均衡,参照9001新建9002

九十九、Nacos之服务消费者注册和负载

0、基于Nacos的服务消费者(Nacos自带支持负载均衡的,因为整合了ribbon)

 ①、POM

<?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>cloud2021</artifactId><groupId>com.nanjing.springcloud</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>cloudalibaba-consumer-nacos-order83</artifactId><dependencies><!--SpringCloud ailibaba nacos --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependency><groupId>com.nanjing.springcloud</groupId><artifactId>cloud-api-commons</artifactId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>
</project>

②、YML

server:port: 83spring:application:name: nacos-order-consumercloud:nacos:discovery:server-addr: localhost:8848# 消费者将要去访问的微服务名称(注册成功进nacos的微服务提供者)
service-url:nacos-user-service: http://nacos-payment-provider

③、主启动类

package com.nanjing.springcloud.alibaba;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;/*** OrderNacosMain83启动类** @author xizheng* @date 2023-03-27 18:36:27*/
@EnableDiscoveryClient
@SpringBootApplication
public class OrderNacosMain83 {public static void main(String[] args) {SpringApplication.run(OrderNacosMain83.class,args);}
}

④、配置类

package com.nanjing.springcloud.alibaba.config;import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;/*** ApplicationContextConfig** @author xizheng* @date 2023-03-27 18:42:01*/
@Configuration
public class ApplicationContextConfig {@Bean@LoadBalancedpublic RestTemplate getRestTemplate() {return new RestTemplate();}
}

⑤、业务类

package com.nanjing.springcloud.alibaba.controller;import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;/*** OrderNacosController控制器** @author xizheng* @date 2023-03-27 18:42:56*/
@RestController
@Slf4j
public class OrderNacosController {@Resourceprivate RestTemplate restTemplate;@Value("${service-url.nacos-user-service}")private String serverURL;@GetMapping(value = "/consumer/payment/nacos/{id}")public String paymentInfo(@PathVariable("id") Long id) {return restTemplate.getForObject(serverURL+"/payment/nacos/"+id,String.class);}}

一百、Nacos服务注册中心对比提升

1、Nacos与其他注册中心特性对比

 2、Nacos支持AP(高可用)和CP(一致性)模式的切换

一百零一、Nacos之服务配置中心

0、Nacos作为服务配置中心演示

 1、POM

<?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>cloud2021</artifactId><groupId>com.nanjing.springcloud</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><groupId>com.nanjing.springcloud.alibaba</groupId><artifactId>cloudalibaba-config-nacos-client3377</artifactId><dependencies><!--nacos-config--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><!--nacos-discovery--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!--web + actuator--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><!--一般基础配置--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>
</project>

2、why配置两个

 ①、bootstrap

server:port: 3377spring:application:name: nacos-config-clientcloud:nacos:discovery:server-addr: localhost:8848 #服务注册中心地址config:server-addr: localhost:8848 #配置中心地址file-extension: yaml #指定yaml格式的配置# ${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

②、application

spring:profiles:active: dev

3、主启动类

package com.nanjing.springcloud.alibaba;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;/*** NacosConfigClientMain3377启动类** @author xizheng* @date 2023-03-27 18:58:17*/
@EnableDiscoveryClient
@SpringBootApplication
public class NacosConfigClientMain3377
{public static void main(String[] args) {SpringApplication.run(NacosConfigClientMain3377.class, args);}
}

4、业务类

package com.nanjing.springcloud.alibaba.controller;import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;/*** 配置客户端控制器** @author xizheng* @date 2023-03-27 18:59:11*/
@RestController
@RefreshScope//实现动态刷新
public class ConfigClientController
{@Value("${config.info}")private String configInfo;@GetMapping("/config/info")public String getConfigInfo() {return configInfo;}
}

5、在Nacos中添加配置信息

①、

 ②、官网 Nacos Spring Cloud 快速开始

 ③、

 6、测试

http://localhost:3377/config/info

7、自带动态刷新

修改下Nacos中的yaml配置文件,再次调用查看配置的接口,就会发现配置已经刷新

一百零二、Nacos之命名空间分组和DataID三者关系

1、多环境多项目管理

 2、Namespace+Group+Data ID三者关系?为什么这么设计?

①、

 ②、

 一百零三、Nacos之DataID配置

一百零四、Nacos之Group分组方案

一百零五、Nacos之Namespace空间方案

一百零六、Nacos集群_架构说明

一百零七、Nacos持久化切换配置

一百零八、Nacos之Linux版本安装

一百零九、Nacos集群配置(上)

一百一十、Nacos集群配置(下)

一百一十一、Sentinel是什么

1、官网 GitHub - alibaba/Sentinel: A powerful flow control component enabling reliability, resilience and monitoring for microservices. (面向云原生微服务的高可用流控防护组件)

2、是什么

轻量级的流量控制、熔断降级Java库

3、去哪下

Releases · alibaba/Sentinel · GitHub

4、能干嘛

 5、服务使用中的各种问题

①、服务雪崩

②、服务降级

③、服务熔断

④、服务限流

一百一十二、Sentinel下载安装运行

0、

 

1、sentinel组件由2部分组成(后台、前台8080)

 2、下载

①、Releases · alibaba/Sentinel · GitHub

②、下载到本地sentinel-dashboard-1.7.0.jar

3、运行命令

①、前提:java8环境OK、8080端口不能被占用

②、命令: java -jar sentinel-dashboard-1.7.0.jar 

4、访问sentinel管理界面

①、http://localhost:8080

②、登录账号密码均为sentinel

一百一十三、Sentinel初始化监控

0、初始化演示工程

 

一百一十四、Sentinel流控规则简介

1、基本介绍

①、新增流控规则

 ②、进一步解释

 ③、

 2、直接->快速失败(系统默认)

3、流控模式

①、直接

 ②、关联、链路

 4、流控效果

一百一十五、Sentinel流控-QPS直接失败

一百一十六、Sentinel流控-线程数直接失败

一百一十七、Sentinel流控-关联

一百一十八、Sentinel流控-预热

一百一十九、Sentinel流控-排队等待

一百二十、Sentinel降级简介

1、降级规则

①、

 ②、

 2、进一步介绍

 3、Sentinel的断路器是没有半开状态的

(半开的状态系统自动去检测是否请求有异常,没有异常就关闭断路器恢复使用,有异常则继续打开断路器不可用。具体可以参考Hystrix)

一百二十一、Sentinel降级-RT

1、是什么

 2、

 3、结论

 4、

一百二十二、Sentinel降级-异常比例

1、

 2、

 3、结论

 一百二十三、Sentinel降级-异常数

1、

 2、

 3、结论

 

一百二十四、Sentinel热点key(上)

一百二十五、Sentinel热点key(下)

一百二十六、Sentinel系统规则

一百二十七、SentinelResource配置(上)

一百二十八、SentinelResource配置(中)

一百二十九、SentinelResource配置(下)

一百三十、Sentinel服务熔断Ribbon环境预说

一百三十一、Sentinel服务熔断无配置

一百三十二、Sentinel服务熔断只配置fallback

一百三十三、Sentinel服务熔断只配置blockHandler

一百三十四、Sentinel服务熔断fallback和blockHandler都配置

一百三十五、Sentinel服务熔断exceptionsToIgnore

一百三十六、Sentinel服务熔断OpenFeign

一百三十七、Sentinel持久化规则

一百三十八、分布式事务问题由来

一百三十九、Seata术语

一百四十、Seata-Server安装

一百四十一、Seata业务数据库准备

一百四十二、Seata之Order-Module配置搭建

一百四十三、Seata之Order-Module撸码(上)

一百四十四、Seata之Order-Module撸码(下)

一百四十五、Seata之Storage-Module说明

一百四十六、Seata之Account-Module说明

一百四十七、Seata之@GlobalTransactional验证

一百四十八、Seata之原理简介

一百四十九、大厂面试第三季预告片之雪花算法(上)

一百五十、大厂面试第三季预告片之雪花算法(下)

相关文章:

SpringCloud学习笔记06

九十五、Cloud Alibaba简介 0、why会出现SpringCloud alibaba Spring Cloud Netflix项目进入维护模式 1、是什么 官网&#xff1a;spring-cloud-alibaba/README-zh.md at 2.2.x alibaba/spring-cloud-alibaba GitHub 2、能干嘛 3、去哪下 spring-cloud-alibaba/README-…...

学系统集成项目管理工程师(中项)系列14_采购管理

1. 概念和术语 1.1. 采购是从项目团队外部获得产品、服务或成果的完整的购买过程 1.2. 三大类 1.2.1. 工程 1.2.2. 产品/货物 1.2.3. 服务 2. 主要过程 2.1. 编制采购管理计划 2.2. 实施采购 2.3. 控制采购 2.4. 结束采购 3. 合同 3.1. 包括买方和卖方之间的法律文…...

PMP课堂模拟题目及解析(第3期)

21. 一家农业设备制造商因一个缺陷部件而召回数千个产品。这个问题导致许多客户不满&#xff0c;公司花费 500 万美元来修理和更换零件。哪一种成本预算类型可以防止这个问题&#xff1f; A. 非一致性成本 B. 一致性成本 C. 矩阵图 D. 多标准决策分析 22. 一位团队成员…...

华为OD机试 - 微服务的集成测试( Python)

题目描述 现在有n个容器服务,服务的启动可能有一定的依赖性(有些服务启动没有依赖),其次服务自身启动加载会消耗一些时间。 给你一个 n x n 的二维矩阵useTime,其中 useTime[i][i]=10 表示服务i自身启动加载需要消耗10s useTime[i][j] = 1 表示服务i启动依赖服务j启动完…...

SLAM面试笔记(4) — 企业面试汇总

目录 1 大疆 一面&#xff08;50min&#xff09; 二面&#xff08;30min&#xff09; 三面&#xff08;30min&#xff09; 2 华为 一面&#xff08;30min&#xff09; 二面&#xff08;30min&#xff09; 三面&#xff08;30min&#xff09; 3 海康 一面&#xff08;…...

五大新兴产业中,有三个中国出口全球占比居首-机器视觉工程师正处于需求旺盛阶段

​五大新兴产业包含生物保健和电动汽车,新一代半导体、新一代显示器、二次电池。 在五大新兴产业中的三大领域——新一代半导体、新一代显示器、二次电池,中国对外出口在全球所占比重最高。 电动汽车,汽车行业一直对机器视觉工程师有着强烈的需求,无论比亚迪,特斯拉等等…...

网络安全监管

网络安全监管 网络安全法律体系建设计算机犯罪、信息安全等基本概念我国立法体系及网络安全法我国的立法体系网络安全法出台背景基本概念安全法主要结构第一章 总则第二章 网络安全支持与促进第三章 网络运行安全第四章 网络信息安全第五章 监测预警与应急处置第六章 法律责任 …...

【code review】代码评审的18个军规(建议收藏)

文章目录 背景1. 添加必要的注释2.日志打印规范3. 命名规范4.参数校验5. 判空处理6. 异常处理规范7. 模块化&#xff0c;可扩展性8. 并发控制规范9. 单元测试规范10. 代码格式规范11. 接口兼容性12. 程序逻辑是否清晰,主次是否够分明13. 安全规范14. 事务控制规范15. 幂等处理规…...

PyQt5桌面应用开发(5):对话框

本文目录 PyQt5桌面应用系列对话框QDialogQDialog的基本用法按钮组 QMessageBox综合展示的例子结论 PyQt5桌面应用系列 PyQt5桌面应用开发&#xff08;1&#xff09;&#xff1a;需求分析 PyQt5桌面应用开发&#xff08;2&#xff09;&#xff1a;事件循环 PyQt5桌面应用开发&a…...

整洁的代码

文章目录 为什么要写整洁的代码什么是整洁的代码可读性运行效率扩展性 怎么写整洁的代码注释&命名函数&类代码结构 为什么要写整洁的代码 为什么要写整洁的代码,回答这个问题之前,也许应该想想写糟糕的代码的原因 是想快点完成吗?还是要赶时间吗?有可能.或许你觉得…...

Redis集群常用命令及说明

一、集群的特点 1、集群架构特点 &#xff08;1&#xff09;所有的redis节点彼此互联&#xff08;PING-PONG机制&#xff09;&#xff0c;内部使用二进制协议优化传输速度和带宽&#xff1b; &#xff08;2&#xff09;节点的fail是通过集群中超过半数的节点检测失效时才生效…...

使用edge浏览器,白嫖ChatGPT的保姆级教程来了

前言 嗨&#xff0c;大家好&#xff0c;我是希留&#xff0c;一个被迫致力于全栈开发的老菜鸟。 人工智能大浪潮已经来临&#xff0c;对于ChatGPT&#xff0c;我觉得任何一个玩互联网的人&#xff0c;都应该重视起来&#xff0c;用起来。但是国内使用需要解决科学上网、注册、…...

新人入职,都用这三招,让你安全度过试用期

刚入职工作 3招让你安全度过试用期 给新手小伙伴们分享几招 让你们能在试用期的时候平滑去度过 那么第一第一点就是 能自己解决的千万不要去问 千万不要去问 因为往往我们在去面试的时候 我们往往都是备足了很多的资料 备足了很多的面试题库 然后呢 你在给人家面试的时候总有一…...

小程序上车,车载小程序的信息安全是否可靠?

随着智能交通和车联网技术的快速发展&#xff0c;越来越多的车载应用程序&#xff08;APP&#xff09;进入人们的视野&#xff0c;从而推动了车载业务生态的不断发展。然而&#xff0c;车载应用程序的安全问题也引起了人们的广泛关注。为此&#xff0c;小程序容器技术作为一种有…...

华为OD机试 - 识图谱新词挖掘(Python)

题目描述 小华负责公司知识图谱产品,现在要通过新词挖掘完善知识图谱。 新词挖掘:给出一个待挖掘问题内容字符串Content和一个词的字符串word,找到content中所有word的新词。 新词:使用词word的字符排列形成的字符串。 请帮小华实现新词挖掘,返回发现的新词的数量。 …...

( 数组和矩阵) 378. 有序矩阵中第 K 小的元素 ——【Leetcode每日一题】

❓378. 有序矩阵中第 K 小的元素 难度&#xff1a;中等 给你一个 n x n n x n nxn 矩阵 m a t r i x matrix matrix &#xff0c;其中每行和每列元素均按升序排序&#xff0c;找到矩阵中第 k 小的元素。 请注意&#xff0c;它是 排序后 的第 k 小元素&#xff0c;而不是第 …...

HBase架构篇 - Hadoop家族的天之骄子HBase

HBase的基本组成结构 表&#xff08;table&#xff09; HBase 的数据存储在表中。表名是一个字符串。表由行和列组成。 行&#xff08;row&#xff09; HBase 的行由行键&#xff08;rowkey&#xff09;和 n 个列&#xff08;column&#xff09;组成。行键没有数据类型&…...

STL及常用容器vector、list和deque的介绍

vector和built-in数组类似,它拥有一段连续的内存空间,并且起始地址不变,因此它能非常好的支持随机存取,即[]操作符,即可以以数组下标的方式来访问或遍历。但由于它的内存空间是连续的,所以在中间进行插入和删除会造成内存块的拷贝,另外,当该数组后的内存空间不够时,需…...

SpringBoot统一功能处理(统⼀⽤户登录权限验证、统⼀异常处理、统⼀数据格式封装)

统⼀⽤户登录权限验证 1、最初的用户登录效验:在每个方法里面获取session和 session 中的用户信息&#xff0c;如果存在用户&#xff0c;那么就认为登录成功了&#xff0c;否则就登录失败了。 2、第二版用户登录效验:提供了统一的方法&#xff0c;在每个需要验证的方法中调用…...

华为实习笔试复盘(1)配送站和客户问题

写在前面 自己玩了很多项目&#xff0c;但是最近准备秋招的过程中&#xff0c;发现自己对于算法和编程语言的基本功夫实在是太欠缺了。 投递了华为的实习岗位&#xff0c;4.26参加机考&#xff0c;一做题就发现了自己很多地方都不会。这里写下笔试后的复盘以警醒自己。 题目 …...

alibaba yalantingLibs struct_pack代码梳理

这里写目录标题 struct_pack 接口序列化序列化对象到新字节容器序列化对象到容器尾部将序列化结果保存到指针指向的内存中多参数序列化将序列化结果保存到输出流自定义类型序列化序列化到自定义的输出流 反序列化基本反序列化从指针指向的内存中反序列化反序列化到已有对象多参…...

JavaWeb( 二 ) URL

1.4.URL统一资源定位符 URL代表Uniform Resource Locator 统一资源定位符&#xff0c;也叫 URL地址 。是用于标识和定位Web上资源的地址&#xff0c;通常用于在Web浏览器中访问网站和文件。 URL由若干部分组成&#xff0c;scheme:// host : port / path 例如&#xff1a; htt…...

Python斐波那契数列

斐波那契数列是一个经典的数学问题&#xff0c;在 Python 中可以使用多种方法来实现&#xff0c;下面是几个常见的实现方式&#xff1a; 1. 使用递归 python def fibonacci_recursive(n): if n < 1: return n else: return fibonacci_recursive(n…...

华为OD机试 - 模拟商场优惠打折(Python)

题目描述 模拟商场优惠打折,有三种优惠券可以用,满减券、打折券和无门槛券。 满减券:满100减10,满200减20,满300减30,满400减40,以此类推不限制使用; 打折券:固定折扣92折,且打折之后向下取整,每次购物只能用1次; 无门槛券:一张券减5元,没有使用限制。 每个人…...

【JAVA程序设计】(C00132)基于SSM的固定资产管理系统

基于SSM的固定资产管理系统 项目简介项目获取开发环境项目技术运行截图 项目简介 本系统为基于SSM的固定资产管理系统&#xff0c;本系统分为二种用户&#xff1a;超级管理员和普通管理员&#xff1b; 超级管理员功能&#xff1a; 首页查看、设备管理、平台账户管理、设备台账…...

简单的无理函数的不定积分

前置知识&#xff1a; 直接积分法有理函数的不定积分 简单的无理函数的不定积分 对无理函数积分的基本方法就是通过换元将其化为有理函数的积分。下面讲讲几类无理函数积分的求法。 注&#xff1a; R ( u , v ) R(u,v) R(u,v)是由 u , v u,v u,v与常数经过有限次四则运算得…...

《国际联网安全保护管理办法》

1.基本信息 &#xff08;1997年12月11日国务院批准 1997年12月16日公安部令第33号发布 根据2011年1月8日《国务院关于废止和修改部分行政法规的决定》修订&#xff09; 2.办法内容 第一章 总 则 第一条为了加强对计算机信息网络国际联网的安全保护&#xff0c;维护公共…...

Redis常用命令

目录 一. 字符串string常用操作命令 二. 哈希hash常用操作命令 三. 列表list常用操作命令 四. 集合set常用操作命令 五. 有序集合sorted set常用操作命令 六. 通用命令 一. 字符串string常用操作命令 SET key value 设置指定key的值GET key 获取指定key的值 SETEX key…...

功能齐全的 DIY ESP32 智能手表设计之原理图讲解二

相关设计资料下载ESP32 智能手表带心率、指南针设计资料(包含Arduino源码+原理图+Gerber+3D文件).zip 目录 构建 ESP32 智能手表所需的组件 光照度传感器电路讲解...

烦恼的高考志愿

烦恼的高考志愿 题目背景 计算机竞赛小组的神牛 V 神终于结束了高考&#xff0c;然而作为班长的他还不能闲下来&#xff0c;班主任老 t 给了他一个艰巨的任务&#xff1a;帮同学找出最合理的大学填报方案。可是 v 神太忙了&#xff0c;身后还有一群小姑娘等着和他约会&#x…...

上海建设网站找哪家/爱站网关键词工具

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 N1叉车司机考试总结考前必练&#xff01;安全生产模拟考试一点通每个月更新N1叉车司机模拟考试题库题目及答案&#xff01;多做几遍&#xff0c;其实通过N1叉车司机复审模拟考试很简单。 1、【多选题】汽油的主要成分…...

做新闻网站/福建百度代理公司

Paillier密码 原文章&#xff1a;密码学学习笔记 之 paillier cryptosystem - 安全客&#xff0c;安全资讯平台 (anquanke.com) 本文只摘取了主要公式及选值要求&#xff0c;原文中还有加密解密公式的证明过程 两种类型 正常类型 随机选取两个大素数p,qp,qp,q满足gcd(p∗q…...

单位建网站的详细步骤/推广策略包括哪些内容

(注意&#xff1a;遇到程序在弄懂之后一定要自己去敲&#xff0c;一定要自己去敲&#xff0c;一定要自己去敲) (注意&#xff1a;遇到程序在弄懂之后一定要自己去敲&#xff0c;一定要自己去敲&#xff0c;一定要自己去敲) (注意&#xff1a;遇到程序在弄懂之后一定要自己去敲&…...

界面设计做的好的网站/写软文是什么意思

本文所用软件版本及下载地址&#xff1a; zookeeper : zookeeper-3.3.6 hadoop : hadoop-2.7.4 链接&#xff1a;https://pan.baidu.com/s/14InWWh2MVWw-0CIDMcypSA 密码&#xff1a;1l98 如果有不对的地方&#xff0c;请大家指正。谢谢 。 集群搭建步骤&#xff1a; 1.集…...

青岛网站建设华夏/全国今日新增疫情

ES2017 标准引入了 async 函数&#xff0c;使得异步操作变得更加方便。 async 先说一下async的用法&#xff0c;它作为一个关键字放到函数前面&#xff0c;用于表示函数是一个异步函数&#xff0c;因为async就是异步的意思&#xff0c; 异步函数也就意味着该函数的执行不会阻塞…...

印度做批发的网站有哪些/站长之家app下载

***********************************************声明************************************************ 原创作品&#xff0c;出自 “深蓝的blog” 博客&#xff0c; 欢迎转载&#xff0c;转载时请务必注明出处&#xff08;http://blog.csdn.net/huangyanlong&#xff09;&…...