![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
csdn_20210509
本人是个小小程序员,此博客一是为了激励自己学习,二是为了记录自己的学习历程,以便及时回顾相关知识。
展开
-
阿里云视频点播VOD
依赖<dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.10.2</version></dependency><dependency> <groupId>com.aliyun</groupId>原创 2021-07-13 23:44:34 · 261 阅读 · 0 评论 -
阿里云对象存储OSS
依赖<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>3.10.2</version> </dependency>属性配置spring: cloud: alibaba: access-key: xx原创 2021-07-13 23:34:37 · 377 阅读 · 0 评论 -
SpringBoot全局异常处理
自定义异常类@EqualsAndHashCode(callSuper = true)@Datapublic class CustomException extends RuntimeException { private Integer code; public CustomException(String message, Integer code) { super(message); this.code = code; } pub原创 2021-07-13 23:20:47 · 164 阅读 · 0 评论 -
Mybatis-Plus配置自动更新时间
配置代码@Componentpublic class CustomMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { this.setFieldValByName("createTime", new Date(), metaObject); this.setFieldValByName("upda转载 2021-07-13 23:14:37 · 1165 阅读 · 0 评论 -
SpringBoot配置Swagger
添加依赖<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId></dependency><dependency> <groupId>io.springfox</groupId> <artifactId>springfox-sw原创 2021-07-13 23:10:06 · 99 阅读 · 0 评论 -
k8s集群搭建
kubeadmkubeadm是官方社区推出的一个用快速部署kubernetes集群的工具。创建一个Master节点kubeadm init将一个Node节点加入到当前集群中kubeadm join <Master 节点的IP和端口>环境要求一台或多台服务器,基础配置:2GB以上,2个CPU以上,硬盘30GB以上集群中所有机器之间网络互通,且可以访问外网禁止swap分区部署步骤1.在所有节点上安装docker和kubeadm2.部署Kubernetes Mast原创 2021-07-06 21:08:59 · 113 阅读 · 1 评论 -
K8S基本概念
简介Kubernetes简称k8s。用于自动部署,扩展和管理容器化应用程序的开源系统。功能服务发现和负载均衡Kubernetes可以使用DNS名称或自己的IP地址公开容器,如果到容器的流量很大,Kubernetes可以负载均衡并分配网络流量,从而使部署稳定。存储编排Kubernetes允许您自动挂载您选择的存储系统,例如本地存储、公共云提供商等。自动部署和回滚您可以使用Kubernetes描述已部署容器得所需状态,它可以以受控得速率将实际状态更改为所需状态。例如,您可以自动化Kubernet原创 2021-07-04 18:49:52 · 118 阅读 · 4 评论 -
redis集群(环境搭建)
下载镜像docker pull redis # 不指定版本 默认选择latest版本添加配置文件mkdir -p /usr/local/redis/confvi /usr/local/redis/conf/redis.confcluster-enabled yescluster-config-file nodes.confcluster-node-timeout 5000cluster-announce-ip 192.168.111.210cluster-announce-port原创 2021-07-04 13:48:24 · 78 阅读 · 0 评论 -
Mysql实现主从复制(环境搭建)
下载mysql镜像docker pull mysql:8.0.25创建Master实例并启动docker run -p 3306:3306 \--name mysql-master --restart always \-v /usr/local/mysql/master/log:/var/log/mysql \-v /usr/local/mysql/master/data:/var/lib/mysql \-v /usr/local/mysql/master/conf:/etc/mysql \原创 2021-06-29 23:14:08 · 94 阅读 · 0 评论 -
分布式缓存配置(SpringCache)
@Configuration@EnableCaching@EnableConfigurationProperties(CacheProperties.class)public class RedisCahceConfig { @Bean RedisCacheConfiguration redisCacheConfiguration(CacheProperties cacheProperties) { RedisCacheConfiguration config = Re原创 2021-06-27 18:52:55 · 300 阅读 · 0 评论 -
线程异步编排并行(CompletableFuture)
美图两个任务组合(一)任务一和任务二都处理完成之后,才能处理任务三runAfterBoth组合两个future,不需要获取future的结果,只需要两个future处理完成后,处理该任务,无返回结果CompletableFuture<Void> runAfterBoth(CompletionStage<?> other, Runnable action)CompletableFuture<Void> runAfterBothAsync(Completion原创 2021-06-27 13:32:11 · 568 阅读 · 1 评论 -
线程异步编排串行(CompletableFuture)
美图创建异步对象CompletableFuture提供了四个静态方法来创建一个异步操作无返回值不需要指定线程池,使用默认线程池CompletableFuture<Void> runAsync(Runnable runnable);需要指定线程池,使用指定线程池CompletableFuture<Void> runAsync(Runnable runnable, Executor executor)有返回不需要指定线程池,使用默认线程池Comple原创 2021-06-27 12:41:56 · 366 阅读 · 3 评论 -
线程的简单使用
美图如何创建线程继承Thread实现Runnable接口实现Callable接口+FutureTask(可以拿到返回结果,可以处理异常)线程池区别方式一和方式二:主进程无法获取线程的运算结果。方式三:主进程可以获取线程的运算结果,但是不利于控制服务器中的线程资源。会导致服务器资源耗尽。方式四:通过线程池性能稳定,也可以获取执行结果,并捕获异常。但是,在业务复杂情况下,一个异步调用可能会依赖于另一个异步调用的执行结果。示例public class ThreadDemo { p原创 2021-06-27 10:15:26 · 63 阅读 · 0 评论 -
分布式缓存(SpringCache)
简介Spring从3.1开始定义了org.springframework.cache.Cache和org.springframework.cache.CacheManager接口来统一不同的缓存技术;并支持使用JCache(JSR-107)注解简化开发;Cache接口为缓存的组件规范定义,包含缓存的各种操作集合;Cache接口下Spring提供了各种XxxCache的实现;如RedisCache,EhCacheCache,ConcurrentMapCache等;每次调用需要缓存功能的方法是,Spri原创 2021-06-26 20:27:57 · 347 阅读 · 2 评论 -
压力测试(Jmeter)
美图目的压力测试考察当时软硬件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在。为了系统在线上的处理能力和稳定性维持在一个标准的范围内,做到心中有数。使用压力测试,我们有希望找到很多种用其他测试方法更难发现的错误。比如:内存泄漏,并发与同步。有效的压力测试系统将应用以下这些关键条件:重复,并发,量级,随机变化。性能指标响应时间(Response Time:RT)响应时间指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束,整个过程所耗费的时间。HPS(Hits Per原创 2021-06-26 12:07:57 · 105 阅读 · 0 评论 -
微服务项目中,如何做到依赖管理?
描述所有的微服务都是一个独立的服务,多个微服务之间如何做到依赖统一?实现创建一个独立的项目,专门用来做依赖管理,所有的微服务继承此项目即可。创建项目通过idea创建一个原创 2021-06-16 23:49:36 · 1425 阅读 · 0 评论 -
git基本配置
下载安装进入官网下载即可,选择对应的系统。简单配置git config --global user.name "username"git config --global user.email "xxxxx@xxxxx.com"设置SSHssh-keygen -t rsa -C "xxxxx@xxxxx.com"cat ~/.ssh/id_rsa.pub原创 2021-06-16 22:04:57 · 63 阅读 · 0 评论 -
maven配置
配置阿里云镜像<mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url></mirror>配置编译环境<profile> <转载 2021-06-16 21:40:41 · 65 阅读 · 0 评论 -
数据结构(双链表)
双链表双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。代码实现双链表定义双链表结点typedef struct DNode { ElemType data; struct DNode *prior, *next;}DNode, *DLinkList;初始化双链表bool InitDLinkList(DLinkList &L) { L = (DNode *) mall原创 2021-06-15 22:23:04 · 80 阅读 · 3 评论 -
数据结构(单链表)
单链表的定义每个结点除了存放数据元素外,还要存储指向下一个结点的指针。代码定义typedef struct LNode { ElemType data; struct LNode *next;}LNode, *LinkList;LNode *p = (LNode *)malloc(sizeof(LNode));初始化一个空的单链表bool InitList(LinkList &L) { L = NULL; return true;}带头结点和不带头结点带头结点:头结原创 2021-06-14 23:02:54 · 162 阅读 · 7 评论 -
数据结构(顺序表)
顺序表的定义顺序表:用顺序存储的方式实现线性表顺序存储。把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现。顺序表的实现静态分配ElemType 指元素类型,可以替换成具体的类型,比如int#define MaxSize 10typedef struct { ElemType data[MaxSize]; int length;}SqList;eg:#include<stdio.h>#define MaxSize 10原创 2021-06-14 18:58:48 · 328 阅读 · 1 评论 -
数据结构(线性表)
线性表定义特点表基本操作&的使用值传递引用传递线性表定义线性表是具有相同数据类型的n(n≧0)个数据元素的有限序列,其中n为表长,当n=0时线性表是一个空表。a₁——a₂——a₃——a₄——a₅特点相同的数据结构:每个数据元素所占空间一样大有限序列:有次序的存放表基本操作InitList(&L):初始化表。构造一个空的线性表L,分配内存空间。DestroyList(&L):销毁操作。销毁线性表,并释放线性表L所占的内存空间。ListInsert(&.原创 2021-06-14 12:56:38 · 426 阅读 · 3 评论 -
算法的基本概念
算法的基本概念什么是算法?程序=数据结构+算法算法的五大特性又穷性。一个算法必须总在执行有穷步之后结束,且每一步都可在有穷时间内完成。算法是有穷的,而程序可以是无穷的确定性。算法中每条指令必须有确切的含义,对于相同的输入只能得出相同的输出。可行性。算法中描述的操作都可以通过已经实现的基本运算执行有限次来实现。输入。一个算法有零个或多个输入,这些输入取自于某个特定对象的集合。输出。一个算法有一个或多个输出,这些输出是与输入有着某种特定关系。“好”算法的特质正确性。算法应能原创 2021-06-07 00:25:50 · 86 阅读 · 1 评论 -
数据结构基本概念
基本概念数据数据:是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据是计算机程序加工的原料。数据元素、数据项数据元素:是数据的基本单位,通常作为一个整体进行考虑和处理。数据项:一个数据元素可又若干数据项组成,数据项是构成数据元素的不可分割的最小单位。数据对象、数据结构数据对象:是具有相同性质的数据元素的集合,是数据的一个子集。数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。数据类型、抽象数据类型数据类型是一个值的集合和原创 2021-06-07 00:25:10 · 290 阅读 · 9 评论