- 博客(65)
- 资源 (6)
- 收藏
- 关注
原创 Kubernetes剖析
梳理容器技术生态的发展脉络,用最通俗易懂的语言描述容器底层技术的实现方式,知其然,也知其所以然。Kubernetes 集群号称“非常复杂”,但是如果明白了其中的架构和原理,选择了正确的工具和方法,它的搭建却也可以“一键安装”,它的应用部署也可以浅显易懂。“编排”永远都是容器云项目的灵魂所在
2024-02-27 23:44:14
962
原创 DTM分布式事务
DTM,Distributed Transaction Manager, 其是一个分布式事务管理器,解决跨数据库、跨服务、跨语言更新数据的一致性问题。 DTM提供了Saga、TCC、XA和二阶段消息模式以满足不同应用场景的需求,同时首创的**子事务屏障**技术有效解决`幂等`、`悬挂`和`空补偿`等异常问题。 DTM的优点:- 提供简单易用的接口,拆分具体业务接入分布式事务- 支持多语言栈- 核心技术**子事务屏蔽**,降低处理子事务乱的难度
2024-01-08 15:02:29
1720
原创 golang优雅退出
graceful shutdown,优雅退出。指HTTP服务接受到用户的退出指令后停止接收新请求,在处理和回复当前正在处理的这批请求后主动退出服务。区别于SIGKILL(kill -9 or CTRL + C),安全退出可以最小化程序在时的服务抖动用户的退出指令一般是SIGTERM(k8s的实现)或SIGINT(常常对应bash的Ctrl + C。
2023-11-17 11:03:49
762
原创 Mysql存储-EAV模式
EAV(Entity-Attribute-Value)模式,也称为对象-属性-值模式,是一种常用于数据库设计的灵活模式,适用于具有大量属性和属性值的实体。它在MySQL数据库中的实现可以解决一些传统关系型数据库表结构无法轻松满足的需求,例如动态属性、稀疏属性等。EAV模式的核心思想是将实体(Entity)的属性(Attribute)和值(Value)分别存储在不同的表中。这样可以在不修改表结构的情况下轻松添加或删除属性,从而提高数据库的灵活性。
2023-10-08 18:33:45
1067
原创 ES基础知识总结含SQL、DSL、GOLANG
Elasticsearch生态简介+es与kibana的紧密结合使用方法+es多种混合查询使用+golang框架调用以及源码解析
2023-05-12 17:22:58
2052
原创 Go并发读取string的Panic问题
本次问题出现的原因是string的修改并非是原子操作,与int、bool等不同,所以与数据竟态给的Demo不尽相同。在读取或复制这个字符串的时候,刚好另一个goRoutine只更改了str没有修改len,这时候会出现上述现象:空字符串的长度为9,最终在bytealg.CountString()发生panic。
2023-02-02 17:45:55
1381
1
原创 AQS、CAS、Synchronized小理解
小伙伴们可以在参考思维导图的时候,去看java.util.concurrent的源码,理解max~ABA问题:耳冉现在有100块钱,按顺序执行线程应该是执行线程1、线程3(执行线程2时仅剩50块钱),所以最后结果耳冉还剩100块钱。若是在线程1读的时候, 线程2先进行操作,则剩50块钱(此时线程1还在读);若是在线程1读的时候,线程3再进程操作,则剩100块钱(此时线程1还在读);这是线程1读到了耳冉还有100块钱,就取走50 ,因此只剩下50块钱...
2021-09-12 20:27:57
212
原创 HashMap重要思维导图
HashMap为什么使用红黑树而不是其他的数据结构回顾一下二叉树的基本内容:二叉排序树(查找树)若左子树不为空,则左子树上所有结点的值均小于根结点的值。若右子树不为空,则右子树上所有结点的值均大于根节点的值。左右子树也为二叉排序树平衡二叉树(AVL树)是一种二叉查找树,当且仅当两个子树的高度差不超过1时,这个树是平衡二叉树红黑树是许多二叉查找树中的一种,它能保证在最坏的情况下,基本动态集合操作时间为O(lgn)为什么不使用二叉排序树在添加元素的时候极端情况下会出现线性结构eg:.
2021-08-30 22:25:13
242
原创 mysql事务与多版本并发控制
1.1 MySQL逻辑架构MySQL服务器逻辑架构图:最上层的服务并不是MySQL所独有的,大多数基于网络的客户端/服务器的工具或者 服务都有类似的架构。比如连接处理、授权认证、安全等等。第二层架构是MySQL比较有意思的部分。大多数MySQL的核心服务功能都在这一层, 包括査询解析、分析、优化、缓存以及所有的内置函数(例如,日期、时间、数学和加密函数),所有跨存储引擎的功能都在这一层实现:存储过程、触发器、视图等。第三层包含了存储引擎。存储引擎负责MySQL中数据的存储和提取。和GNU/Lin
2021-07-27 22:25:57
290
原创 Redis的应用详解
一、NoSQL1、概述为了解决高并发、高可扩展、高可用、大数据存储问题而产生的数据库解决方案,就是NoSql数据库。NoSQL,泛指非关系型的数据库,NoSQL即Not-Only SQL,它可以作为关系型数据库的良好补充2、为什么使用NoSQL1 Mysql时代在90年代,一个网站的访问量一般都不大,用单个数据库完全可以轻松应付。在那个时候,更多的都是静态网页,动态交互类型的网站不多。服务器根本没有太大的压力!思考:随着时代的发展,网站的瓶颈是什么?1.数据量的总大小 一个机器放不下时
2021-05-23 09:19:37
1262
1
原创 Nginx从入门到应用详解
一、概述 Nginx (“engine x”) 是一个高性能的 HTTP 和反向代理服务器,特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx 网站用户有:百度、京东、新浪、网易、腾讯、淘宝等 Nginx 可以作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言,比如 perl、php 等。但是不支持 java。Java 程序只能通过与 tomcat 配合完成。Nginx 专为性能优化而开发, 性能是其最重要的考量,实现上
2021-05-09 10:34:07
322
2
原创 Linux从入门到指令详解
一、概述我们为什么要学习Linuxlinux诞生了这么多年,以前还喊着如何能取代windows系统,现在这个口号已经小多了,任何事物发展都有其局限性都有其天花板。就如同在国内再搞一个社交软件取代腾讯一样,想想而已基本不可能,因为用户已经习惯于使用微信交流,不是说技术上实现不了解而是老百姓已经习惯了,想让他们不用,即使他们自己不用亲戚朋友还是要用,没有办法的事情。用习惯了windows操作系统,再让大家切换到别的操作系统基本上是不可能的事情,改变一个人已经养成的习惯太难。没有办法深入到普通老百姓的生
2021-05-03 10:30:47
20297
49
原创 Vue博客前端页面及交互
二、Vue前端接下来,我们来完成vueblog前端的部分功能。可能会使用的到技术如下:vueelement-uiaxiosmavon-editormarkdown-itgithub-markdown-css1、环境搭建1 下载node.jsnode.js官网检查版本(是否安装成功)2 安装Vue环境# 安装淘宝npm npm install -g cnpm --registry=https://registry.npm.taobao.org# vue-cli 安装依赖包
2021-04-22 10:51:41
3169
2
原创 SpringBoot博客后端搭建
一、Java后端接口开发1、前言从零开始搭建一个项目骨架,最好选择合适,熟悉的技术,并且在未来易拓展,适合微服务化体系等。所以一般以Springboot作为我们的框架基础,这是离不开的了。然后数据层,我们常用的是Mybatis,易上手,方便维护。但是单表操作比较困难,特别是添加字段或减少字段的时候,比较繁琐,所以这里我推荐使用Mybatis Plus CRUD 操作,从而节省大量时间。作为一个项目骨架,权限也是我们不能忽略的,Shiro配置简单,使用也简单,所以使用Shiro作为我们的的权限。考.
2021-04-22 10:45:33
530
原创 快速理解JVM+GC
一、JVM探究请你谈谈对JVM的理解?java8虚拟机和之前的变化更新什么是OOM,什么是栈溢出StackOverFlowError?怎么分析JVM常用调优参数有哪些?内存快照如何抓取,怎么分析Dump文件?谈谈JVM中,类加载器的认识1、类加载器、双亲委派机制作用:加载Class文件 new Student();虚拟机自带的加载器启动类(根)加载器扩展类加载器应用程序加载器双亲委派机制为了安全APP—>EXC—>BOOT(最终执行)过程类加载器收到类加载
2021-03-30 23:33:04
321
原创 JUC并发编程深入浅出!
一、JUCjava.util.concurrentjava.util.concurrent.atomicjava.util.concurrent.locks二、进程与线程进程: 一个程序,qq.exe Music.exe程序的集合一个进程往往可以包含多个线程,至少包含一个进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。在 Java 中,当我们启动 main 函数时其实就是启动了一个 JVM 的进程,而 main
2021-03-24 14:48:17
185
1
原创 计算机网络高频面试考点
一、五层协议1、应用层应用层的任务是通过应用进程间的交互来完成特定网络应用应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则例如: 域名系统DNS、支持万维网应用的HTTP协议、支持电子邮件的SMTP协议我们把应用层交互的数据单元称为报文2、运输层运输层的主要任务就是负责向两台主机进程之间的通信提供通用的数据传输服务应用进程利用该服务传送应用层报文由于一台主机可同时运行多个线程,因此运输层有复用和分用的功能。复用:多个应用层进程可同时使用下面运输层的服
2021-03-23 20:44:42
427
原创 Servlet详解含实例
一、简介Servlet是sun公司开发动态web的一门技术Sun在这些API中提供了一个接口叫做:Servlet,若想要开发一个Servlet程序,只需要完成两个小步骤:编写一个类,实现Servlet接口把开发好的Java类部署到web服务器中把实现了Servlet接口的Java程序叫做 Servlet二、HelloServletServlet接口在Sun公司有两个默认的实现类:HttpServlet、GenericServlet1、构建项目构建一个普通的Maven项目,删掉里
2021-03-16 13:50:09
1172
原创 Javaweb概述
一、概述1、基本概念Web开发:web,网页的意思(www.baidu.com)静态webhtml、css提供给所有人看的数据始终不会发生变化!动态web提供给所有人看的数据始终发生变化,每个人在不同的时间不同地点看到的信息各不相同淘宝等等网站技术栈:Servlet/JSP、ASP、PHP在Java中,动态web资源开发的技术统称为JavaWeb2、web应用程序web应用程序可以提供浏览器访问的程序a.html、b.html…多个web资源,这些资源可以
2021-03-11 10:21:56
224
原创 解决问题Maven导包报错!!
今天在使用模板创建简单的javaweb项目时,一直报错如下:多次尝试之后找到了问题所在:阿里已更新,不再支持http下载,只支持https,你要把maven配置中的http://换成https://就可以了,不明白的地方欢迎准问。 <mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>ht
2021-03-10 17:47:20
310
2
原创 JDBC从手写连接到引用DBCP和C3P0
1、数据库驱动驱动: 声卡、显卡、数据库我们的程序会通过数据库驱动,和数据库打交道2、JDBCSUN公司为了简化开发人员(对数据库的统一)的操作,提供了一个(Java操作数据库的)规范,俗称JDBC这些规范的实现由具体的厂商去做对于开发人员而言,只需要掌握JDBC接口的操作即可文档尾附上项目的目录结构,大家可参考创建3、第一个JDBC程序建表语句CREATE DATABASE jdbcStudy CHARACTER SET utf8 COLLATE utf8_general_ci;
2021-03-06 16:45:31
201
原创 IDEA连接mysql又报错!Server returns invalid timezone. Go to ‘Advanced‘ tab and set ‘serverTimezone‘ prope
参考博主的博客:https://blog.youkuaiyun.com/liuqiker/article/details/102455077
2021-03-06 15:24:18
160
原创 MySQL基础教学及规则使用
一、概述JavaEE: 企业级Java开发 Web前端:页面展示,数据后台: 连接数据库JDBC,连接前端(控制视图跳转、给前端传递数据)数据库: 存数据1、什么是数据库数据库(DB,database)概念:数据仓库,软件,安装在操作系统(window、Linux、mac…)之上。SQL可以存储大量的数据作用: 存储数据,管理数据2、数据库分类关系型数据库: (SQL)MySQL、Oracle、Sql Server 、DB2、SQLlite通过表和表之间、行与列之间的关系进行数据
2021-03-05 16:08:57
364
原创 学习SpringMVC这一篇就够了
1.SpringMVC1.1.概述SpringMVC 也叫 Spring web mvc。是 Spring 框架的一部分,是在 Spring3.0 后发布的SpringMVC的底层本质就是servlet1.2.优势基于 MVC 架构基于 MVC 架构,功能分工明确。解耦合容易理解,上手快;使用简单Spring MVC通过一套MVC注解,让 POJO 成为处理请求的控制器,而无须实现任何接口作 为Spring框 架 一 部 分 , 能 够 使 用Spring的IoC和Aop。
2021-03-05 10:57:15
718
1
原创 JavaScript进阶完整学习附加实用文档库
四、函数及面向对象1、函数定义定义方法一:绝对值函数 function abs(x) { if (x >= 0) { return x; } else { return -x; } }一旦执行return则代表函数结束,返回结果若没有执行return,函数执行完也会返回结果(undefined)定义方法二:绝对值函数var abs = function(x){
2021-03-02 09:39:44
197
1
原创 JavaScript快速入门通俗易懂
一、概述JavaScript是一门脚本语言命名是为了当时蹭Java语言的热度二、快速入门1、引入JavaScript内部引入<!-- script标签内 写JavaScript代码--> <script> alert("hello World!!") </script>外部引入<!--外部引入--><!--script标签必须成对出现--> <script src="js
2021-02-02 14:39:26
696
原创 CSS3精选内容通俗易懂
三、美化网页元素1、概述有效的传递页面信息美化网页,吸引用户凸显页面主题提高用户的体验2、字体样式font-family:字体(可以同时改变英文与中文字体)font-size:字体大小font-weight:字体粗细color:颜色<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title&g
2021-01-29 16:08:24
288
2
原创 CSS3基础知识通俗易懂
一、概述如何学习CSS是什么CSS怎么用(快速入门)CSS选择器(重点+难点)美化网页(文字、阴影、超链接、列表、渐变)盒子模型浮动定位网页动画(特效效果)1、什么是CSSCascading Style Sheet层叠级联样式表CSS: 表现(美化网页)字体、颜色、边距、高度、宽度、背景图片、网页定位、网页浮动css的优势:内容与表现分离网页结构表现统一, 可以实现复用样式十分丰富建议使用独立于html的css文件利用SEO,容易被搜索引擎收录2、快速入门H
2021-01-27 10:31:37
286
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人