- 博客(92)
- 收藏
- 关注
原创 一文流:搞懂本地部署、IaaS、PaaS、SaaS、iPaaS、aPaaS
(图示:通过可视化配置连接Salesforce、SAP、MySQL数据源):成本高(硬件+运维团队)、扩展性差(突发流量需紧急采购)、升级繁琐。:内部管理系统、快速原型验证、长尾需求(如疫情排查小程序)。五、iPaaS(集成平台即服务):系统间的“万能胶水”二、IaaS(基础设施即服务):云时代的“毛坯房”四、SaaS(软件即服务):“拎包入住”的终极形态。:Salesforce、钉钉、飞书、GitHub。:AWS EC2、阿里云ECS、腾讯云CVM。:Web应用、API服务、微服务架构快速上线。
2025-03-20 18:37:03
612
原创 一文流:Maven精讲
一文流系列是作者苦于技术知识学了-忘了,背了-忘了的苦恼,决心把技术知识的要点一笔笔✍️出来,一图图画出来,一句句讲出来,以求刻在🧠里。该系列文章会把核心要点提炼出来,以求掌握精髓,至于其他细节,写在文章里,留待后续回忆。目前进度请查看::::infohttps://www.yuque.com/u1949579/vtk1e4/fuq6986htl8yy9bg?singleDoc# 《我的技术栈-思维导图》:::Maven是什么呀?是一款功能强大的**项目构建和依赖管理**工具。简单来说,就
2025-01-10 18:01:20
714
1
原创 一文流:Mysql进阶(多图提醒⚠️)
本文聚焦 MySQL 进阶知识。讲述其起源于瑞典 TcX 公司,因特定需求而生,经多年发展,版本持续更新,特性不断丰富。其体系结构分网络连接、数据库服务、存储引擎、系统文件四层。运行机制涵盖连接管理、查询缓存、解析优化、执行引擎等关键环节,各环节紧密协作。重点剖析了 InnoDB、MyISAM、Memory 等存储引擎,InnoDB 因支持事务、行级锁等特性成为默认引擎,其数据文件与逻辑存储结构独特。文章为开发者深入掌握 MySQL 技术提供了全面且关键的要点总结,有助于提升实践能力。
2025-01-08 20:01:28
734
1
原创 一文流:Mysql my.cnf配置完整示例
该系列文章会把核心要点提炼出来,以求掌握精髓,至于其他细节,写在文章里,留待后续回忆。出来,一图图画出来,一句句讲出来。《我的技术栈-思维导图》
2024-12-25 14:44:24
562
原创 分布式事务的前世今生-纯理论
幂等性是指一个操作无论执行多少次,产生的效果都是相同的。在幂等操作中,重复执行操作不会改变系统的状态,或不会导致副作用的累积。换句话说,执行一次和执行多次的结果是相同的。幂等操作在分布式系统中的重要性在分布式系统中,由于网络不稳定、服务不可用等原因,可能会导致某个操作失败。为了提高系统的可靠性,常见的策略是对失败的操作进行重试。然而,如果操作不是幂等的,重试可能导致不期望的副作用,例如重复扣款、重复订单等问题。
2024-12-07 23:15:58
1094
原创 Netty入门 图文并茂 B站课程(尚硅谷)学习总结
前文 Java-I/O模型1. 什么是NettyNetty官网 netty.io异步的基于事件驱动的网络应用框架,用于快速开发高性能的协议服务和客户端。Netty 是一个 NIO 客户端服务器框架,可以快速轻松地开发协议服务器和客户端等网络应用程序。它极大地简化和流线了网络编程,例如 TCP 和 UDP 套接字服务器。“快速和简单”并不意味着生成的应用程序会受到可维护性或性能问题的影响。Netty 是根据从实现许多协议(如 FTP、SMTP、HTTP 以及各种二进制和基于文本的旧协议)中获得
2022-04-06 18:10:33
574
原创 Java IO 模型 B站课程(尚硅谷)学习总结
IO模型就是用什么样的通道进行数据的发送和接收,很大程度上决定了程序通信的性能。Java共支持3种网络编程模型/IO模式:BIO,NIO,AIO1. IO模型介绍Java BIOBlocking IO,阻塞io服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情就会造成不必要的连接开销。Java NIONon-Blocking IO,同步非阻塞io服务器实现模式为一个线程处理多个请求(连接),即客户端发送的连接请求都会注
2022-04-06 18:06:21
1205
5
原创 Redis 使用_配置篇
redis-cli 客户端redis-cli命令redis-cli 开启客户端工具auth password 输入密码ttl key 查询当前键的生存时间(-1 无穷大, -2 已过期)expire key [integer] 设置生存时间select [integer] 选择数据库,redis默认有16个数据库flushdb 清除当前数据库flushall 清除所有数据库常规配置配置文件redis.confdaemonize no 修改为 daemonize yes 开启后台运
2021-12-27 11:57:19
469
原创 Redis 内存淘汰机制
Redis 缓存过期机制(主动 & 被动)设置过期时间我们可以在设置键时设置expire time,也可以在运行时给存在的键设置剩余的生存时间,不设置则默认为-1,设置为-1时表示永久存储。定期删除Redis设定每隔100ms随机抽取设置了过期时间的key,并对其进行检查,如果已经过期则删除。为什么是随机抽取? 因为如果存储了大量数据,全部遍历一遍是非常影响性能的!惰性删除每次获取key时会对key进行判断是否还存活,如果已经过期了则删除。注意:Redis中过期的k
2021-12-27 11:56:49
158
原创 Redis 持久化机制
Redis数据持久化机制RDB(Redis Database) 间隔时间的快照模式备份RDB模式的优势1.保存每个间隔时间点的数据集,方便根据需要恢复到不同版本的数据集2.是一个单一文件,因此可以非常简单的进行灾难恢复3.因为RDB模式在实现上只是由父进程fork一个子进程进行数据集的持久化,因此RDB模式下Redis的性能能够得到最大化RDB模式的劣势1.因为是间隔时间备份,因此有可能丢失部分数据2.数据集比较大的时候,Redis进程fork子进程时比较耗时,可能导致Redis
2021-12-27 11:56:10
516
原创 Redis 常用数据类型
Redis数据类型参考:https://www.cnblogs.com/kevin-yang123/p/13895649.html1. Redis常用五大数据类型String 字符串最为基础的数据存储类型是一个由字节组成的序列他在Redis中是二进制安全的,意味着该类型可以接受任何格式的数据,如JPEG图像数据货Json对象描述信息等是标准的key-value,一般来存字符串,整数和浮点数。Value最多可以容纳的数据长度为512MB应用场景:常用于统计网站访问数量,当前在线人
2021-12-27 11:55:38
1120
转载 深入剖析synchronized关键字的底层原理
转发自知乎: https://zhuanlan.zhihu.com/p/114132797前序在Java并发编程当中, 我们会非常的熟悉synchronized关键字, 在JDK1.5之前, 仅仅只能通过该关键字来实现线程的同步, 在很多的文章中, 我们都或多或少的会听到[synchronized关键字是一个非常重的操作,但是在JDK1.6开始, 已经有了很大的改观]这样的一句话, 这时我就会疑惑, 为啥synchronized关键字是一个非常重的操作呢?1.6开始到底有了什么样的改观呢?然而这些
2021-09-16 21:55:01
431
原创 多线程基础-synchronized
一个简单的并发问题package cn.kerninventor.demo.multithread.sync;/** * @author kern */public class TestCase { private int number = 0; public void addNumber() { for (int i = 0; i < 100000; i++) { number = number + 1; }
2021-09-16 21:54:00
277
转载 多线程基础-并发问题产生的三大根源
多线程基础 Java线程什么是冯诺伊曼结构、哈佛结构、改进型哈佛结构性能之殇:从冯.诺伊曼瓶颈谈起究竟什么是冯.诺伊曼瓶颈我是一个CPU:这个世界慢死了本文转载自:并发理论基础:并发问题产生的三大根源 - 勤劳的小手的文章 - 知乎 并发问题变幻莫测,一谈到并发就显得非常高深,一般的程序员对于并发问题也是头疼不已,但是随着网络互联越来越普遍,大规模用户访问网站程序也越来越频繁,并发问题又无法避免。在我们解决并发问题前首先要理解产生并发问题的根源是什么,所有并发处理的工具只是针对这些根源问题.
2021-09-16 21:51:49
596
原创 多线程基础-Java线程
1. 什么是多线程1.1 多线程简介线程是进程中的任务单元,是计算机cpu执行指令的最小单元。简单的说,一个计算机中有多个进程,进程相当于我们使用的各个软件,而一个进程中有多个线程。计算机软件的实际运行是由多个线程完成执行的。cpu通过分配时间片给某个进程中的某个线程在时间片内执行该线程的任务,某个时刻中计算机的一个cpu实际上只执行一个线程的任务,cpu非常快速在多个线程间分配时间片来完成用户发出的预期指令。由于计算机指令的执行速度和时间片切换相对于人类而言是非常快的,所以在人类看来,似乎计算机在一段
2021-09-16 21:50:03
524
原创 Linux vim 文本替换 %s/原文/替换文本/g
语法ESC:%s/origanl/new/g%s 表示替换文本。origan 表示原文new 表示新的内容/g 表示全文替换,如果仅替换第一个则不需要/g需要注意如果要替换的内容中包含特殊含义的自负,需要使用转义符转义例如:%s/\\/\//g 表示把所有 反斜杠 \ 替换成正斜杠 / 拆开来看:%s 表示要替换/ 语法分隔\ 第一个 \ 表转义,第二个 \ 表示反斜杠/ 语法分隔/ \ 表转义, / 表示正斜杠/ 语法分隔/g 表示全文替换如图
2021-08-26 10:34:38
6675
2
原创 Linux 命令unmask
新建文件夹或文件的权限是由所谓基本码减去称之为umask的屏蔽位得到的。按照规约:文件夹的基本码是rwxrwxrwx(777),文件的基本码是rw-rw-rw-(666)例如unmask 022因此新建文件夹是777-022=755(rwxr-xr-x),新建文件是666-022=644(rw-r–r--)...
2021-08-26 10:18:49
1419
原创 MAVEN 属性
MAVEN pom文件中可以使用 ${} 引用键值对属性,MAVEN的属性主要包括以下几类内置属性XML标签属性pom.xml 标签属性settings.xml 标签属性环境变量属性Java系统属性,通过JAVA代码 System.getProperties() 获得的所有属性操作系统的环境变量POM文件中自定义的Properties属性1. 内置属性(Maven预定义,用户可以直接使用)内置属性值属性描述basedir表示项目根目录,即包含pom.
2021-08-23 13:03:01
1242
1
原创 Perl 语言入门学习
Perl 语言学习 – 入门篇入门篇包括但不限于以下内容Perl 简介版本历史第一个Perl程序Perl的基本数据类型Perl的运算操作符和判断操作符Perl的数组操作Perl的控制结构语句Perl的子程序注:尽管本文中没有提及逻辑控制符,但Perl的逻辑控制符与C 或者 JAVA 的逻辑控制符号 基本一致, 都支持与或非的操作 也就是 ! | & 这几个符号,使用上也没有太大差异。因而本文中就此略过,如有需要请自行查阅相关文档文章目录Perl 语言学习 -- 入门篇1
2021-07-13 14:01:04
14092
7
原创 Servlet 3.1 Servlet革命性特性,SpringBoot诞生基础
声明:本文基于Servlet3.1规范翻译整理,如有谬误,烦请指正。JSR 340,原文请查阅 https://www.jcp.org/en/jsr/summary?id=Servlet+3.1本文中的示例代码 可以 从https://gitee.com/Ouroboros_K/springboot2-demo.git项目中的servlet-service模块中获得1 Servlet 概括Servlet 是基于Java技术的Web组件Servlet 用于生成动态内容。动态: 数据动态.
2021-04-24 15:48:25
1286
2
原创 JDK的完整安装
1 JDK 简介JDK是Java语言的软件开发环境。全称Java Development Kit(java开发工具包)。包括用于开发Java小程序和应用程序的 JVM(java虚拟机),编译器,调试器,JRE(java runtime environment,java运行环境)和其他工具。JDK按照版本主要分为ME版本,SE版本和EE版本,其中ME版本为微型版,主要用于移动设备和嵌入式设备上(如手机,PDA,电视机顶盒、打印机等)的java开发。SE版本为标准版。EE版本为企业版。企业版的部分版本需要付费
2021-03-15 09:19:03
9998
1
原创 Java 面向对象编程特性:封装 继承 多态
谈到java的特性,很多程序员会在第一时间说出,“Java是面向对象编程的语言”。这句话本身是没有错的,但是,为了完全理解 Java和面向对象之间的关系(即完全理解什么是面向对象编程,与之不同的还有什么?java作为面向对象编程的一类语言,如何实现了面向对象编程思想),我们还需要简单了解一下具有其他编程思维的一些语言,例如机器语言,汇编语言,面向过程编程语言,了解这些语言的过程实际上也揭示了计算机语言从底层语言到高级语言的变化,从简陋到复杂,从晦涩到易懂的一个过程是如何演变的。1 机器语言1001010
2021-03-15 09:15:59
780
原创 Maven POM的艺术
Maven POM的艺术Maven 知识的累积者Maven 是为了简化 基于Java的项目的构建而生的。说到简化, 对于没有经历过复杂构建过程的人而言, 很难理解 Maven 的简化含义。为了了解 Maven 到底如何帮助我们 简化了项目构建。我们首先需要对Maven诞生之前的项目构建过程有一个大概的了解。项目构建的先行者 Ant在Maven 之前,程序员通常使用 ant 来构建 Java项目, ant 意即蚂蚁, 是Apache 基金会下的跨平台(基于JAVA)的构件工具。每个ant项目都包含一
2021-03-01 10:03:26
276
原创 Maven 最详细的settings.xml 配置文件解释
Maven settings.xml详解settings.xmlmaven的主配置文件缺省名称为 settings.xml 其完整结构如下(为了方便阅读,删除了注释部分):<?xml version="1.0" encoding="UTF-8"?><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
2021-03-01 10:01:11
11421
1
原创 Springboot - Redis 1 最简单的Redis集成应用
1. 新建Springboot项目pom文件如下<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.
2021-01-06 21:36:29
163
原创 CentOS7下 Redis 安装(Yum)配置
@[TOC](CentOS7下 Redis 安装(Yum)配置)1. Yum安装Redisyum install -y redis2. 配置编辑Redis配置文件vim /etc/redis.conf修改配置如下#开启远程访问 默认绑定 127.0.0.1仅本地访问,也可以绑定具体的网端bind 0.0.0.0#后台运行,默认nodaemonize yes#配置工作目录,也就是缓存持久化文件的存储地址,默认/var/lib/redisdir /var/lib/redis#设置密
2021-01-06 20:09:15
732
原创 Mysql 修改表和表字段的编码格式和排序规则
alter table ' tablename' convert to character set utf8mb4 COLLATE utf8mb4_general_ci;
2020-11-17 15:12:00
1137
原创 Linux 配置静态IP
Linux的网络信息存储在网卡配置文件中,位于 /etc/sysconfig/network-scripts/ 目录下。你可以使用ip address查看当前生效的网卡名称,例如我的是ens33[root@localhost ~]# ip address1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:0
2020-11-05 15:46:33
140
原创 LVS-DR 直接路由模式搭建
Linux Virtual Server - Direct Rounting Mode前置准备配置lvs节点(151)的虚拟ip=150配置lvs节点(150)的集群规则配置Real servers节点(130,131)的回环ip配置Real servers节点(130,131)的ARP响应级别验证连接及dr模式下的其他机制持久化机制--persistent integer--set integer integer integer其他问题! 关于ipvsadm的重启前置准备lvs节点 192.168.
2020-11-04 19:11:11
539
1
原创 LVS Linux Virtual Server 负载均衡
LVS负载均衡官网网站:http://www.linux-vs.org/LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。LVS 负载均衡是基于四层(传输层)的负载均衡LVS 对比Nginx 负载均衡参考文档 :https://blog.youkuaiyun.com/moqiang02/article/details/36015373简单的说:Nginx负载均衡工作在
2020-11-04 10:16:20
270
1
原创 Docker CentOS7下的安装
Docker CentOS7下的安装Docker下载官网地址 https://docs.docker.com/get-docker/通过yum安装Docker1. 卸载旧版本,确保是干净的环境yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-la
2020-11-03 18:36:07
107
原创 Keepalived + Nginx 搭建高可用双机主备集群
Keepalived + Nginx 搭建高可用双机主备集群环境准备,编写Nginx自动重启脚本修改keepalived.conf 配置文件开启服务并测试1. 测试主备切换2. 测试Nginx自动重启配置nginx-tomcat服务集群在通过 Nginx 构建 服务集群后, 为保证Nginx服务的高可用性, 配备第二台Nginx 作为后备, 通过keepalived虚拟路由实现双机主备,最终实现内网环境下高可用服务集群。方案如下图所示:环境准备,两台服务器,本文以虚拟机为例。域名通过手动修改
2020-11-03 18:33:36
395
原创 Keepalived 解决使用systemctl 无法关闭
Keepalived 解决使用systemctl 无法关闭修改keepalived.service 文件vim /usr/lib/systemd/system/keepalived.service修改KillMode=control-groupKillMode值释义:process kill 主进程control-group 杀死进程组,不设置时默认值指定PIDFile=keepalived.pid 的生成路径,需要注意文件存放目录是否有写入权限$MAINPID 为该文件记
2020-11-03 18:24:11
1813
原创 Keepalived CentOS7下安装Keepalived
Keepalived CentOS7下安装Keepalived1. 源码包安装官网下载地址: https://www.keepalived.org/download.html官网下载源码包后上传到服务器,解压缩,然后进去解压出来的目录tar -zxvf keepalived-2.1.5.tar.gzcd keepalived-2.1.5注:keepalived 是使用C 编写的程序,源码包安装需要gcc进行编译安装,所以需要首先安装gcc编译器联网状态下可以使用 yum -y install
2020-11-03 18:22:52
646
原创 Keepalived 简介
Keepalived 简介官网: https://www.keepalived.org/index.html什么是KeepalivedKeepalived是一个用c语言编写的路由软件,这个项目的主要目标是为Linux系统和基于Linux的基础设施提供简单而健壮的负载平衡和高可用性的设施。loadbalance框架依赖于著名且广泛使用的Linux Virtual Server (IPVS)内核模块提供的第4层loadbalance。Keepalived实现了一组检查器,根据负载平衡服务器池的运行状况动态
2020-11-03 18:21:53
661
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人