自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 升级HTTPS后WebSocket不能连接

前端部分注意部分如果网站WEB使用HTTPS协议,那相应的WebSocket必须要使用wss协议使用wss协议的请求, 链接必须只能写域名,而非IP+端口建议在URL域名后面为websocket定义一个路径,例如: /wss/var ws = new WebSocket("wss://www.xxx.com/wss/");后端部分在HTTPS配置的server内加一个location# websocketslocation /wss/ { proxy_pass http://

2020-08-06 10:43:04 2989

原创 宝塔面板设置HTTPS+阿里云SSL证书

1. 宝塔面板指定某一域名设置宝塔SSL为宝塔官方提供的免费证书服务, 只需要在宝塔官网宝塔注册后实名认证, 申请证书然后按照指定的验证方式去验证域名, 完成之后就是等待审核2. 阿里云SSL证书服务购买证书勾选免费版, 填写指定域名, 如果该域名在本账号下, 可以选择DNS验证, 很方便快速部署根据自身服务器类型下载证书宝塔配置选择其他证书, 把下载下来的证书解压后( Apache是三个文件, Nginx是两个文件)Apache用记事本打开.key文件 复

2020-08-05 16:25:43 3375

原创 Docker环境部署PHP后端项目集群

1. 搭建PHP项目环境创建网络段docker network create net1拉取apache与php镜像docker pull webdevops/php-apache:7.4创建容器(3节点)# 创建第一个php节点,并作端口与目录映射docker run -it -d --name a1 \-p 8081:80 \-v ~/apache/app1:/...

2020-04-18 15:37:59 1830

原创 Docker环境下的MySQL集群方案简介

1. 单点数据库的弊病在平常的开发过程中,我们使用的一般都是单节点的数据库实例,无法做到高性能与高可用,目前互联网用户群体庞大,单节点的数据库已经无法满足性能上的要求,而且单节点的数据库没有冗余设计,一旦当机,业务无法开展,所以需要去特殊设计2. 常见MySQL集群方案1. ReplicationReplication集群中,若在某一节点A写入数据,该方案无法保障将该条数据一定分发到集群其...

2020-04-16 14:01:44 421

原创 关于MySQL的索引机制

正确创建合适的索引是数据库优化的基础全值匹配我最爱, 最左前缀要遵守带头大哥不能死, 中间兄弟不能断索引列上少计算, 范围之后全失效Like百分写最后, 覆盖索引不写 *不等空置还有or, 索引失效要少用索引的本质索引是为了加速对表中数据行的检索而创建的一种分散存储的数据结构在关系型数据库管理系统( RDBMS )中, 数据的索引都是硬盘级索引数据结构的性能特点, 决定了数据的检...

2020-01-17 17:08:17 321 2

原创 从0到1认识Redis

Redis介绍Redis是远程的, 客户端与服务端可部署在不同的机器上, 通过自定义的协议进行传输和交互Redis是基于内存的, 其结构与数据都存在内存中, 所以操作会很高速, 性能远远高于基于硬盘的Mysql, 也很吃内存Redis是非关系型数据库( 其本质是存储数据的数据库, 其具有硬盘持久化机制, 可以将内存中的数据写入硬盘, 保证数据的完整性和安全性 ), Mysql为关系型数据库...

2019-12-19 17:58:44 204

原创 Gopher应该要知道的10几个Go开发库

你可能已经知道的一个流行工具是Make命令,它帮助我们使用makefile的任务自动化。一个很好的开发实践是在Makefile中定义一个要执行的命令列表,我们可以在后面很容易地引用它并使用简单的make命令执行。Go有一个非常有用的包,它使读取和写入各种格式的配置文件成为小菜一碟。微服务通常在Docker和Kubernetes容器架构中使用,以构建健壮的应用程序。Go有很多包能读.env文件,这些文件可以更容易地存储各种应用程序密匙。对于构建命令行应用程序,Go有一个很棒的库,使其变得轻而易举。

2024-05-13 16:12:01 742 1

原创 计算机网络

使用 HTTPS 主要是为了解决 HTTP 传输过程中的一些安全问题,因为 HTTP 是明文传输,所以 HTTPS 在 HTTP 的基础上加入了 SSL/TLS 协议。SSL(安全套接字)/TLS(传输层安全)协议可以用来加密通信内容,保证通信过程中的数据不被窃取和篡改。客户端会通过数字证书来验证服务器的身份,数字证书由 CA(证书权威机构)签发,包含了服务器的公钥、证书的颁发机构、证书的有效期等信息。请求的具体内容,如 POST 请求中的表单数据;请求头部和消息正文之间有一个空行,表示请求头部结束。

2024-05-08 09:43:54 1492

原创 Go 使用 json.Unmarshal 解析数据报错 invalid character ‘<‘ looking for beginning of value

invalid character '

2024-02-20 09:43:38 1276 1

原创 Golang导入导出Excel表格

最近项目开发中有涉及到Excel的导入与导出功能,特别是导出表格时需要特定的格式(单元格合并等),废话不多说,直接上代码了。

2023-12-11 12:59:04 1148

原创 一个数字+字母的排序小巧思

项目中有这样一种场景,服装在每个月都有不同的波段进行标识:即1月有1A、1B、1C、1D,2月有2A、2B、2C、2D依次类推,现在需要按照月份排序并且按照波段排序。提示:这里将月份波段分为两部分,然后分别进行排序,最后再将结果合并。

2023-12-11 09:54:50 133

原创 MySQL中的行锁

MySQL中的行锁

2022-07-01 12:58:13 1184 1

原创 TP框架的一些知识

TP框架

2022-05-31 22:44:50 701

原创 Go实时读取日志并写入kafka

kafkakafka, 是一种高吞吐率, 多分区, 多副本, 基于发布订阅的分布式消息系统, 支持海量数据传递高吞吐量, 低延迟: 每秒可以处理几十万条消息, 延迟最低只有几毫秒, 每个主题可以分多个分区, 消费组可对不同分区进行操作可扩展性: 集群支持热扩展持久化, 可靠性: 消息被持久化到本地磁盘, 且支持数据备份防止丢失容错性: 允许集群中节点失败(若副本数量为n, 则允许n-1个节点失败)高并发: 支持数千个客户端同时读写安装与部署下载安装包 (前提已安装 JDK)cd /

2022-05-13 16:17:15 1192 1

原创 kafka send failed: dial tcp: lookup hostname: no such host

在windows本地通过sarama包连接阿里云部署的kafka时, 在发送消息时, 报错:kafka send failed: dial tcp: lookup Lily: no such host其中Lily是我阿里云ECS的主机名解决:打开win本地的 hosts 文件通过 win+r 唤起运行, 输入 drivers, 进入 etc 中找到 hosts 文件, 记事本打开将主机名和对应的IP填入192.168.1.122. Lily重试...

2022-05-13 11:24:46 2864 1

原创 Goland中设置goctl的api文件高亮

设置前设置打开设置, 找到 Plugins, 搜索goctl并安装找到 Editor – File Types设置后

2022-05-05 17:56:17 1225

原创 Golang 面试总结 MySQL 面试总结 Redis 面试总结

相比较于其他语言, Go 有什么优势或者特点Go 允许跨平台编译,编译出来的是二进制的可执行文件,直接部署在对应系统上即可运行Go 在语言层面上天生支持并发编程,通过 goroutine 和 channel 实现。channel 的理论依据是 CSP 并发模型, 即所谓的通过通信来共享内存;Go 在 runtime 运行时里实现了属于自己的调度机制:GMP,降低了内核态和用户态的切换成本。Go 是静态类型语言, 代码风格是强制性的统一,如果没有按照规定来,会编译不通过。Golang 里的 GMP

2022-04-18 17:16:43 1917

原创 Docker 安装部署 Nginx

获取 Nginx 镜像使用 docker search nginx 命令获取nginx镜像列表使用 docker pull nginx 命令拉取nginx镜像到本地,推荐使用官方最新镜像使用 docker images nginx 命令,查看我们拉取到本地的 nginx镜像 IMAGE ID创建 Nginx 容器首先测试下 nginx 镜像是否可用,使用docker run -d --name nginx -p 80:80 c919045c4c2b 创建并启动nginx容器

2022-03-10 16:11:31 4673

原创 Golang 并发编程

常见并发模型进程&线程 ( Apache )最初的Web服务器都是基于进程&线程模型, 就是每新到一个请求就会分配一个进程或者线程, 每个进程只服务一个用户, 互联网初期用户的访问不多, 网站可以正常工作, 但是进程很昂贵, 一台服务器无法创建很多的进程, 随着互联网的发展, 网站越来越复杂, 一个页面可能就上百个请求, 操作系统就无法承受了异步非阻塞 ( Nginx, Libevent, NodeJS )一台服务器可以服务大量的用户, 并且资源消耗还很低, 但是其为了追求性能,

2021-11-26 10:26:47 315

原创 Golang之IO操作

格式化 IO 操作package mainimport ( "fmt" "os")// 格式化 IO// fmt 包func main() { // 输出到终端 // 带有换行符, 支持多个参数 fmt.Println("hello world", "china", 2021) // 不带换行符, 单纯输出 fmt.Print("你好", 666, "\n") // 格式化输出, 不换行 fmt.Printf("hello %s %d\n", "chao", 202.

2021-11-16 16:08:37 954

原创 Go 设计模式

为什么要学设计模式方便交流设计模式作为一种术语, 经常会出现在开发者和程序员之间的交流沟通中, 如果自己不了解, 很多时候都听不懂也无法加入交流提高代码质量好的代码具有很好的可读性, 可复用性以及可扩展性, 设计模式的本质是解决程序的解耦, 代码的可复用性及扩展性, 它往往遵循一些原则面试需要面试过程中, 很多时候面试官都会问一些设计模式相关的问题, 这就需要我们去了解相关知识Go 是一个面向对象语言吗面向对象的语言一般会提供封装(类与对象), 继承, 多态三个特性, Go 本身没有类

2021-11-15 22:56:27 501

原创 gin 框架基础知识总结

gin 是什么目前Github上Star最多的Go Web 框架优势简单原则并发高分配内存少快速开始package main // 声明包/// 程序执行顺序 导入包 ( 导入包 (...) -> 变量/常量 ->init() ) --> 变量/常量初始化 --> init() --> main()// 导入包import "github.com/gin-gonic/gin"// 程序入口, 主函数func main() { // 快速开始

2021-11-06 19:16:22 1024

原创 Go语言语法总结

内建方法即不需要引用包, 可以直接使用1. make创建 slice, map, chan 三种引用类型返回引用类型, 即类型本身// 创建 slice, 切片相当于变长的数组, 切片底层是一个数组, 需设置长度和容量, 默认容量等于长度mySlice := make([]string, 3) // 开辟内存空间, 设置size, 指定长度// 赋值mySlice[0] = "dog"mySlice[1] = "cat"mySlice[2] = "pig"// 超出大小, 索引越界

2021-11-03 22:09:59 266

转载 go语言编码规范

1. 为什么需要代码规范代码规范不是强制的,也就是你不遵循代码规范写出来的代码运行也是完全没有问题的代码规范目的是方便团队形成一个统一的代码风格,提高代码的可读性,规范性和统一性。本规范将从命名规范,注释规范,代码风格和 Go 语言提供的常用的工具这几个方面做一个说明。规范并不是唯一的,也就是说理论上每个公司都可以制定自己的规范,不过一般来说整体上规范差异不会很大。2. 代码规范2.1. 命名规范命名是代码规范中很重要的一部分,统一的命名规则有利于提高的代码的可读性,好的命名仅仅通过命名就可

2021-11-01 15:44:51 260

原创 CentOS安装和配置nodejs开发环境

下载最新的nodejs, 下载wget https://npm.taobao.org/mirrors/node/v16.13.0/node-v16.13.0-linux-x64.tar.xz解压tar -xvf node-v16.13.0-linux-x64.tar.xz建立软连接ln -s /root/node-v16.13.0-linux-x64/bin/node /usr/bin/nodeln -s /root/node-v16.13.0-linux-x64/bin/np.

2021-11-01 11:53:59 550

原创 CentOS搭建Go开发环境

获取Go安装包Go 安装包下载下载下载前, 记得配置国内镜像wget https://dl.google.com/go/go1.17.2.linux-amd64.tar.gz解压tar -xvf go1.17.2.linux-amd64.tar.gz[root@localhost ~]# lsconf data go go1.17.2.linux-amd64.tar.gz logs配置环境变量vim ~/.bashrc添加# 根路径, 安装路径expor.

2021-11-01 09:59:47 342

原创 Docker安装MySQL

拉取镜像docker pull mysql:5.7查看镜像docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEmysql 5.7 938b57d64674 12 days ago 448MBhello-world latest feb5d9fea6a5 5 weeks ago 13.3kB通过镜像启动docker run -p 3306.

2021-10-31 23:33:46 115

原创 CentOS安装docker和docker-compose

安装dockercurl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun设置开机启动dockersystemctl enable docker

2021-10-31 22:47:33 396

原创 CentOS安装Git

安装yum install git查看git配置git config --global user.name "***"git config --global user.email "***@qq.com"查看配置信息git config --global --list拉取代码git clone https://github.com/gin-gonic/gin.git

2021-10-31 21:49:39 92

原创 修改阿里云CentOS的远程登录默认22端口

阿里云购买服务器并运行后, 系统默认是开启SSH(22)端口的, 但是默认端口会不安全, 可能会被别人暴力攻破, 所以最好是修改默认端口, 增加它们入侵的成本首先阿里云的安全组配置, 22端口先不要删掉, 等下要先通过22端口远程登录, 另外添加新端口远程登录后, 执行命令vim /etc/ssh/sshd_config找到Port 22处, 在下面添加Port 10022保存退出后, 重启sshdsystemctl restart sshd.service然

2021-10-31 21:27:25 1566

原创 PHP接收二进制数据流并生成图片

获取二进制数据流$data = file_get_contents('php://input');指定文件保存路径$dirName = ROOT_PATH . 'public' . DS . 'upload/images/' . date('Ymd');创建文件夹! is_dir($dirName) && mkdir($dirName,0777,1);获取上传图片后缀$headers = $this->request->header('content-type

2021-04-01 18:34:32 895

原创 PHP7基本变量

1. 结构体与联合体// 包含头文件// #include<stdio.h> 就是一条预处理命令,它的作用是通知C语言编译系统在对C程序进行正式编译之前需做一些预处理工作#include<stdio.h> // 函数就是实现代码逻辑的一个小的单元// 主函数 在最新的C标准中,main函数前的类型为int而不是voidint main(){ /*定义结构体*/ struct _s{ char a; int b;

2021-03-08 16:45:51 296

原创 Redis GEO

Redis GEO 主要用于存储地理位置信息,并对存储的信息进行操作,该功能在 Redis 3.2 版本新增。Redis GEO 操作方法有:geoadd:添加地理位置的坐标。 geopos:获取地理位置的坐标。 geodist:计算两个位置之间的距离。 georadius:根据用户给定的经纬度坐标来获取指定范围内的地理位置集合。 georadiusbymember:根据储存在位置集合里面的某个地点获取指定范围内的地理位置集合。 geohash:返回一个或多个位置对象的 geohash 值

2021-01-05 16:14:23 105

原创 PHP实现秒杀设计

工具压测工具yum -y install httpd-toolsab -V# 检测接口最大qps# -c 并发请求数, -n 总共访问次数ab -n 100 -c 10 http://xxxRequests per seconds: 101.15[#/sec](mean)查看接口是否仍有优化空间, 确保接口性能达到单机最佳若已达到最佳状态, 还需要对接口进行限流, 确保服务不会因为流量暴增而雪崩原理减而治之CDN原理减少读的压力( 把订单详情页内容通过CDN下发到不同的节点

2020-12-11 10:22:28 1340 1

原创 MySQL配置主从架构

首先主服务器与从服务器都需先安装MySQL, 安装可以参考这篇文章: 源码安装MySQL8.0主从复制原理 (读写分离)主节点将所有写的操作( insert, create, delete, update, alter)记录到binlog中, 当从节点连接主节点, 主节点会创建一个log dump线程, 用于发送binlog内容从节点将主节点的binlog日志复制到中继日志, 即当从节点运行 ‘start slave’, 会立即创建一个IO线程, 向主节点发送一个更新binlog请求, 以及接收主节

2020-11-07 23:01:49 98

原创 CentOS8.2安装MySQL8.0一条龙

解压 (官网自行下载源码包)# 进入目录cd /usr/local# 解压tar -xvf mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz# 修改名称mv mysql-8.0.22-linux-glibc2.12-x86_64 mysql创建用户组并设置权限# 进入目录cd /usr/local/mysql# 创建文件夹mkdir tmp# 设置权限chmod -R 777 tmp# 增加组和用户groupadd mysqlus.

2020-11-07 14:45:16 305

原创 Starting MySQL.The server quit without updating PID file (/[FAILED]l/mysql/data/mysql-slave-1.pid).

查看MySQL错误日志 .err文件cd /usr/local/mysql/data# .errInnoDB initialization has started.mmap(137363456 bytes) failed; errno 12 # 失败; errno 12Cannot allocate memory for the buffer pool # InnoDB:无法为缓冲池分配内存Plugin initialization aborted with error Generic erro

2020-11-07 14:23:45 2182 1

原创 TP6+JWT开发APP接口

1. 开发环境PHP框架: ThinkPHP6操作系统: MacOsWeb服务器: Nginx2. APP接口2.1. 简介客户端与服务端进行数据交互的通道, 大部分APP接口都是通过HTTP协议通信的2.2. HTTP通信的三要素URL 通信地址Method 通信方式(GET|POST|PUT|DELETE)Params 通信的内容2.3 APP接口的输入客户端传递参数URL参数传递, 将参数拼接在URL后边, GET方式Request Body, 将参数放在Body

2020-06-23 18:27:06 5208 2

原创 MAC安装Redis并配置PHP

1. brew安装redisbrew install redis通过brew安装后的路径为: /usr/local/Cellar/配置文件路径: /usr/local/etc/redis.conf2. 启动redis# 进入cd /usr/local/Cellar/redis/6.0.3/bin# 启动./redis-server# 查看是否运行./redis-cli127.0.0.1:6379> pingPONG127.0.0.1:6379>3. 添加至开机启

2020-06-02 15:03:01 537 1

原创 MAC系统安装配置LNMP+TP6

一. 安装HomebrewHomebrew是一款Mac系统下的软件包管理工具,brew命令类似CentOS上的yum,能十分方便的在Mac上安装或卸载软件/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"若安装报错, 运行下面自动脚本(已经全部替换为国内地址):/bin/zsh -c "$(curl -fsSL https://gitee.com/cun

2020-05-27 15:42:05 540

空空如也

空空如也

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

TA关注的人

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