自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

伍妖捌的小屋

夏日炎炎,有你超甜

  • 博客(65)
  • 问答 (1)
  • 收藏
  • 关注

原创 阿里云视频点播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 341

原创 阿里云对象存储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 454

原创 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 237

转载 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 1247

原创 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 139

原创 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 193 1

原创 K8S基本概念

简介Kubernetes简称k8s。用于自动部署,扩展和管理容器化应用程序的开源系统。功能服务发现和负载均衡Kubernetes可以使用DNS名称或自己的IP地址公开容器,如果到容器的流量很大,Kubernetes可以负载均衡并分配网络流量,从而使部署稳定。存储编排Kubernetes允许您自动挂载您选择的存储系统,例如本地存储、公共云提供商等。自动部署和回滚您可以使用Kubernetes描述已部署容器得所需状态,它可以以受控得速率将实际状态更改为所需状态。例如,您可以自动化Kubernet

2021-07-04 18:49:52 155 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 110

原创 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 139

原创 分布式缓存配置(SpringCache)

@Configuration@EnableCaching@EnableConfigurationProperties(CacheProperties.class)public class RedisCahceConfig { @Bean RedisCacheConfiguration redisCacheConfiguration(CacheProperties cacheProperties) { RedisCacheConfiguration config = Re

2021-06-27 18:52:55 373

原创 线程异步编排并行(CompletableFuture)

美图两个任务组合(一)任务一和任务二都处理完成之后,才能处理任务三runAfterBoth组合两个future,不需要获取future的结果,只需要两个future处理完成后,处理该任务,无返回结果CompletableFuture<Void> runAfterBoth(CompletionStage<?> other, Runnable action)CompletableFuture<Void> runAfterBothAsync(Completion

2021-06-27 13:32:11 660 1

原创 线程异步编排串行(CompletableFuture)

美图创建异步对象CompletableFuture提供了四个静态方法来创建一个异步操作无返回值不需要指定线程池,使用默认线程池CompletableFuture<Void> runAsync(Runnable runnable);需要指定线程池,使用指定线程池CompletableFuture<Void> runAsync(Runnable runnable, Executor executor)有返回不需要指定线程池,使用默认线程池Comple

2021-06-27 12:41:56 463 3

原创 线程的简单使用

美图如何创建线程继承Thread实现Runnable接口实现Callable接口+FutureTask(可以拿到返回结果,可以处理异常)线程池区别方式一和方式二:主进程无法获取线程的运算结果。方式三:主进程可以获取线程的运算结果,但是不利于控制服务器中的线程资源。会导致服务器资源耗尽。方式四:通过线程池性能稳定,也可以获取执行结果,并捕获异常。但是,在业务复杂情况下,一个异步调用可能会依赖于另一个异步调用的执行结果。示例public class ThreadDemo { p

2021-06-27 10:15:26 114

原创 分布式缓存(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 402 2

原创 压力测试(Jmeter)

美图目的压力测试考察当时软硬件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在。为了系统在线上的处理能力和稳定性维持在一个标准的范围内,做到心中有数。使用压力测试,我们有希望找到很多种用其他测试方法更难发现的错误。比如:内存泄漏,并发与同步。有效的压力测试系统将应用以下这些关键条件:重复,并发,量级,随机变化。性能指标响应时间(Response Time:RT)响应时间指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束,整个过程所耗费的时间。HPS(Hits Per

2021-06-26 12:07:57 133

转载 网关配置全局跨域请求(CorsWebFilter)

配置类@Configurationpublic class CorsConfig { @Bean public CorsWebFilter corsFilter() { CorsConfiguration config = new CorsConfiguration(); config.addAllowedMethod("*"); config.addAllowedOrigin("*"); config.addAllowed

2021-06-24 23:46:28 1829 2

原创 分布式网关(GateWay)

创建网关微服务添加依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId></dependency>添加配置创建gateway-test.yaml配置,指定端口,注册空间、分组server: port: 88spring: c

2021-06-24 23:30:21 1356

原创 配置中心(Nacos)

添加依赖<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency>配置在配置中心创建product命名空间在product命名空间下创建配置文件添加bootstrap.properties文件spring

2021-06-20 18:38:13 130

原创 远程调用(OpenFeign)

描述微服务之间通过OpenFeign进行远程调用,接下来创建两个微服务,进行远程调用。实现1.创建两个SpringBoot项目作为微服务,并且都注册到注册中心1.1创建product微服务,并添加一个产品接口@RestControllerpublic class ProductController { @GetMapping("product") public String product(){ return "product"; }}1.2创建

2021-06-19 18:43:05 350

原创 服务注册与发现(Nacos)

安装Nacos去github下载Nacos简单配置单机模式set MODE="standalone"集群模式set MODE="cluster"配置数据库在这里插入代码片由于所有的的微服务都要注册到注册中心,所有将依赖添加到依赖管理服务中。<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-

2021-06-19 17:52:49 329

原创 微服务项目中,如何做到依赖管理?

描述所有的微服务都是一个独立的服务,多个微服务之间如何做到依赖统一?实现创建一个独立的项目,专门用来做依赖管理,所有的微服务继承此项目即可。创建项目通过idea创建一个

2021-06-16 23:49:36 1562

原创 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 99

转载 maven配置

配置阿里云镜像<mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url></mirror>配置编译环境<profile> &lt

2021-06-16 21:40:41 95

原创 数据结构(双链表)

双链表双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。代码实现双链表定义双链表结点typedef struct DNode { ElemType data; struct DNode *prior, *next;}DNode, *DLinkList;初始化双链表bool InitDLinkList(DLinkList &L) { L = (DNode *) mall

2021-06-15 22:23:04 120 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 245 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 427 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 626 3

原创 结构型模式(桥接模式)

桥接模式作用:优点:桥接模式桥接模式是将抽象部分与他的实现部分分离,使它们都可以独立的变化。作用:一个类中存在两个独立变化的维度,且这两个维度都需要进行扩展。优点:使用灵活,扩展性强。1.创建一个品牌接口public interface Brand { void info();}2.两个品牌实现类public class Apple implements Brand { @Override public void info() { Syst.

2021-06-14 11:55:23 124 1

原创 结构型模式(代理模式)

代理模式静态代理动态代理JDK动态代理cglib动态代理代理模式对现有业务增强功能下面以添加日志功能为例静态代理现有接口和实现类public interface IUserService { void save(); void delete();}public class UserService implements IUserService { @Override public void save() { System.out.pri.

2021-06-13 16:01:54 263 1

原创 创建型模式(建造者模式)

建造者模式作用优点特点实现1.创建产品类2.抽象的建造者具体建造者创建指挥者客户端使用建造者模式是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。作用在用户不知道对象建造过程和细节的情况下创建复杂的对象。优点使用建造者模式可以使客户端不必知道产品内部的组成细节。具体的建造者之间是相互独立的,对系统的扩展非常有利。由于具体的建造者是独立的,因此可以对建造过程逐步细化,而不对其他模块产生任何影响特点产品构建的顺序可以随意改变。实现建造者模式通常包括下几个角.

2021-06-13 10:06:07 277 2

原创 创建型模式(工厂模式)

工厂模式简单工厂模式(静态工厂模式)工厂模式作用工厂模式实现了创建者和调用者的分离主要分为:简单工厂模式,工厂方法模式,抽象工厂模式oop七大原则开闭原则:一个软件的实体应当对扩展开放,对修改关闭。依赖倒置原则:要面向接口编程,不要面向实现编程。迪米特法则:只与你的朋友通信,不与“陌生人”通信核心本质实例化对象不使用new,用工厂方法代替。将选择实现类,创建对象统一管理和控制,从而将调用者跟我们的实现类解耦。三种模式简单工厂模式:用来生产同一等级结构中的任意产品(对于增加新的产品.

2021-06-10 00:07:42 629 1

原创 七大设计原则

开闭原则对扩展开发,对修改关闭。里氏替换原则继承必须确保超类所拥有的性质在子类中依然成立。依赖倒置原则要面向接口编程,不要面向实现编程。单一职责原则控制类的粒度大小、将对象解耦、提高内聚性。接口隔离原则要为各个类建立它们需要的专用接口。迪米特法则只与你的直接朋友交谈,不跟"陌生人"说话。合成复用原则尽量先使用组合或者聚合等关联关系来实现,其次才考虑继承关系来实现。...

2021-06-08 22:33:57 92 1

转载 解决ModuleNotFoundError: No module named ‘pip‘问题

今天在下载第三方包的时候,控制台提示有新的pip可以更新,结果在更新的时候输入错误的命令,导致ModuleNotFoundError: No module named 'pip’解决方案python -m ensurepippython -m pip install --upgrade pip最终成功解决...

2021-06-08 21:13:35 155 1

原创 python配置开发环境

下载python打开官网进行下载也可以下载历史版本下载完双击运行,选择自定义安装,勾选添加路径,修改安装路径。修改pip源pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple下载开发工具pycharm打开官网进行下载创建项目...

2021-06-08 21:05:12 76 1

原创 CentOS中使用Docker安装Nginx

下载nginx镜像docker pull nginx创建nginx模板提示:创建模板是为了生成配置文件docker run -p 80:80 --name nginx -d nginx将容器内的配置文件复制到指定文件夹中mkdir /usr/local/nginxdocker container cp nginx:/etc/nginx /usr/local/nginx/conf拿到nginx的配置文件之后停止并移除开始运行的nginx容器docker stop nginxd

2021-06-08 19:08:48 222 1

原创 CentOS中使用Docker安装Mysql

下载镜像文件指定mysql版本为5.7docker pull mysql:5.7创建容器并启动docker run -p 3306:3306 --name mysql \-v /usr/local/mysql/log:/var/log/mysql \-v /usr/local/mysql/data:/var/lib/mysql \-v /usr/local/mysql/conf:/etc/mysql \-e MYSQL_ROOT_PASSWORD=123456 \-d mysql:5.7

2021-06-08 19:06:40 440 2

原创 算法的基本概念

算法的基本概念什么是算法?程序=数据结构+算法算法的五大特性又穷性。一个算法必须总在执行有穷步之后结束,且每一步都可在有穷时间内完成。算法是有穷的,而程序可以是无穷的确定性。算法中每条指令必须有确切的含义,对于相同的输入只能得出相同的输出。可行性。算法中描述的操作都可以通过已经实现的基本运算执行有限次来实现。输入。一个算法有零个或多个输入,这些输入取自于某个特定对象的集合。输出。一个算法有一个或多个输出,这些输出是与输入有着某种特定关系。“好”算法的特质正确性。算法应能

2021-06-07 00:25:50 126 1

原创 数据结构基本概念

基本概念数据数据:是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据是计算机程序加工的原料。数据元素、数据项数据元素:是数据的基本单位,通常作为一个整体进行考虑和处理。数据项:一个数据元素可又若干数据项组成,数据项是构成数据元素的不可分割的最小单位。数据对象、数据结构数据对象:是具有相同性质的数据元素的集合,是数据的一个子集。数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。数据类型、抽象数据类型数据类型是一个值的集合和

2021-06-07 00:25:10 364 9

原创 CentOS中使用Docker安装Gitlab

下载镜像CentOS必须大于4Gdocker pull gitlab/gitlab-ce创建容器docker run --name gitlab \--restart always \-p 443:443 -p 80:80 -p 222:22 \-v /usr/local/gitlab/conf:/etc/gitlab \-v /usr/local/gitlab/logs:/var/log/gitlab \-v /usr/local/gitlab/data:/var/opt/gitl

2021-06-07 00:24:35 167 1

原创 CentOS中使用Docker安装Nexus

下载镜像文件docker pull sonatype/nexus3创建容器映射文件mkdir -p /usr/local/nexus/datachmod -R 777 /usr/local/nexus/data创建容器docker run --name nexus \-p 8081:8081 \--restart always \-v /usr/local/nexus/data:/nexus-data \-d sonatype/nexus3Maven配置在setting中添加

2021-06-06 15:43:47 193 1

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除