自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 资源 (2)
  • 收藏
  • 关注

原创 SpringAOP学习使用

AOP前言​ 在学习AOP的时候被很多术语、方法和框架给搞懵。仿佛就知道AOP是个切面编程,执行方法前先执行某方法,执行完后再执行某方法。但学习不能知其然,不知其所以然。想快速理清概念,掌握AOP思想,找到合适的应用AOP场景。这里应该先理清楚AOP思想才是重点一、AOP认识先举个例子,设计一个日志打印的模块,按照OOP思想,先设计一个工具类,然后在需要打印的地方引用即可。刚开始没有任何问题,但是如果当调用的很多,到处都能看得到。从对象组织角度来讲,我们一般会使用继承关系为主线,我们可以称为纵向,也

2021-05-04 17:10:33 526 1

原创 从ElasticSearch 认识到实战(SpringBoot集成ES)

ElasticSearch 认识到实战目录搜索引擎介绍ElasticSearch知识安装使用restful风格查询ESSpringBoot配置ESSpringBoot集成使用一、搜索引擎介绍1、搜索引擎搜索引擎是指一个庞大的互联网资源数据库,如网页、新闻组、程序、图像等。它有助于在万维网上定位信息。用户可以通过以关键字或者短语的形式将查询传递到搜索引擎中来搜索信息。然后搜索引擎搜索其数据库并向用户返回相关链接。2、搜索引擎组件一般来说,搜索引擎有三个基本组件web爬虫 -we

2021-01-27 17:36:35 553 1

原创 SpringBoot+SpringSecurity+JWT实现单点登录权限控制

SpringBoot+SpringSecurity+JWT实现权限控制github地址。可直接用。源码一、简介 SpringSecurity的核心功能主要是认证、授权和攻击防护。这里主要是以SpringBoot整合SpringSecurity的一个练习,练习前就尽量过一遍它的知识嘛,这样更加有利于理解为什么这么做。具体其他的介绍可以参考SpringSecuity中文文档 。以及JWT的一些介绍SpringSecuity中文文档 。这次demo主要实现的功能用户拦截基于JWTtoke

2020-09-06 23:00:46 3945 3

原创 十三、K8S之亲和性

在K8S中,亲和性(Affinity)用来定义Pod与节点关系的概念,亲和性通过指定标签选择器和拓扑域约束来决定 Pod 应该调度到哪些节点上。与污点相反,它主要是尽量往某节点靠。亲和性是 Kubernetes 中非常有用的调度策略,作用是优化 Pod 的调度策略,以便将 Pod 调度到满足特定条件的节点上,从而实现更高效的资源利用、提高容错性和性能等方面的需求。

2024-01-04 22:50:49 1066

原创 十二、K8S之污点和容忍

K8S的污点和容忍是其中一种高级调度功能,作用是让 Kubernetes 集群中的节点有选择地接受或拒绝来自不同类型 Pod 的调度请求,可以帮助运维人员更好地管理、调度和控制应用程序的部署。

2023-12-30 19:22:38 1279 1

原创 十一、K8S之持久化存储

持久化存储通常用于程序的状态数据、数据库文件、日志文件等需要在容器生命周期之外的数据,它可以通过各种存储解决方案实现,如主机路径、本地存储、网络存储(如NFS、ISCSI)、云存储等。PV是集群中的一块存储,它可以是物理存储设备、网络存储卷或云提供商的存储服务。PV独立于Pod的生命周期,可以被多个Pod共享PVC是Pod对持久化存储的请求。 它相当于是Pod对PV的申请单。Pod可以通过声明PVC来请求所需的存储资源,并指定访问模式、容量和存储类等要求。Kubernetes会根据PVC的要求去匹配可用

2023-11-06 22:44:43 456

原创 十、K8S之ConfigMap

ConfigMap是一种用于存储配置数据的API对象,一般用于存储Pod中应用所需的一些配置信息,或者环境变量。将配置于 Pod 分开,避免应为修改配置导致还需要重新构建 镜像与容器。`subPath` 的作用是允许在容器内部选择性的挂载Volume中的特定文件或者目录,而不是将整个Volume挂载到容器中。

2023-11-06 22:43:25 463

原创 九、K8S之Ingress

Ingress提供从集群外部到集群内服务的Http路由,流量路由由 Ingress 资源所定义的规则来控制。通过配置,Ingress可为Service提供外部可访问的URL,对其流量作负载均衡,代理转发。Ingress 的使用可以大大简化应用程序的网络配置和流量路由,并且提供了灵活的路由规则和流量控制功能。要使用Ingress,需要安装并且配置Ingress控制器。控制器通常是一个负载均衡器,它监听Ingress对象变化,并动态地更新流量路由规则。K8S支持多种Ingress控制器,例如:Nginx、

2023-10-15 22:41:05 279

原创 八、K8S之HPA自动扩缩容

HPA(Horizontal Pod Autoscaler,水平 Pod 自动伸缩)是 Kubernetes 中的一种特性,其作用是根据资源使用情况自动调整 Pod 的副本数,以实现应用程序的自动扩展和收缩。HPA 可以根据 CPU 使用率或其他自定义指标来自动扩展或收缩 Pod。每隔30s(可以通过–horizontal-pod-autoscaler-sync-period修改)查询metrics的资源使用情况,Pod 的 CPU 使用率超过了 HPA 的目标值,那么 HPA 将创建更多的 Pod

2023-10-15 22:39:51 334

原创 七、K8S之DaemonSet

**DaemonSet** 是一个针对节点的Pod控制器,确保全部或者某些节点上运行一个Pod副本。当有节点加入集群时,也会为他们新增一个Pod。节点从集群移除,Pod也会被回收,删除DaemonSet 将会删除它创建的所有Pod。

2023-10-15 22:38:42 203

原创 六、K8S之StatefulSet

和`Deployment`一样StatefulSet也是中一种可以帮助我们部署和扩展`Pod`的控制器,使用`Deployment`时多数时候不需要在意Pod的调度方式。如果需要关心`Pod`的部署顺序、对应持久化存储或者要求`Pod`拥有固定的网络标识时,就需要`StatefulSet`控制器来完成调度工作每个由`StatefulSet`创建出来的`Pod`都拥有一个序号(从0开始,启动完成才会进行下一个)和固定的网络标识。并且可以在yaml中定义添加**`VolumeClaimTemplate`**

2023-10-15 22:37:51 386

原创 五、K8S之Service

会在每个宿主节点的一个指定固定端口号上暴露Service,与此同时还会自动创建一个ClusterIP类型的Service,NodePort类型的Service会将集群外部的请求路由给NodePort类型的Service。对一些应用的某些部分,可能只需要集群内部网路访问,而有些部分(如前端)可能需要其公开外部IP地址,也就是可以从集群外部访问某个地址,所以在创建Service可以指定所需要的Service类型。这个CNAME记录是在Service的spec.externalName里指定的,

2023-10-15 22:36:54 257

原创 四、K8S之Deployment

在K8S中,Deployment是一种更高层级的控制器,用于管理应用程序的部署和更新。为 Pod和 ReplicaSet提供声明式的更新能力。比如:部署ReplicaSet(副本集)清理不再需要的旧版RS扩展/缩小RS里的Pod数量动态更新Pod(根据Pod模板定义的更新用新Pod替换旧Pod)回滚到以前的Deployment版本。

2023-10-15 22:36:01 869

原创 三、K8S之ReplicaSet

Kubernetes最核心的功能是编排,编排操作都是依靠控制器对象来完成,高级控制器控制着基础的控制器,基础控制器再去控制Pod,Pod里面再包容器。K8S项目里API对象层级大概就是这样。而ReplicaSet这个控制器是用来控制副本数量的,每个副本就是Pod。ReplicaSet它用来确保外面有指定数量的Pod副本正在运行。但是K8S建议使用**Deployment。

2023-10-15 22:34:53 368

原创 二、K8S之Pods

K8S作为一个容器编排管理工具,它可以自动化容器部署、容器扩展、容器负载均衡等任务,并提供容器的自愈能力等功能。在Kubernetes中,Pod是最基本的调度单元,它是一组共享存储和网络资源的容器集合,通常是部署在同一台物理机或虚拟机上的。

2023-10-15 22:33:58 580

原创 一、K8S第一步搭建

K8S集群搭建,三个的节点

2023-10-15 22:32:47 295

原创 Logback日志框架配置使用

在Logback 中使用来指定日志输出位置和格式等等,可以将日志输出到不同的目标,如控制台,文件,数据库等。name用来指定appender的名称,在配置文件中是唯一标识class控制台输出或者文件输出DBAppender数据库其他配置项根据实现不同的类,可以设置有些相关的配置项,如文件路径,输出格式,滚动策略等。

2023-08-20 23:12:19 1121

原创 Liunx上JSON处理工具jq

jq是一个Liunx系统上针对JSON处理的工具,它接收一个输入,然后生成一个输出。有许多内置过滤器用来提取对象的特定字段,或者将数字转为字符串,或者执行各种其他的标准任务。可以使用命令行选项来影响jq如何读写输入和输出,有很多,这里只选择几个自认为常用的,下面的示例用将会以该json字符示例json格式查看-S,顺序输出将json的各个字段按照key排序输出-r,去掉双引号输出使用该命令,如果过滤器的结果是string,将会以标准输出,而不是 字符串的格式输出,该示例是获取json里的所

2022-12-02 14:27:37 674 1

原创 Shell脚本学习

后端开发也离不开Linux的使用,会写好的脚本不仅能提高工作效率。shell是一个用C语言编写的程序,是使用Liunx的桥梁。shel既是一种命令语言,又是一种设计语言,它提供一个界面(小黑屏),用户通过这个界面访问操作系统内核的服务。在我们通常说的shell一般说的是shell script(shell脚本)。但学习者还是需要知道shell 和shell script两者是不同的概念。由于习惯问题,所以shell都是指shell脚本编写。

2022-11-07 19:07:52 2362 3

原创 正则表达式的学习心得

正则表达式是针对字符串的提取,所有语言都支持,对于开发来说,很重要,并且掌握后对一些字符工具操作会很方便。当匹配到一串字符的时候,它可能是由多个子序列匹配构成的,使用grop()是获取到完整匹配字符,grop(0)等同与grop(),grop(int grop)是获取指定子序列匹配的字符。部分匹配,从当前位置开始匹配,找到一个匹配的子串,将移动下次匹配的位置。就是扩展用来匹配数字的。...

2022-08-10 18:20:58 1208

原创 Nginx自定义json日志输出

自定义输出日志的案例http { # 自定义输出格式 json为自定义的名字,后面是变量拼接 log_format json '{"remote_addr":"$remote_addr", ' '"remote_user":"$remote_user", ' '"request":"$request", ' '"msec":"$msec", '

2021-10-15 10:26:45 274

原创 大数据之Hbase入门

Hbase一、概要1.1、简介Hbase是一个高可靠性、高性能、列存储、可伸缩、多版本的NoSQL的分布式数据存储系统,实现对大型数据的实时、随机读写访问。HBase 是Google Bigtable 的开源实现,HBase是Hadoop的数据库。利用HDFS 作为其文件存储系统,用MapReduce来处理HBase中的海量数据,以Zookeeper做服务协调。Hadoop 可以通过 HDFS 来存储结构化、半结构甚至非结构化的数据,它是传统数据库的补充,是海量数据存储的最佳方法,它针对大文件的存

2021-10-08 18:06:16 282

原创 大数据之MapReduce

MapReduce一、概述Hadoop MapReduce 是一个分布式计算框架,用于编写批处理应用程序。编写好的程序可以提交到Hadoop 集群上用于并行处理大规模的数据集。MapReduce 作业通过将输入的数据集拆分为独立的块,这些块由 map 以并行的方式处理,框架对 map 的输出进行排序,然后输入到 reduce 中。MapReduce 框架专门用于 <key,value> 键值对处理,它将作业的输入视为一组 <key,value> 对,并生成一组 <key,

2021-10-08 18:01:32 252

原创 大数据之HDFS

一、HDFS介绍​ Hadoop Distributed File System ,简称HDFS,⼀个⾼可靠、⾼吞吐量的分布式⽂件系统。以数据块的形式,存储大量数据(GB级到TB级甚至PB级),提供对应用程序数据的高吞吐量,高伸缩性,高容错性的访问。是Hadoop体系中数据存储管理的基础。分而治之思想,数据切割、制作副本、分散储存二、结构体系2.1、 HDFS的主/从架构HDFS有单个NameNode和多个DataNode组成。NameNode:存储集群元数据,文件各个数据快的位置信息及

2021-10-08 17:59:58 501

原创 大数据之Hadoop入门学习、安装

Hadoop一、背景​ hadoop最早起源于Nutch。Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问题–如何解决数十亿网页的存储和索引问题。后面Nutch的开发人员实现了HDFS和MAPREDUCE,并从Nutch脱离成为独立项目Hadoop二、简介​ hadoop是一整个大数据处理体系,利用服务器集群,根据用户自定义业务逻辑对海量数据进行分布式处理。最终,大数据的处理就是存储和计算。狭义上讲,它就是一个框架平台

2021-10-08 17:57:22 271 1

原创 Zookeeper安装

Zookeeper安装一、下载地址https://zookeeper.apache.org/releases.html二、配置说明在conf文件夹下,将zoo_sample.cfg文件复制一份命名为zoo.cfg,然后对文件进行编辑:2.1、tickTime心跳时间,单位为毫秒。2.2、initLimetickTime的个数,表示在leader选举结束后,followers与leader同步需要的时间,如果followers比较多或者说leader的数量多时,同步的时间会增加,这个值就需

2021-10-08 17:55:26 110

原创 ELK之Logstash学习使用

Logstash 学习使用一、概要1.1、官网地址https://www.elastic.co/cn/logstash/1.2、介绍​ Logstash 能够动态地采集、转换和传输数据,不受格式或复杂度的影响。利用 Grok 从非结构化数据中派生出结构,从 IP 地址解码出地理坐标,匿名化或排除敏感字段,并简化整体处理过程。也就是一个采集-------> 过滤------> 输出的过程,从哪里采集,采集后到哪里去,中间要不要过滤掉一下东西。1.3、input输入input 就是

2021-08-12 09:49:15 743

原创 Kafka集成到使用

Kafka首先是中文文档一、概念1.1、Kafka的功能Kafka是个分布式流处理平台,有如下功能:1、可以发布和订阅流式的记录。这一方面与消息列队或者企业消息系统类型2、储存流失记录,并且具有较好的容错性3、可以让你发布和订阅流1.2、它是如何工作kafka作为一个集群,运行在一台或者多台服务器上,通过topic对存储的数据进行分类。每条记录包含一个key,一个value和一个timestamp(时间戳)1.3、 四个核心的API使用Producer API发布一串流式的数据

2021-08-09 17:14:43 487

原创 ShardingSphere-JDBC实现分库分表,读写分离

ShardingSphere-JDBCgithub源码地址一、概述ShardingSphere-JDBC定位为轻量级 Java 框架,是在JDBC层提供的额外服务,以Jar包提供服务,也就是直接maven依赖就能使用,它有如下优势:完全兼容JDBC和各种ORM框架(如JPA、Hibernate、Mybatis、SpringJDBCTemplate或者JDBC)。支持任何第三方的数据库连接池,如:DBCP、C3P0、Druid、Hikaricp等支持任意实现JDBC规范的数据库,如:MySQL、

2021-06-22 22:19:14 848

原创 Stream学习使用

一、Stream流介绍Streanm流式一个集合元素模型,与数据结构无关,不会存储元素包括内存地址。操作起来有点类似SQL语句一样的操作,如filter, map, reduce, find, match, sorted等。但是效率比普通的for循环要慢。二、filterfilter方法用于通过设置的条件过滤出元素。ArrayList<String> dataList = new ArrayList<>();for (int i = 0; i < 20; i++)

2021-06-10 15:41:48 636

原创 自定义注解实现AOP操作

自定义注解实现AOP操作一、首先依赖aop包<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId></dependency>二、定义一个注解类该类为@interface类型(接口类型并且前面有个@符号)package com.sy.ex.springboot.

2021-05-04 16:55:24 2855

原创 Java 位运算符

Java 位运算符一直在写增删改查,今天接触到二进制数运算的时候感觉有点陌生了,所以今天复习一下。Java中位运算符主要用来对操作数二进制的位进行运算。按位运算表示按每个二进制位(bit)进行计算,其操作数和运算结果都是整型值。一、二进制与十进制转换练习1.1、十转二十进制数10转为二进制方法一:10除以2 得5 余数为 0再拿刚才的5除以2得2 余数为12除以2得1 余数为01除以2 直接余数为1那么就为1010方法二(推荐)、10 = 8 + 2= 2^3 + 2^1

2021-05-02 20:06:14 5000 4

原创 @ConfigurationProperties 的使用(绑定配置文件)

@ConfigurationProperties 的使用一、前言​ spring3.0新增的注解,提供了Java配置的能力,使用Java配置更好的理解配置的bean。SpringIOC的一个核心概念——Bean。由Spring容器来负责对Bean的实例化、装配和管理。XML是用来描述Bean很流行的配置方式。但随着Spring的日益发展,“Spring项目大量的烂用XML”就是最为严励的一个批评。因为Spring会把多有的业务类都已Bean的形式配置在XML文件中,造成了大量的XML文件。使用xml来配

2021-04-16 11:42:59 3753

原创 docker-compose安装nacos

一、nacos1.1.4版本的安装1、docker-compose.yml文件配置version: "2"services: nacos: image: nacos/nacos-server:1.1.4 container_name: mynacos environment: - PREFER_HOST_MODE=ip - MODE=standalone - SPRING_DATASOURCE_PLATFORM=mysql

2021-02-06 10:57:27 5516

原创 RabbitMQ实战(二、配置使用)

一、公共类首先创建几个公共类,它会在消费者和生产者里都使用到消息实体类,这个根据项目需求来决定字段属性package com.sy.rabbitmq.common.config.rabbitmq;import lombok.Data;import java.io.Serializable;/** * @author sy * Date: 2019/11/25 11:35...

2020-01-14 22:33:29 429

原创 RabbitMQ实战(一 、理论篇)

前言:该篇主要是介绍RabbitMQ的理论知识1、rabbitmq里的组成成分Broker:传输服务,维护一条生产者到消费者的路线,保证数据按照指定方式进行传输,差不多就是RabbitMQChannel:消息通道,在客户端的每个连接里可以建立多个channeExchange:消息交换机,它指定消息按什么规则,路由到那个列队Queue: 消息的队列,每个消息都会被投到一个或者多个列队B...

2020-01-14 22:27:54 359

原创 线程池和多线程的使用

前言,刚开始接触到线程和线程池,给我的感觉就是:类名太长、容易出问题、感觉没必要用、估计用不到、难等。所以就不去看,直到项目里真的需要用到多线程和线程池才急忙去恶补了这几个知识,也花了一点时间,最终在项目里实战了一下,又怕出问题所以也去看好些理论知识。觉得很有用所以记录下来以后可能能用得到。一、首先先了解Java里线程池创建的四种方法1、newFixedThreadPool(int thre...

2020-01-14 22:22:38 401 1

转载 Redis的常用的工具类

public class RedisUtil { private StringRedisTemplate redisTemplate; public void setRedisTemplate(StringRedisTemplate redisTemplate) { this.redisTemplate = redisTemplate; } public String...

2019-09-23 13:54:44 263 1

原创 MySQL常用的函数(后续一直更新。。。)

日期函数DATE_FORMAT(time,参数)返回一个指定的日期格式,括号里常用的几个参数,可放多个%j 返回该年的第x天%d 日%m 月值(0-12)%Y 年//返回2019-07DATE_FORMAT(2019-07-19,'%Y-%m')DATE_SUB(time1,time2)time1 为一个时间点,time2 为一个时间点间隔实例,三十天前,如改30为-...

2019-09-18 09:56:23 366 2

原创 MySql数据库锁

MySql数据库锁共享锁(S锁)和排他锁(X锁)意向锁意向锁的意义在哪里?插入意向锁记录锁间隙锁(gap锁)

2019-07-19 10:49:41 219 2

省市区数据SQL文件.rar

直接执行,快速初始化数据

2021-07-14

MyBatisCodeHelper-Pro2.8.7代码生成自动生成

MyBatis代码生成自动生成,非常好用。

2021-01-28

空空如也

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

TA关注的人

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