Go学习笔记-GMP详解

2022-05-18
阅读 8 分钟
5.1k
Golang调度器的由来单进程问题单一执行流程,计算机只能一个任务一个任务的处理进程阻塞带来CPU时间浪费多进程多线程问题进程/线程数越多,切换成本越大多线程伴随着同步竞争(锁,资源冲突)高内存占用:进程虚拟内存占用4GB(32bit OS),线索占用4MB高CPU调度消耗线程和协程(co-routine)线程由CPU调度,是抢占式的,基...

Go学习笔记-GC回收机制

2022-05-13
阅读 4 分钟
982
V1.3前-标记清除法mark and sweepGoV1.3之前的标记清除: mark and sweep暂停程序业务逻辑STW(stop the world), 分类出可达和不可达的对象,然后做上标记。程序找出它所有可达的对象,并做上标记。清除未标记的对象。(对象5,6不可达,被GC清除)停止暂停,让程序继续跑。然后循环重复这个过程,直到process程序生命周...

分布式事务理论及最终一致性解决方案

2022-05-08
阅读 7 分钟
2.5k
分布式事务分布式事务是指会涉及到操作多个数据库的事务,其实就是将对同一库事务的概念扩大到了对多个库的事务。目的是为了保证分布式系统中的数据一致性。分布式事务处理的关键是:需要记录事务在任何节点所做的所有动作;事务进行的所有操作要么全部提交,要么全部回滚。1.CAP理论分布式系统的三个指标:一致性 Consi...

Go学习笔记-内存管理

2022-05-02
阅读 8 分钟
1.9k
基础存储金字塔CPU寄存器CPU Cache:三级Cache分别是L1、L2、L3,L1最快,L3最慢内存硬盘等辅助存储设备鼠标等外接设备从上至下的访问速度越来越慢,访问时间越来越长。虚拟内存访问内存,实际访问的是虚拟内存,虚拟内存通过页表查看,当前要访问的虚拟内存地址,是否已经加载到了物理内存。如果已经在物理内存,则取物...

Go集成Jaeger链路追踪

2022-04-25
阅读 4 分钟
3.4k
链路追踪分布式追踪论文论文地址:[链接]Opentracing协议协议标准中文文档:[链接][链接]OpenTracing中的Trace(调用链)通过归属于此调用链的Span来隐性的定义。 特别说明,一条Trace(调用链)可以被认为是一个由多个Span组成的有向无环图(DAG图), Span与Span的关系被命名为References。Span状态:SpanContext,Spa...

K8S安装Mysql8.0

2022-04-14
阅读 4 分钟
3.9k
K8S安装Mysql8.01.创建ConfigMap存储配置文件mysql-config.yaml {代码...} 执行结果 {代码...} 2. 数据存储(PV+PVC)新建目录 {代码...} NFS挂载 {代码...} mysql-pv.yaml {代码...} 执行结果 {代码...} 3. 部署Mysql Podmysql-deploy.yaml {代码...} 注意:persistentVolumeClaim和configMap需要和之前创建的名称匹配参...

Golang开发常见的57个错误

2022-02-22
阅读 10 分钟
2.9k
1、不允许左大括号单独一行2、不允许出现未使用的变量3、不允许出现未使用的import(使用 _ 包名 引入)4、短的变量声明(Short Variable Declarations)只能在函数内部使用 {代码...} 5、不能使用短变量声明(Short Variable Declarations)重复声明6、不能使用短变量声明(Short Variable Declarations)这种方式来设置字段...

Go学习笔记-GORM

2022-01-16
阅读 10 分钟
2.1k
官方文档[链接]GORM介绍gorm是一个使用Go语言编写的ORM框架。它文档齐全,对开发者友好,支持主流数据库。ORM:Object Relation Mapping 对象关系映射优点:提高开发效率缺点:牺牲执行性能,灵活性安装GORM {代码...} Docker快速创建Mysql实例在本地的33060端口运行一个名为mysql,用户名root密码123456的MySQL容器环境...

Mysql笔记2事务和索引

2022-01-14
阅读 8 分钟
1.4k
事务事务就是要保证一组数据库操作,要么全部成功,要么全部失败。在 MySQL 中,事务支持是在引擎层实现的。ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性)隔离性事务并发问题:脏读(dirty read):一个事务读取了其它事务update后未提交的数据。不可重复读(non-repeatabl...

Mysql笔记1基础和日志

2022-01-11
阅读 4 分钟
1k
基础架构结构Server层包括连接器,查询缓存,分析器,优化器,执行器等涵盖Mysql大多数核心服务功能,和所有内置函数(日期,时间,数学,加密等)实现所有跨存储引擎的功能(存储过程,触发器,视图等)存储引擎层负责数据的存储和提取架构模式是插件式的,从Mysql5.5.5开始InnoDB成为默认存储引擎1.连接器连接Mysql {...

Go学习笔记-Gin框架

2022-01-09
阅读 14 分钟
3.5k
Go Webnet/http库 {代码...} 开启服务 {代码...} 访问浏览器 {代码...} http/template库模板文件 hello.tmpl {代码...} main.go {代码...} 参数渲染 {代码...} 模板注释 {代码...} 条件判断 {代码...} 循环 {代码...} 继承 {代码...} base.tmpl {代码...} index.tmpl {代码...} 修改标识符 {代码...} 自定义函数 {代码.....

Go即时通信Demo

2021-12-05
阅读 19 分钟
1.1k
即时通信DemoV0.1 基础Server构建实现新用户连接成功后,在server端提醒的功能server.go {代码...} main.go {代码...} 编译 {代码...} 开启server {代码...} 测试连接 {代码...} V0.2 用户上线及广播实现新用户连接成功后,向全体在线用户广播的功能server.go {代码...} user.go {代码...} main.go {代码...} 编译运行 {...

Go学习笔记-并发编程

2021-12-01
阅读 6 分钟
1.4k
协程(Go程) goroutine协程:co-routineGolang对协程的处理:协程 => goroutine,内存几KB,可以大量使用灵活调度,可常切换GMP相关资料:Go work-stealing 调度器goroutine 基本模型和调度器策略详解Go 有一个可以利用多核处理器的 M:N 调度器. 任何时候, M 个 goroutine 都需要在 N 个 OS 线程上进行调度, 这些线...

Go学习笔记-语言基础

2021-11-28
阅读 13 分钟
2.2k
语言特性部署简单:可直接编译成机器码执行不依赖其他库直接运行即可部署静态类型语言:编译时即可检查出隐藏的问题语言层面的并发:天生支持并发,充分利用多核强大的标准库:runtime系统调度机制高效的GC垃圾回收丰富的标准库简单易学:25个关键字,支持内嵌C语法,面向对象,跨平台配置安装Mac下载地址:[链接]安装路...

JavaWeb学习笔记03 - JSP

2021-11-25
阅读 6 分钟
1.4k
内置对象(pageContext,session,application,config,out,page,request,response)

JavaWeb学习笔记02 - Servlet,Cookie,Session

2021-11-21
阅读 15 分钟
1.5k
ServletServlet是sun公司开发的处理动态web的技术Servlet有两个默认的实现类:HttpServlet、GenericServlet开发Servlet程序的步骤:编写一个类,实现Servlet接口把开发好的Java类部署到web服务器中实现了Servlet接口的java程序称为Servlet创建HelloServlet项目构建一个普通的maven项目,删除src文件夹,这个空的工程作为...

JavaWeb学习笔记01 - Tomcat,Maven

2021-11-20
阅读 5 分钟
1.4k
基本概念web应用程序web组成html, css, jsJsp, servletjava程序jar包配置文件(Properties)JSP/Servletsun公司主推的B/S架构,基于Java语言,可以承载三高(高并发,高可用,高性能)B/S:浏览器和服务器C/S:客户端和服务器Web服务器IIS:微软,ASP,WIndows自带Tomcat:Apache基金会的核心项目,是开源免费的轻量级服...

JAVA学习笔记02 -JDBC

2021-11-16
阅读 7 分钟
1.5k
JAVA操作数据库的规范,称为JDBC引入包:java.sql Javax.sql数据库驱动包:mysql-connector-java-5.1.47.jar下载地址:[链接]Mac OS10.12对应Docker下载地址(2.2.1.0):[链接]Docker安装Mysql5vim docker-compose.ymldocker-compose up -d {代码...} 注:mysql5.7.11对应的JDBC驱动是5.1版本。第一个JDBC程序创建一个普...

Java学习笔记01 - JavaSE基础

2021-11-14
阅读 15 分钟
2.4k
在线工具java [链接]在线编写运行 Java 8 [链接]SQL 在线运行 [链接]Java牛客题库 [链接]JDK, JRE, JVMJDK : Java Development KitJRE : Java Runtime EnviromentJVM : Java Virtual Machine输出Hello Wolrdvim Hello.java {代码...} 编译javac Hello.java执行java Hello输出 {代码...} Java程序运行机制编译型:解释型...

Laravel底层学习笔记04 加载并启动ServiceProvider,事件(观察者模式)

2021-11-07
阅读 7 分钟
1.5k
参考资料:php:laravel底层核心代码分析之加载并启动serviceProviderLaravel Service Provider 中 boot 方法和 register 方法的区别php artisan 命令加载并启动ServiceProvider源码public/index.php {代码...} vim src/Illuminate/Foundation/Http/Kernel.php {代码...} vim vendor/symfony/http-foundation/Request.php...

Dockerfile搭建PHP8镜像&&docker-compose搭建LNMP环境

2021-11-04
阅读 4 分钟
6.7k
使用Dockerfile搭建PHP8镜像编写Dockerfilevim Dockerfile {代码...} 提交镜像 {代码...} 使用docker-compose搭建LNMP环境编写docker-compose文件vim docker-compose.yml {代码...} 编辑Nginx配置vim cinfig/nginx/test.conf {代码...} 配置DNSvim config/dns/dnsmasq.conf {代码...} 注:53是域名解析端口,5380是DNS的...

Laravel底层学习笔记03 make和build

2021-10-31
阅读 3 分钟
1.8k
参考资料:php:laravel底层核心代码分析之make方法的实现Laravel加载过程---make方法实例化Illuminate\Contracts\Http\Kernelmake方法/public/index.php {代码...} $app->make() => 父类Application中的make() => resolve()方法resolve方法vendor/laravel/framework/src/Illuminate/Container/Container.php {...

Laravel底层学习笔记02 - 服务容器,服务提供者

2021-10-31
阅读 6 分钟
2.2k
ServiceContainner通过依赖注入将ServiceProvider提供的能力注册进服务容器内部。Laravel直接通过容器的实例化对象,找到对应的服务,就可以直接使用其提供的能力了。

Laravel底层学习笔记01 - 框架核心,依赖注入,闭包

2021-10-30
阅读 5 分钟
2.6k
参考资料:laravel底层核心代码分析之核心概念讲解PHP控制反转(IOC)和依赖注入(DI)闭包匿名函数,还在傻傻搞不清楚吗?Laravel框架核心优点集成了composer实现了依赖注入,更好的管理类的依赖关系,方便扩展(相对于MVC模式)高级特性:控制台console,事件event,队列queue,中间件middleware,门面模式facades核心概念...

Laravel8学习笔记01 - 目录结构

2021-10-28
阅读 3 分钟
2.1k
根目录目录二级目录简介作用/app 应用目录应用的核心代码/bootstrap 启动目录 app.php 框架的启动和自动载入配置 ./cache路由和服务缓存框架为提升性能所生成的文件/config 配置目录 /database 数据库目录数据库迁移文件及填充文件/public 对外公开目录应用入口文件和前端资源文件 index.php应用入口文件 /resources 资...

Laravel8自定义json日志记录HTTP请求

2021-10-22
阅读 2 分钟
1.6k
1.自定义日志通道vim config/logging.php {代码...} 2.自定义json解析新建CustomizeFormatter {代码...} 新建CustomizeJsonFormatter {代码...} 3.记录HTTP请求创建中间件 {代码...} 配置全局访问 vim app/Http/Kernel.php {代码...} 记录HTTP请求 {代码...} 4.输出日志 {代码...}

Laravel8学习笔记-日志组件

2021-10-22
阅读 2 分钟
2.9k
配置配置文件 config/logging.php默认情况下,Laravel 使用 stack 通道来记录日志信息,stack 通道被用于聚合多个日志通道到单个通道。例:single通道默认写入larave.log文件,daily通道默认写入larave-*.log文件,若配置stack如下 {代码...} 则日志会同时写入larave.log和larave-*.log文件日志级别LOG_LEVEL=debug 日志...

docker-compose搭建grafana+loki+promtail日志系统

2021-10-15
阅读 3 分钟
6.9k
文件结构 {代码...} 编辑loki配置vim ./config/loki-config.yaml {代码...} 编辑promtail配置(统计nginx日志)cat ./config/promtail-config.yaml {代码...} 编辑docker-compose.yml文件 {代码...} 启动docker-compose {代码...} 访问grafana {代码...} 配置loki数据源 {代码...}

Shell脚本监控Mysql主从同步状态+钉钉提醒

2021-08-30
阅读 2 分钟
2.6k
脚本编写vim mysql_status.sh {代码...} 脚本调用chmod +x mysql_status.sh {代码...} 参考资料mysql主从监控shell

Centos7.9多节点安装KubeSphere v3.1.1

2021-08-28
阅读 3 分钟
2k
准备服务器3台Linux主机,2核4G,50G硬盘内网IP(可互相ssh)hostname10.206.0.17master10.206.0.12node110.206.0.16node2初始化安装环境 {代码...} 安装依赖更新yum源 {代码...} 安装依赖 {代码...} 配置阿里镜像加速设置仓库地址:[链接] {代码...} 添加阿里源 {代码...} 多节点安装拉取KubeKey {代码...} 创建配置文...