自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 什么是 STAR 法则

STAR法则是由情境(Situation)、任务(Task)、行动(Action)、结果(result) 组成,通常被用于在项目上或某一件事情的精简描述。

2023-03-26 10:59:36 684 1

原创 docker-compose 部署 MongoDB 6 版本以上分片集群及配置 SSL / TLS 认证

MongoDB 6.0 最新版本分片集群部署及配置 SSL / TLS 认证,全面介绍了分片方案带来的好处以及海量数据的存储。

2023-02-28 15:14:42 1529 1

原创 SpringBoot 整合 MongoDB 6 以上版本副本集及配置 SSL / TLS 协议

SpringBoot 快速整合 MongoDB 6 以上版本副本集及配置 SSL / TLS 协议认证。

2023-02-24 15:09:44 1166

原创 Linux 中使用 docker-compose 部署 MongoDB 6 以上版本副本集及配置 SSL / TLS 协议

docker-compose 部署 MongoDB 6 版本以上副本集,并实现 SSL / TLS 加密认证和 Client 连接相关配置。

2023-02-23 21:29:41 1633 2

原创 分布式理论CAP

CAP理论,指的是在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partition Tolerance(分区容错性),不能同时成立。CAP理论是分布式架构中提出来的一种设计思想模型,全称是由、、三个词组成,通过单词便可知其意,其实,这三个词分别代表着不同的含义,在做分布式架构设计时,只能在其三中选其二,并不能同时满足三个思想模型。分布式理论CAP三者的定义如下:一致性(C ):保证所有节点上的数据始终同步。可用性(A )

2022-11-02 15:32:37 2049

原创 什么是架构

架构,又名软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。架构描述语言(ADL)用于描述软件的体系架构。软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口。

2022-10-28 15:58:13 14359 2

原创 手写LRU算法

LRU算法是根据对数据的历史访问次数来进行淘汰数据的,通常使用双向链表来实现。在缓存中,它的设计原则是:如果数据最近被访问过,那么将来它被访问的几率也很高。

2022-10-02 16:48:29 444

原创 技术架构选型标准

技术架构选型通用标准规范

2022-09-10 16:08:48 1197

原创 如何渗透技术架构领域

在传统架构领域之初,我们往往会为了快速迭代出产品,而选择出最简单的技术架构,比如LAMP架构,SSH三层架构,单体架构等;在到技术架构领域的推动下,为了满足支撑业务需求及架构重组,逐渐形成了目前的分布式架构、SOA架构、微服务架构等。

2021-12-11 15:50:21 311

原创 测试开发必备技能

测试开发必备技能一、掌握简单的Java基础知识1、基本数据类型(包装类型);2、集合(List、Set、Map);3、能够看懂代码(不需要懂代码是怎么写的)。二、数据库方面知识1、基本常用的SQL会写,比如:查询、新增、更新、删除语句;2、会使用数据库客户端工具,如:Navicat、SQLyog、DBeaver等。三、简单了解的基础知识(可选)1、请求方式(协议):http、https、soap、tcp等;2、Git相关知识了解和基本使用。四、测试用例的编写1、概念测试用例是测试环

2021-11-13 21:49:46 6268

原创 浅谈Fenix API的原理和使用

一、简介Fenix 简称菲尼克斯是一个为了解决复杂动态 SQL (JPQL) 而生的 Spring Data JPA 扩展库,目的是辅助开发者更方便快捷的书写复杂、动态且易于维护的 SQL,支持 XML、Java 链式 API 和动态条件注解等四种方式来书写动态 SQL。Fenix的选择是在原有的Spring Data JPA库上做了增强,提供了各种高效率的API方法和Java ApI等方式的链式操作;之前基于Mybatis中的运用,需要在xml中编写JPQL语言,而为了简便开发,Fenix在xml中引

2021-10-30 23:29:52 1518

原创 Spring有限状态机实现原理与机制

一、概念Spring Statemachine 是应用程序开发人员在 Spring 应用程序中使用状态机概念的框架,从设计层面分析:状态机目的是解决复杂的状态管理流程,保证程序单一原则和开闭原则;业务角度分析:状态机应有初始化状态、加载所有已有的状态、事件、转移、动作、触发下一个状态为驱动,并解决了业务逻辑与状态管理之间的强耦合。二、 Spring Statemachine 旨在提供以下功能:易于使用的平面一级状态机,适用于简单的用例。分层状态机结构以简化复杂的状态配置。状态机区域提供更复杂的状

2021-08-27 14:24:10 2128 1

原创 SpringBoot之导出Excel表格工具类

一、基于Apache下的poi实现Excel表格的导出功能1、引入poi相关依赖<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.11-beta1</version></dependency><dependency> <g

2021-04-18 14:16:12 540 1

原创 Spring如何解决循环依赖的吗?

在关于Spring的面试中,我们经常会被问到一个问题,那就是Spring是如何解决循环依赖问题的吗?对于这个问题在面试中被问到并不陌生,属于一道常见的高频面试题。如果大家不深刻去读,相信即使读过源码,也不一定能回答的好,本篇文章将带大家如何从源码的角度去分析进行讲解。一、过程演示分析1、关于Spring bean的创建,其本质上还是一个对象的创建,那竟然是对象,大家一定会明白一点的就是,一个完整的对象是包含两方面的:当前对象的实例化和对象属性的实例化(即注入属性)。在Spring中,对象的实例化底层是

2021-02-25 15:04:51 150

原创 ElasticSearch的实现原理及底层实现,什么是倒排索引,常用的分词器有哪些吗?

一、简介Elasticsearch是一个基于Lucene的分布式搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engin

2021-02-14 16:59:52 1031

原创 RocketMQ的原理及应用,与RabbitMQ如何保证消费顺序的吗?以及它们是如何保证消息不丢失的吗?

一、简介RocketMQ 是一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。 最初是由阿里开源的分布式消息引擎,由于后面维护问题,提交给Apache下的顶级维护项目之一。现在最新版本V4.8.0,如需了解官网地址:https://rocketmq.apache.org消息队列作为高并发系统的核心组件之一,能够帮助业务系统解构提升开发效率和系统稳定性。主要具有以下优势:削峰填谷(主要解决瞬时写压力大于应用服务能力导致消息丢失、系统奔溃等问题)系统解耦(解

2021-02-13 16:06:25 2458 6

原创 讲一下Dubbo框架的实现原理及与SpringCloud微服务之间的区别

一、简介Dubbo是由阿里巴巴开源的透明的高性能分布式RPC框架,基于dubbo协议实现,底层通信方式是基于TCP长连接,传输方式是NIO实现,提高服务的性能。主要有三个核心特性:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。二、Dubbo工作原理:第一层:service层,接口层,给服务提供者和消费者来实现的第二层:config层,配置层,主要是对dubbo进行各种配置的第三层:proxy层,服务代理层,透明生成客户端的stub和服务单的skeleton第四层:regi

2021-01-23 17:27:18 647

原创 Java中原生操作JDBC连接及原理

一、简介JDBC全称又叫做Java DataBase Connectivity,也就是Java数据库连接,说白了就是用Java语言来操作数据 库,提供统一API访问数据库操作。二、原理JDBC主要是用于java连接数据库的,能连接什么数据库不固定,其实能连接很多种数据库,而且一般来说可以连接oracle和mysql,通常也是这两种。但是既然JDBC能连接这么多的数据库,开发起来太麻烦了,于是sun公司那些人想出了一个办法,我定义一套规范,大家都按照这个规范来,实现自己公司访问数据库的实现。这套规范就

2021-01-10 18:43:07 975 11

原创 深入理解AQS源码解析一

文章目录一、概念二、`ReentrantLock`源码分析ReentrantLock把所有Lock接口的操作都委派到一个Sync类上,该类继承了AbstractQueuedSynchronizer:Sync又有两个子类(分为:公平锁和非公平锁两类):首先我们主要先讲一下`ReentrantLock`类中的`lock()`方法和`uplock()`方法都做了些什么事情。1、lock()方法源码解析通过上面分析完`lock()`方法以后,我们来看一下`uplock()`方法中源码解析2、uplock()方法源码

2020-09-12 14:30:13 309 2

原创 带大家学习一下线程池的基本操作及ThreadLocal的使用

一、线程池的概念​ 首先,为什么要使用线程池呢?之前我们使用线程是怎么去使用创建的,可能对这方面有所了解的人都会想到,创建线程的过程中是很损性能这回事。为什么会导致这样,主要是线程的频繁的创建、销毁等引起的。后面在JDK1.5中加入了线程池这种观念,线程池会帮我们提前创建好你所需要的线程数量或者能够极大的提高线程之间的复用性,进而提升本身程序的性能。二、讲一下线程池的几种创建方式1、new ThreadPoolExecutor(…)2、new ScheduledThreadPoolExecutor

2020-08-22 16:18:23 598

原创 Java对接微信支付详解

一、介绍微信支付对于我们日常来说,并不陌生,也许我们日常都在用。现在我就讲一下微信支付的流程是怎么实现的,都有哪些步骤,以及注意点。支付流程图:参数说明如图:二、开发步骤1、首先需要开通商户号,获取商户mch_id、mch_secret(密钥)2、开通小程序或公众号,获取小程序或公众号appid、secret(密钥)3、除了前面2步的准备环境,也就进入主流程步骤,分为3步如下:3-1:封装有必要的微信支付参数并拉取微信支付API3-2:对封装的参数进行提取并开始支付阶段,需要二次签名加

2020-08-16 14:15:48 4846 1

原创 讲一下JDK8中Stream流

讲一下JDK8中Stream流详解一、简介首先,Stream流是JDK8中加入的,主要是为了解决日常开发中编写复杂的代码。通过结合Lambda表达式可以完美的写出简洁高效的代码,Stream流分为三个阶段:开始–>中间–>结束。一个流只能被操作一次(调用中间流或终端流操作)。例如,这就排除了“分叉”流,即同一个源为两个或多个管道提供数据,或者同一个流的多次遍历。如果流实现检测到流正在被重用,它可能会抛出illeglastateException。然而,由于一些流操作可能返回其接收器而不是新

2020-08-15 16:19:18 374

原创 Nacos详细解释配置与注册

一、介绍Nacos是阿里巴巴最新开源的项目,核心定位是“一个更易于帮助构建云原生应用的动态服务发现、配置和服务管理平台”,项目地址:https://nacos.io/zh-cn/ Nacos核心提供两个功能:服务注册与发现,动态配置管理。Nacos核心提供两个功能:服务注册与发现,动态配置管理。1、服务注册与发现Nacos提供基于DNS和基于RPC的服务发现,即能被用来支持https/http的服务注册与发现,也支持RPC如dubbo的服务注册与发现。与Dubbo使用的zookeeper相比

2020-08-02 16:05:46 5447

原创 教你如何手写一个SpringMvc

一、前提1、在开始之前,回顾一下SpringMvc的大致流程,如下图:通过图可知:MVC中最主要的就是DispatcherServlet(前端控制器)、HandleMapping(处理器映射器)、HandleAdapter(处理器适配器)、ViewResolver(视图解析器)。相对于这个MVC流程图大家都能够看懂也比较熟悉,我就不一一解释了!二、开始分析步骤流程(项目工具 idea)项目代码结构:1、首先创建一个web项目,什么配置文件都不需要,web.xml文件可有可无,只需要一个空壳

2020-07-07 16:14:05 330

原创 CentOs8.0安装Jpress 教你如何快速搭建个人博客

一、准备环境1、jdk安装 (在前面文章已经讲过)链接地址: https://blog.csdn.net/weixin_43322048/article/details/1068775012、tomcat安装(我这里以tomcat8为例子)获取tomcat8安装包:链接:https://pan.baidu.com/s/1kCXQa_b30OWpNCGJIFB8Tw提取码:6zel首先,tomcat安装很简单,你只需要将安装包上传到服务器,然后解压即可。解压命令:tar -zxvf apa

2020-07-01 17:22:49 749

原创 Docker安装mysql8.0以上版本

一、安装docker1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。通过 uname -r 命令查看你当前的内核版本 :uname -r2、使用 root 权限登录 Centos7。确保 yum 包更新到最新。sudo yum update #更新yum到最新3、卸载旧版本(如果安装过旧版本的话)sudo yum remove docker docker-common docker-selinux

2020-07-01 17:02:19 398 3

原创 JDK1.8中HashMap源码分析

一、分析一下hashmap原理1、DEFAULT_INITIAL_CAPACITY = 1 << 4; 默认初始容量为16;2、MAXIMUM_CAPACITY = 1 << 30; 最大容量为2^30次方;3、DEFAULT_LOAD_FACTOR = 0.75f; 默认加载因子为0.75f;4、TREEIFY_THRESHOLD = 8; 默认链表长度大于等于8时(并且数组长度不小于64)时转为红黑树;5、UNTREEIFY_THRESHOLD = 6 默认小于等于6时

2020-06-27 15:13:24 200

原创 Docker安装redis以配置文件方式启动

本次安装以挂载配置文件方式的形式进行启动,首先在宿主机中准备好一份redis配置文件,后面会将该配置文件挂载到redis容器中,方便以后对redis相关信息的配置。获取配置文件方式:在redis官网获取配置文件,链接下面已附上在我上一篇文章中获取: https://blog.csdn.net/weixin_43322048/article/details/106982005一、拉取redis镜像docker pull redis #获取redis镜像二、查看本地的所有镜像docker.

2020-06-27 14:28:10 303

原创 Redis配置文件redis.conf内容

由于近期我在网上找了大多数redis配置文件下载,都需要收取一定的费用,为了给大家整理配置文件的所有内容,特意去官网找到redis配置文件内容,免费给小白准备一份redis配置文件。直接拿去改一下配置就能用,不用谢!如有所需资料可以直接在博客中问。最新配置文件内容如下:# Redis configuration file example.## Note that in order to read the configuration file, Redis must be# started wit

2020-06-27 14:00:36 353

原创 CentOS7手把手教你安装FastDFS

一、服务器准备以下环境本次需要用到的其中3个依赖包(也可以根据下面给出的地址下载)百度网盘链接:链接:https://pan.baidu.com/s/1BspE0GIlfzevF2v3nyBfyg提取码:aj3j复制这段内容后打开百度网盘手机App,操作更方便哦【Tracker安装需要依赖一个环境和两个依赖包】1、 由于 FastDFS 采用 C 语言开发,所以在安装之前,如果没有 gcc 环境,需要先安装,安装命令如下: yum install gcc-c++ 【一个环境】2、 由于

2020-06-26 12:14:12 313

原创 Docker搭建MySql主从复制及分表分库(二)

Docker搭建MySql主从复制及分表分库(二)一、MySql安装及配置运行环境(以CentOs8.1为服务器)1、前提(期待已久的这一篇终于有撸下来了)其实,我在上一篇已经讲到怎么安装mysql以及运行环境的配置,今天我就带着大家完善上次出现的问题。首先,我先说明一下,安装我就不再累赘了,不知道怎么安装的小伙伴们可以去看我上一篇中文章。上一次出现这样的问题是由于版本过高导致的,官方目前mysql最新版本8.0.19,而mycat对于mysql最新版本有些功能还不是很完善,不支持原生操作,但允许Jd

2020-06-20 21:10:47 244

原创 简述一下Linux中安装JDK及配置

简述一下Linux中安装JDK及配置一、准备好jdk安装包你可以从官网下载下来: https://www.oracle.com/java/technologies/javase-downloads.html可能会比较慢,我提供一下百度网盘链接(稍微会快一点):链接:https://pan.baidu.com/s/1PenASQCuV4FCOoaLdPxwVQ提取码:4gy1将JDK安装包上传至服务器(以xshell为咧):使用rz命令上传:#若是没有rz命令则执行下面命令yum -y

2020-06-20 20:51:45 276

原创 解决云服务器添加了安全组端口无法访问问题

解决云服务器添加了安全组端口无法访问问题一.目的1.为了通过云服务器做服务器的外网映射而需要在云服务器添加安全组端口外网访问2.解决偶然发现添加安全组端口后,还是无法访问的解决方案二.以阿里云服务器为例1.前提条件1.设置阿里云安全组端口2.在本机cmd下,telnet IP+端口 (注:ip 后面是空格 + 端口号),如果通则万事大吉,如果不通,则进行排查方案2.进入阿里云服务器控制台3.快速开始排查(如有新的方式 会后续补上)1.)若telnet不通的话,则考虑是否服务器

2020-06-14 19:00:06 7736 5

原创 Docker搭建MySql主从复制及分表分库(一)

一、首先安装MySql1、搜索mysql镜像源docker search mysql #搜索mysql镜像2、拉取mysql镜像源 【这里以最新版本为咧】docker pull mysql #不加版本号,默认最新版本3、运行mysql容器docker run --name master -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456...

2020-04-04 22:00:18 366

原创 Docker搭建Redis主从复制并配置Sentinel模式

Docker搭建Redis主从复制并配置Sentinel模式一、安装Redis1、搜索redis镜像源docker search redis #搜索redis镜像2、拉取镜像源docker pull redis #不跟版本号,默认为最新版(latest)3、 下载完成后,我们就可以在本地镜像列表里查到REPOSITORY为redisdocker images #查看本地镜...

2020-04-02 21:39:56 243

原创 RocketMQ的安装和基本操作使用

RocketMQ的安装和基本操作使用假设安装了以下软件: 1、64bit OS, Linux/Unix/Mac is recommended 2、64bit JDK 1.8+(CentOS7自带jdk可以不用安装) 百度网盘链接:https://pan.baidu.com/s/12Zgkjr_Wih6Y3RS_6jLRzQ 提取码:jxrx 3、Maven 3.2....

2019-11-29 15:38:19 499

空空如也

空空如也

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

TA关注的人

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