自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 收藏
  • 关注

原创 数据结构-堆

先了解两种特别的二叉树满二叉树除最后一层无任何子节点外,每一层上的所有结点都有两个子结点的二叉树完全二叉树完全二叉树相对于满二叉树来说,最后一层叶子节点从左到右中间没有空缺的,像这样:计算机科学中,堆是一种基于树的数据结构,通常用完全二叉树实现。堆的特性如下在大顶堆中,任意节点 C 与它的父节点 P 符合 p.value >= c.value而小顶堆中,任意节点 C 与它的父节点 P 符合 p.value <= c.value最顶层的节点(没有父亲)称之为 root 根节点。

2023-11-08 08:23:17 282

原创 策略模式和模板模式

这两天学习了策略模式和模板模式,总结一下这两种模式。

2023-11-07 06:37:23 185

原创 SpringBoot开发组件总结

自定义一个注解,在使用的时候在需要的地方加上注解即可。

2023-11-05 07:12:37 209

原创 使用maven模板快速生成项目

使用Archetype模板快速生成项目

2022-09-20 21:01:36 691 1

原创 facade(门面模式或外观模式)

外观模式:为子系统的一组接口提供一个一致的界面,此模式提供了一个高层级的接口,这个接口是的这个子系统更加易用。

2022-09-16 23:33:42 260

原创 Spring Batch介绍及代码示例

本文主要讲述了Spring Batch的功能,处理流程及代码示例,通过本文能对Spring Batch有一个初步了解。

2022-09-16 20:27:41 1108

原创 字符编码学习

本文讲述了下列几种字符编码以及字符与二进制的转换。ASCII扩展ASCIIGB2312GBKUTF其中可以用于存储中文的是GB2312、GBK、UTF。如果文章中大部分是中文推荐使用GBK编码格式。

2022-09-15 00:10:39 229

转载 docker-compose安装elasticsearch和kibana

docker-compose安装es

2022-09-02 20:09:00 1147

原创 动态规划学习

动态规划算法学习

2022-08-28 15:35:55 59

原创 Spring Boot资源获取失败:class path resource cannot be opened because it does not exist

Spring Boot获取资源

2022-08-23 22:15:34 2050 1

转载 Spring事务传播

Spring事务传播

2022-08-20 15:23:46 63

原创 Spring事务失效场景

Spring事务失效场景

2022-08-20 15:21:54 571

原创 4.Kafka Broker 总体工作流程和文件存储

Kafka Broker 总体工作流程和文件存储1.broker启动后在zk上注册2.controller谁先注册,由哪个controller决定leader选举3.由选举出来的Controller监听brokers节点变化4.Controller决定leader选举5.Controller将节点的信息上传到zk6.其他Controller从zk上同步相关信息7.如果Broker中的leader挂了8.Controller监听到变化9.获取zk上的ISR(存活的followers)10

2022-03-24 22:18:40 1863

原创 3.kafka如何保证消息的可靠性

kafka应答原理0:生产者发送过来的数据,不需要等数据落盘应答如下图,生产者发送了信息之后,不需要等待kafka回复,如果kafka上的节点挂了后,这个消息就丢失了。1:生产者发送过来的数据,Leader收到数据后应答。如下图,可能leader收到消息后,还没同步leader挂了,消息丢失了-1(all):生产者发送过来的数据,Leader和ISR队列里面的所有节点收齐数据后应答。如下图,需要等leader和ISR队列中的所有follower都收到后才应答。什么

2022-02-20 20:43:41 1677

原创 2.生产者消息发送流程及API使用

学习尚硅谷kafka教程记录的笔记,视频地址: kafka3.x教程生产者消息发送流程​ 在消息发送的过程中,涉及到了两个线程——main 线程和 Sender 线程。在 main 线程中创建了一个双端队列 RecordAccumulator。main 线程将消息发送给 RecordAccumulator,Sender 线程不断从RecordAccumulator 中拉取消息发送到 Kafka Broker。​ 在mian线程发送消息到队列前,还经过拦截器、序列化器、分区器。拦截器用于拦截一些数据,

2022-02-20 17:38:52 1093

原创 1、kafka集群搭建

学习尚硅谷kafka教程记录的笔记,视频地址: kafka3.x教程1、kafka集群搭建解压tar -zxvf kafka_2.12-3.0.0.tgz -C /opt/module/修改解压后的文件名称,将改好名的kafka文件夹复制到另外两台机器mv kafka_2.12-3.0.0/ kafka修改配置cd /opt/module/kafka/configvim server.properties#修改以下内容#broker 的全局唯一编号,不能重复,只能是数

2022-02-20 15:51:06 946

原创 Zookeeper集群安装方法

Zookeeper集群安装1、安装JDK解压tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/配置JDK环境变量vim /etc/profile.d/my_env.sh#添加如下内容#JAVA_HOMEexport JAVA_HOME=/opt/module/jdk1.8.0_212export PATH=$PATH:$JAVA_HOME/binsource一下/etc/profile文件,让新的环境变量PATH生效

2022-02-19 20:08:15 277

原创 07、docker-compose容器编排

docker-compose容器编排docker-compose介绍Compose 是 Docker 公司推出的一个工具软件,可以管理多个 Docker 容器组成一个应用。你需要定义一个 YAML 格式的配置文件docker-compose.yml,写好多个容器之间的调用关系。然后,只要一个命令,就能同时启动/关闭这些容器安装步骤#1、下载(这一步下载不了就找个镜像下)curl -L "https://github.com/docker/compose/releases/downloa

2022-02-11 22:17:34 266

原创 06、Docker网络

Docker网络网络相关命令查看网络docker network ls查看网络元数据docker network inspect 网络名删除网络docker network rm 网络名网络模式bridge模式Docker 服务默认会创建一个 docker0 网桥(其上有一个 docker0 内部接口),该桥接网络的名称为docker0,它在内核层连通了其他的物理或虚拟网卡,这就将所有容器和本地主机都放到同一个物理网络。Docker 默认指定了 docker0 接口 的

2022-02-11 22:15:43 290

原创 05、使用Docker部署项目

使用Docker部署项目新建一个SpringBoot服务编写Dockerfile# 基础镜像使用javaFROM java:8# VOLUME 指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmpVOLUME /tmp# 将jar包添加到容器中并更名为zzyy_docker.jarADD docker_boot-0.0.1-SNAPSHOT.jar zzyy_docker.jar# 运行jar包RUN bash

2022-02-11 22:13:56 296

原创 04、Dockerfile

DockerfileDockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。构件步骤:编写DockerFile文件docker build 创建镜像docker run 运行镜像Dockerfile保留字指令FROM:基础镜像,当前镜像是基于那个镜像的;MAINTAINER:作者、邮箱;RUN:容器构建时需要运行的命令;EXPOSE:暴露端口号,启动容器的时候还需使用 –p 指定端口;WORKDIR:指定在创建容器后,终端默认登录后进来的工作目录,

2022-02-11 22:10:15 267

原创 03、docker安装Redis三主三从集群

docker安装Redis三主三从集群Redis集群分区的方案1、哈希取余分区介绍:假设有3台机器构成一个集群,用户每次读写操作都是根据公式:hash(key) % N个机器台数,计算出哈希值,用来决定数据映射到哪一个节点上。优点:操作简单,只需要根据公式判断落在哪台机器上缺点:扩缩容麻烦,redis节点数变化后,映射关系需要重新计算。2.一致性哈希算法分区介绍:主要是解决由于Redis服务器个数变化导致的映射关系变化,尽量少的移动Redis节点上的数据。一致性Hash

2022-02-11 22:09:23 810

原创 Docker安装Mysql主从复制

Mysql主从复制安装创建第一个Mysql容器,端口映射到3307docker run -p 3307:3306 --name mysql-master \-v /mydata/mysql-master/log:/var/log/mysql \-v /mydata/mysql-master/data:/var/lib/mysql \-v /mydata/mysql-master/conf:/etc/mysql \-e MYSQL_ROOT_PASSWORD=root \-d m

2022-02-11 22:07:12 112

原创 1、docker基础知识

docker的介绍Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次封装,到处运行”。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。容器对比虚拟机虚拟机(virtual machine)就是带环境安装的一种解决方案,虚拟机的缺点:资源占用多、冗余步骤多 、启动慢。Linux 容器不是模

2022-02-11 21:49:46 678

原创 VMvare网络设置

1、选择NAT模式2、设置子网和子网掩码3、设置虚拟机ipvi /etc/sysconfig/network-scripts/ifcfg-ens33然后再重新启动reboot4、测试

2021-12-12 17:21:03 173

原创 SpringBoot整合Mybatis遇到的问题

一、SpringBoot如何在自定义的类中调用Service// 第一步:加个@Component@Componentpublic class CheckClient { // 第二步:注入要调用的Service @Autowired CheckClientService checkClientService; // 第三步:声明一个这个类的静态对象 private static CheckClient checkClient; // 第四步:加入一

2021-08-01 20:24:02 164

原创 mall整合 redis

mall整合 redis参考资料:mall整合Redis实现缓存功能1、下载redis下载地址:https://github.com/MicrosoftArchive/redis/releases在当前地址栏输入cmd后,执行redis的启动命令:redis-server.exe redis.windows.conf2、添加依赖和配置<!--redis依赖--><dependency> <groupId>org.springframework.b

2021-07-25 11:03:15 109

原创 MyBatis Generator的使用

MyBatis Generator使用一、MyBatis Generator的介绍及作用​ MyBatis Generator(MBG)是MyBatis和iBATIS的代码生成器 。 MyBatis Generator可以生成:与表结构匹配的Java POJO生成xml里的sql和mapper接口学习的参考链接:mall整合SpringBoot+MyBatis搭建基本骨架二、如何使用MyBatis Generator1、引入依赖<!-- MyBatis 生成器 -->

2021-07-25 10:24:35 271

原创 如何使用Spring中的事务

一、声明式事务1、基于xml的声明式事务使用步骤:配置事务管理器<!--1 创建事务管理器--> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <!--注入数据源--> <property name="dataSource" ref="dataSource

2021-07-10 19:55:08 102

原创 SpringBoot设置过滤器

一、Filter和interceptor的区别Filter过滤器只依赖servlet API,不依赖Spring,它的作用是请求进入容器后,但是进入Servlet之前,对请求进行预处理, 主要是设置字符集、控制权限、控制转向、做一些业务逻辑判断等 。拦截器是在controller代码执行之前,它主要是用于拦截用户请求并作相应的处理,比如说可以判断用户是否登录,做相关的日志记录,也可以做权限管理。测试:设置了两个拦截器分别为拦截器1、拦截器2,请求在过滤器和拦截器中的执行步骤如下进入到过滤器的do

2021-06-12 14:56:05 660

转载 SpringBoot的拦截器

该文章来源于互联网:原文档链接1. 拦截器介绍拦截器是在servlet执行之前执行的程序(这里就是controller代码执行之前),它主要是用于拦截用户请求并作相应的处理,比如说可以判断用户是否登录,做相关的日志记录,也可以做权限管理。SpringBoot中的拦截器实现和spring mvc 中是一样的,它的大致流程是,先自己定义一个拦截器类,并将这个类实现一个HandlerInterceptor类,或者是继承HandlerInterceptorAdapter,都可以实现拦截器的定义。然后将自己定义

2021-06-12 11:27:17 1680

原创 WebService学习

一、WebService概述1.1 WebService是什么​ WebService是一种跨编程语言和跨操作系统平台的远程调用技术。​ Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。​ Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换

2021-06-06 09:19:36 313

原创 分布式事务学习笔记

分布式事务0.课前准备0.1.学习目标了解分布式事务产生的原因知道几种分布式事务解决方案:XA、TCC、消息事务、TA、SAGA知道分布式事务各种解决方案的优缺点和使用场景学会使用Seata来解决分布式事务0.2.知识准备会使用SpringBoot会使用SpringCloud的Eureka和Feign组件知道mysql的传统事务特性1.什么是分布式事务要了解分布式事务,必须先了解本地事务。1.1.本地事务本地事务,是指传统的单机数据库事务,必须具备ACID原则:原子性

2021-04-24 12:38:36 247

原创 seata报no available service ‘null‘ found, please make sure registry config correct

整合seata做分布式事务时,启动项目时一直出现这个错误no available service ‘null‘ found, please make sure registry config correct查找了很久一直没解决,看了写博客说把register.conf里的分组改为default,试了下依然没用。弄了很久看到了一篇博客1.1版本之后vgroup_mapping改成vgroupMapping了然后我把服务里的vgroup_mapping改成vgroupMapping了,然后成功

2021-04-23 23:49:17 493 1

原创 docker学习笔记

docker的介绍Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次封装,到处运行”容器对比虚拟机虚拟机(virtual machine)就是带环境安装的一种解决方案,虚拟机的缺点:资源占用多、冗余步骤多 、启动慢。Linux 容器不是模拟一个完整的操作系统,而是对进程进行隔离。有了容器,就可以将软件运行所需的

2021-01-11 18:46:43 166

原创 seata启动报错:no available service ‘null’ found, please make sure registry config correct

seata启动报错:no available service ‘null’ found, please make sure registry config correct启动项目,发现控制台一直打印这段话no available service 'null' found, please make sure registry config correct修改很久没有成功,在网上看到这篇文章,终于解决了。原来是我pom文件seata的seata版本是1.2.0,我下在的seata版本为0.9.0&l

2021-01-08 23:58:10 2472 2

转载 nacos1.1.4 配置MySQL8.0+持久化,亲测可以

转载自:nacos 配置MySQL8.0+持久化文章目录1. 问题描述2. 解决方案3. 打包运行Nacos是阿里的一个开源产品,它是针对微服务架构中的服务发现、配置管理、服务治理的综合型解决方案Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您实现动态服务发现、服务配置管理、服务及流量管理。 Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。Nacos 是构建以“服务”为中心的现代应用架构的服务基础设施。官网地址:https:/

2021-01-05 23:57:06 1677

转载 centos7安装RabbitMq,亲测可用

一、安装ErlangRabbitMQ由Erlang语言编写而写,所以在安装RabbitMQ之前先安装Erlang1、elang在默认的yum存储库中不可用,所以先安装epel存储库,命令如下:yum -y install epel-release2、安装erlangyum -y install erlang socat3、安装erlang完成,查看版本erl -version二、安装rabbitmq1、先下载rabbitmq,然后安装rabbitmq:rpm -ivh rabbi

2021-01-02 23:21:55 333

原创 Zookeeper知识复习

zookeeper是什么?Zookeeper 是一个开源的分布式的,为分布式应用提供协调服务的 Apache 项目。Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册, 一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应。zookeeper的应用场景统一命名服务:在分布式环境下,经常需要对应用/服务进行统一命名,便于识别。统一配置管理:分

2020-12-26 13:10:48 107

原创 linux常用的查看整机性能命令

linux常用的查看整机性能命令top命令cup:按数字键1查看cpu的核数,us代表user,sy代表systemmem:内存id:空闲率load average: 0.36, 0.14, 0.08 系统负载率(1分钟,5分钟,15分钟的系统平均负载量),三个值相加除以三大于0.6,说明系统负载重。uptime命令,跟top命令类似[wangqiang@localhost /]$ uptime 20:24:27 up 13:47, 2 users, load average:

2020-12-20 13:00:54 523 1

空空如也

空空如也

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

TA关注的人

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