自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

魂影魔宅

走向全栈开发者之路

  • 博客(232)
  • 资源 (15)
  • 收藏
  • 关注

原创 msys安装make

【代码】msys安装make。

2024-07-09 18:24:27 75

原创 gitlab-runner安装部署CI/CD

下载gitlab对应版本的runner。

2024-07-09 18:17:41 326

转载 WSL2开启systemctl命令

WSL开启systemctl命令

2022-07-24 11:13:18 1733

原创 C语言数据机构-栈(2)

本节使用链式存储实现栈新建stack.h#ifndef STACK1_STACK_H#define STACK1_STACK_H#include <stdlib.h>#include <memory.h>struct StackNode { void *data; struct StackNode *next;};struct StackList { struct StackNode head; int size;};typ

2022-04-21 11:15:28 1271

原创 C语言数据结构-栈

新建stack.h文件#ifndef STACK1_STACK_H#define STACK1_STACK_H#include <stdlib.h>#include <memory.h>#define MAXITEM 1024struct Stack { void * bucket[MAXITEM]; int size;};typedef void * SeqStack;SeqStack initStack();int sizeOfSt

2022-04-21 00:04:25 1136

原创 C语言数据结构-单向链表(2)

新建头文件link.h#ifndef LINK_LINK_H#define LINK_LINK_H#include <stdio.h>#include <stdlib.h>#include <string.h>//节点struct LinkNode { void *data; //数据域(保存用户传入数据) struct LinkNode *next;};//链表struct LList { int size; //链表大

2022-04-20 17:47:22 868

原创 C语言基础之函数指针

函数指针定义//无参数void(*pFunc)();//带参数void(*pFunc)(int a);//带返回值int(*pFunc)(int a,int b);自定义函数指针类型void add(int a, int b){ printf("a+b=%d\n", a+b);}void sub(int a, int b){ printf("a-b=%d\n", a-b);}int main() { // 先定义函数类型,再通过类型定义指针

2022-04-20 17:31:35 870

原创 C语言数据结构-单向链表(1)

静态链表内存分配在栈上struct LinkNode { int num; struct LinkNode *next;};// 静态链表

2022-04-19 16:11:48 388

原创 C语言基础

一文搞懂C语言基础

2022-03-06 18:10:34 753

转载 使用Redis的bitmaps统计用户留存率、活跃用户

首先我们看一个场景:一个网站,需要统计一周内连续登陆的用户,以及一个月内登陆过的用户或者是用户留存率。如果用传统的数据库如Mysql来实现的话,很难做到。但如果用Redis来做的话,就很简便。Redis的集合类型和Bitmap类型都可以很容易的做到。今天,我们主要来谈谈如何用Bitmaps来实现统计活跃用户的功能。什么是 BitmapsBitmaps 并不是实际的数据类型,而是定义在String类型上的一个面向字节操作的集合。因为字符串是二进制安全的块,他们的最大长度是512M,最适合设置成2^32个

2021-06-16 19:32:07 689

转载 Clickhouse 在大数据分析平台 - 留存分析

背景你可能听说过Growingio、神策等数据分析平台,本文主要介绍实现留存分析工具相关的内容。留存分析是一种用来分析用户参与情况/活跃程度的分析模型,可考查进行初始行为后的用户中,有多少人会进行后续行为,这是衡量产品对用户价值高低的重要指标。如,为评估产品更新效果或渠道推广效果,我们常常需要对同期进入产品或同期使用了产品某个功能的用户的后续行为表现进行评估 [1]。大部分数据分析平台主要包括如图的几个功能(以神策为例)本文主要介绍留存分析工具的优化方案(只涉及数据存储和查询的方案设计,不涉及平台)。

2021-06-16 15:38:43 643

转载 每秒处理10万高并发订单支付系统架构

一、库分表在redis,memcached等缓存系统盛行的互联网时代,构建一个支撑每秒十万只读的系统并不复杂,无非是通过一致性哈希扩展缓存节点,水平扩展web服务器等。支付系统要处理每秒十万笔订单,需要的是每秒数十万的数据库更新操作(insert加update),这在任何一个独立数据库上都是不可能完成的任务,所以我们首先要做的是对订单表(简称order)进行分库与分表。在进行数据库操作时,一般都会有用户ID(简称uid)字段,所以我们选择以uid进行分库分表。分库策略我们选择了“二叉树分库”,所谓“二

2021-05-19 21:07:32 2247

转载 CentOS 7安装自定义分区方案

通常系统盘都会选择性能较好SSD,一般在500G左右,这里就以500G硬盘为例,以下为CentOS 自动分区方案:必须存在的分区/ 分区是必须存在的分区,所有一级目录都位于该分区之下,同时还与引导/还原/修复系统等动作有关,包含了一些修复系统的程序。文件系统层次标准(Filesystem Hierarchy Standard, FHS)建议根分区 / 在满足系统需求的情况下,应该越小越好,这样能够最大可能的避免因为硬盘故障而导致系统损坏。同时最好不要在 / 分区创建新的子目录和存放非必要文件,推荐大小5

2021-05-07 18:50:33 2632

转载 Conda create 新环境报错:Solving environment: failed

# vep# 使用vep对manta结果进行注释# manta结果是染色体结构变异(SV),这里使用vep进行注释# vep官方说明文档:# http://asia.ensembl.org/info/docs/tools/vep/script/vep_tutorial.html # 安装conda create -n VEPconda activate VEPconda install -c bioconda ensembl-vep# 报错:# Elapsed: # An HTTP

2021-05-06 20:48:13 2858

转载 Redis在Linux系统的配置优化

通常来看,Redis开发和运维人员更加关注的是Redis本身的一些配置优化,例如AOF和RDB的配置优化、数据结构的配置优化等,但是对于操作系统是否需要针对Redis做一些配置优化不甚了解或者不太关心,然而事实证明一个良好的系统操作配置能够为Redis服务良好运行保驾护航。众所周知Redis的作者对于Windows操作系统并不感冒,目前大部分公司都会将Web服务器、数据库服务器等部署在Linux操作系统上,Redis也不例外。所以接下来介绍Linux操作系统如何优化Redis,包含如下七个方面。一. 内

2021-03-10 10:57:23 366

原创 docker挂载mysql数据卷启动失败问题(Only one log file found)

异常错误某一天, 运行虚拟机, 突然mysql启动失败, 报一下错误:[root@localhost Web]# docker-compose up mysqlStarting soul-mysql ... doneAttaching to soul-mysqlsoul-mysql | 2021-03-01 08:39:33+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.23-1debian10 started.

2021-03-01 16:54:27 4394 5

原创 Go性能调优-pprof

在计算机性能调试领域里,profiling 是指对应用程序的画像,画像就是应用程序使用 CPU 和内存的情况。 Go语言是一个对性能特别看重的语言,因此语言中自带了 profiling 的库,这篇文章就要讲解怎么在 golang 中做 profiling。Go性能优化Go语言项目中的性能优化主要有以下几个方面:CPU profile:报告程序的 CPU 使用情况,按照一定频率去采集应用程序在 CPU 和寄存器上面的数据Memory Profile(Heap Profile):报告程序的内存使用情况

2021-02-09 11:00:12 5409 3

转载 Go语言标准库flag基本使用

Go语言内置的flag包实现了命令行参数的解析,flag包使得开发命令行工具更为简单。os.Args如果你只是简单的想要获取命令行参数,可以像下面的代码示例一样使用os.Args来获取命令行参数。package mainimport ( "fmt" "os")//os.Args demofunc main() { //os.Args是一个[]string if len(os.Args) > 0 { for index, arg := range os.Args {

2021-02-09 10:22:54 404

原创 Gogs+Drone持续集成(CI/CD)入坑详细指南

背景近期在公司内部部署CI/CD平台, 经过比较Jenkins和Drone, 基于Drone的优点最终选择了Drone.一开始也尝试使用docker部署Jenkins, 部署过程中下载插件失败(估计是伟大的墙的原因), 最后直接放弃并尝试部署Drone.没想到搜遍全网, 相关资料甚少, 能用的drone版本也很老旧.随后只能一步步看官方文档进行部署, 但是部署过程中发现官方文档也写得不明不白, 遇到了一堆坑.最后解决问题, 特此记录下来, 供大家参考.官方文档是使用docker的方式安装, 网上

2021-02-02 17:05:26 6649 2

转载 CentOS7 安装Supervisor及使用详解

简介Supervisor 是一个进程控制系统。它是一个 C/S 系统 (注意:其提供 WEB 接口给用户查询和控制)。它允许用户去监控和控制在类 UNIX 系统的进程。它的目标与 launchd、daemontools 和 runit 有些相似。但是与它们不一样的是、它不是作为 init (进程号 pid 是 1) 运行。它是被用来控制进程、并且它在启动的时候和一般程序并无二致。作用你的 Nginx,Tomcat,memcache,Redis… 会崩么?那你自己写的服务器监测脚本呢?好吧、不要再纠

2021-01-05 15:30:43 1488

转载 MySQL8配置文件详解

配置文件参数优化,核心参数:innodb_buffer_pool # 注:缓冲池位于主内存中,InnoDB用它来缓存被访问过的表和索引文件,使常用数据可以直接在内存中被处理,从而提升处理速度;innodb_buffer_pool_instance# 注:MySQL5.6.6之后可以调整为多个。表示InnoDB缓冲区可以被划分为多个区域,也可以理解为把innodb_buffer_pool划分为多个实例,可以提高并发性,避免在高并发环境下,出现内存的争用问题;innodb_data_file_path

2020-12-25 14:21:23 3662

转载 CentOS7 防火墙firewall-cmd命令配置

firewalld(Dynamic Firewall Manager of Linux systems,Linux系统的动态防火墙管理器)服务是默认的防火墙配置管理工具。firewall-cmd 是 firewalld的字符界面管理工具,firewalld是centos7的一大特性,最大的好处有两个:支持动态更新,不用重启服务;第二个就是加入了防火墙的“zone”概念。firewalld自身并不具备防火墙的功能,而是和iptables一样需要通过内核的netfilter来实现,也就是说firewalld

2020-12-25 12:12:12 3298

原创 B站微服务框架Kratos详细教程(7)- 数据库

开始使用由于kratos使用了wire依赖注入框架,开始使用前,建议先了解相关教程:依赖注入wire使用详解配置打开配置文件configs/mysql.toml,修改为自己的服务器配置:[Client] addr = "127.0.0.1:3306" dsn = "{user}:{password}@tcp(127.0.0.1:3306)/{database}?timeout=1s&readTimeout=1s&writeTimeout=1s&parseTime=true

2020-12-16 15:34:44 22895 18

原创 Docker入门详细教程-Swarm集群

Swarm集群的管理和编号, docker初始化一个swarm集群, 其他节点可以加入 (管理者, 工作者)Swarm工作模式: 管理节点(至少3个), 工作节点官方文档: https://docs.docker.com/engine/swarm/how-swarm-mode-works/nodes/Swarm命令帮助[root@localhost ~]# docker swarm --helpUsage: docker swarm COMMANDManage SwarmComman

2020-12-11 12:33:11 2003

原创 Docker入门详细教程-docker-compose

安装docker-composesudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composesudo curl -L "https://download.fastgit.org/docker/compose/releases/download/1.27.4/docker-com

2020-12-11 12:29:19 349

原创 Docker入门详细教程-进阶使用

DockerFile指令FROM: 设置基础镜像, 祖先为scratchRUN: 构建容器时运行命令EXPOSE: 容器对外暴露端口WORKDIR: 默认工作目录ADD: 将宿主机文件拷贝+压缩COPY: 拷贝文件VALUME: 设置容器数据卷CMD: 指定容器启动时运行命令, 可以多个但只有最后一个生效, 会被docker run之后的参数替换ENTRYPOINT: 指定容器启动时运行命令ONBUILD: 当构建一个被继承的Dockerfile时运行命令, 父镜像在被继承后触发

2020-12-11 12:25:26 310

原创 Docker入门详细教程-安装与基础使用

安装docker, 使用官方安装脚本自动安装或使用阿里云脚本安装

2020-12-03 15:08:02 345

转载 Sftp搭建与配置

介绍sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的一部分,是一种传输档案至 Blogger 伺服器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接操作,所以从某种意

2020-10-10 15:30:01 442

转载 Golang依赖注入框架wire使用详解

What is wire?wire是google开源的依赖注入框架。或者引用官方的话来说:“Wire is a code generation tool that automates connecting components using dependency injection.”。官方地址:https://github.com/google/wireWhy wire?除了wire,Go的依赖注入框架还有Uber的dig和Facebook的inject,它们都是使用反射机制来实现运行时依赖注入(r

2020-09-24 16:23:02 6458 3

原创 B站微服务框架Kratos详细教程(6)- 服务发现

安装cd $GOPATH/srcgit clone https://github.com/bilibili/discovery.gitcd discovery/cmd/discoverygo build启动discovery服务./discovery -conf discovery-example.toml#windowsdiscovery.exe -conf discovery-example.toml启动成功F:\Go\wwwroot\src\discovery\cmd\disc

2020-09-17 13:22:35 2399 3

原创 B站微服务框架Kratos详细教程(5)- gRPC

简介kratos的grpc框架 不是直接使用的google的grpc,http也是对grpc接口做了封装(上一节我们就学习了使用pb生成http相关接口)。官方原文:GRPC Warden:基于官方gRPC开发,集成discovery服务发现,并融合P2C负载均衡;快速开始这次我们需要新建2个项目,用于展示RCP的相互调用,由于都是可以调用对方提供的服务,所以两个服务都可以作为客户端和服务端。新建项目(服务1):kratos new rpcserver1 #这里不指定创建类型,项目会同事

2020-09-10 18:33:32 4492 3

原创 B站微服务框架Kratos详细教程(4)- Protobuf

准备基于proto文件可以快速生成bm框架对应的代码,提前需要准备以下工作:安装kratos tool protoc工具,请看kratos工具编写proto文件,示例可参考kratos-demo内proto文件创建新项目kratos new pbdemo --http查看项目文件pbdemo/api/api.proto:// 定义项目 API 的 proto 文件 可以同时描述 gRPC 和 HTTP API// protobuf 文件参考:// - https://develop

2020-09-09 14:44:26 2926

原创 B站微服务框架Kratos详细教程(3)- 中间件

背景基于bm的handler机制,可以自定义很多middleware(中间件)进行通用的业务处理,比如用户登录鉴权。接下来就以鉴权为例,说明middleware的写法和用法。自定义中间件middleware本质上就是一个handler,接口和方法声明如下代码:// Handler responds to an HTTP request.type Handler interface { ServeHTTP(c *Context)}// HandlerFunc http request ha

2020-09-08 17:09:56 2965

原创 B站微服务框架Kratos详细教程(2)- HTTP服务

背景在像微服务这样的分布式架构中,经常会有一些需求需要你调用多个服务,但是还需要确保服务的安全性、统一化每次的 请求日志或者追踪用户完整的行为等等。你可能需要一个框架来帮助你实现这些功能。比如说帮你在一些关键路径的请求上配置必要的鉴权 或超时策略。那样服务间的调用会被多层中间件所过滤并检查,确保整体服务的稳定性。设计目标性能优异,不应该掺杂太多业务逻辑的成分方便开发使用,开发对接的成本应该尽可能地小后续鉴权、认证等业务逻辑的模块应该可以通过业务模块的开发接入该框架内默认配置已经是 produ

2020-09-07 21:54:49 5542 2

原创 B站微服务框架Kratos详细教程(1)- 安装搭建

KratosKratos是bilibili开源的一套Go微服务框架,包含大量微服务相关框架及工具。名字来源于:《战神》游戏以希腊神话为背景,讲述由凡人成为战神的奎托斯(Kratos)成为战神并展开弑神屠杀的冒 险历程。快速开始快速开始前,首先需要安装Go环境:Go version>=1.13CentOS Go环境搭建,Windows自行百度哈设置代理环境变量,提高下载速度。注意GO1.13及之后支持direct的写法go env -w GOPROXY=https://gopro

2020-09-07 17:12:26 9676 2

原创 Go Modules包管理工具使用详解

从Go 1.11开始, 引入了官方包(package)依赖管理工具 go mod。之前Golang 主要依靠vendor和GOPATH来管理依赖库,vendor相对主流,但现在官方更推荐使用go mod。Go 1.12 会删除对 GOPATH 的支持,go get 命令也会变成只能获取模块,不能像现在这样直接获取一个裸包。使用环境变量 GO111MODULE 开启或关闭模块支持,它有三个可选值:off、on、auto,默认值是 auto。GO111MODULE=off 无模块支持,go 会从 GOPA

2020-09-05 16:49:28 1248

原创 CentOS 7安装Protobuf

GitHub下载最新版的,可能有些框架不支持最新版,注意下载自己需要的版本下载地址:https://github.com/protocolbuffers/protobuf/releases下载wget https://github.com/protocolbuffers/protobuf/releases/download/v3.13.0/protobuf-all-3.13.0.tar.gz解压tar -zxvf protobuf-all-3.13.0.tar.gz编译安装./conf

2020-09-03 22:12:57 5946

原创 Linux重启时间被重置解决办法

近将应用部署到测试环境上之后,由于经常断电,应用服务器也经常重启,重启之后时间被还原了。网上找到很多解决办法都是使用以下命令同步BIOS时间(此方法不一定有效)date -s 07/23/2019date -s 14:30:00clock -w 写入BIOS有些系统是hwclock --systohc总之是hwclock命令hwclock -r显示bios时间但是运行命令发现报...

2020-09-03 13:22:52 2730

原创 Centos Go环境搭建

标准官网:https://golang.org/ 需要墙镜像官网:https://golang.google.cn/dl/ 【国内推荐】1、下载文件wget https://golang.google.cn/dl/go1.14.7.linux-amd64.tar.gz2、解压文件到 /usr/local如果之前已经安装过go的版本,先清空下go下面src,不然可能会报一些previous declaration at /usr/local/go/src/runtime/internal/atom

2020-09-02 11:15:32 678

原创 Go编程入门详细例子-TCP

服务器package mainimport ( "fmt" "net" //做网络socket开发时,net包含有我们需要所有的方法和函数 _"io")func process(conn net.Conn) { //这里我们循环的接收客户端发送的数据 defer conn.Close() //关闭conn for { //创建一个新的切片 buf := make(...

2020-05-06 11:25:20 338

B站微服务框架Kratos详细教程(7)-数据库示例项目源码

B站微服务框架Kratos详细教程(7)-数据库示例项目源码 博文地址: https://imsoul.blog.csdn.net/article/details/111267349

2020-12-16

B站微服务框架Kratos详细教程(6)-服务发现示例项目源码

B站微服务框架Kratos详细教程(6)-服务发现示例项目源码 博文地址: https://imsoul.blog.csdn.net/article/details/108518785

2020-12-11

B站微服务框架Kratos详细教程(5)-gRPC 示例项目源码

B站微服务框架Kratos详细教程(5)-gRPC 示例项目源码 博文地址:https://blog.csdn.net/uisoul/article/details/108490259

2020-09-10

B站微服务框架Kratos详细教程(3)-中间件 示例项目源码

B站微服务框架Kratos详细教程(3)-中间件 示例项目源码 博文地址:https://blog.csdn.net/uisoul/article/details/108457264

2020-09-08

B站微服务框架Kratos详细教程(2)-HTTP服务项目源码

B站微服务框架Kratos详细教程(2)-HTTP服务 示例项目源码 博文地址:https://blog.csdn.net/uisoul/article/details/108455395

2020-09-08

B站微服务框架kratos开发文档PDF版

Kratos是bilibili开源的一套Go微服务框架,包含大量微服务相关框架及工具。 Github上的文档打开速度超级慢,所以做了这本pdf版的文档方便大家使用,本地打开文档,速度实在爽。

2020-09-05

Modern PHP中文版[美]_Josh Lockhart_完整书签目录

这本书的作者 PHP 之道的发起人和维护者,对 PHP 编程范式和最佳时间有很好的理解,书中有大量的 PHP 最佳实践案例。 PHP正在重生,不过所有PHP在线教程都过时了,很难体现这一点。通过这本实用的指南,你会发现,借助面向对象、命名空间和不断增多的可重用的组件库,PHP已经成为一门功能完善的成熟语言。 本书作者Josh Lockhart是“PHP之道”的发起人,这是个受欢迎的新方案,鼓励开发者使用PHP最佳实践。Josh通过实践揭示了PHP语言的这些新特性。你会学到关于应用架构、规划、数据库、安全、测试、调试和部署方面的最佳实践。如果你具有PHP基础知识,想提高自己的技能,绝对不能错过这本书。 • 学习现代的PHP特性,例如命名空间、性状、生成器和闭包。 • 探索如何查找、使用和创建PHP组件。 • 遵从应用安全方面的最佳实践,将其运用在数据库、错误和异常处理等方面。 • 学习部署、调优、测试和分析PHP应用的工具和技术。 • 探索Facebook开发的HHVM和Hack语言。 • 搭建与生产服务器高度一致的本地开发环境。

2018-11-12

Skynet基础入门例子详解(6)项目源码

Skynet基础入门例子详解(6)项目源码, 博文地址: http://blog.csdn.net/uisoul/article/details/69565743

2017-04-07

Skynet基础入门例子详解(5)

Skynet基础入门例子详解(5)项目源码 博文地址:http://blog.csdn.net/uisoul/article/details/65447012

2017-03-24

Skynet基础入门例子详解(4)项目源码

Skynet基础入门例子详解(4)项目源码 博文地址:http://blog.csdn.net/uisoul/article/details/64126169

2017-03-22

Skynet基础入门例子详解(3)项目源码

Skynet基础入门例子详解(3)项目源码 博文地址:http://blog.csdn.net/uisoul/article/details/64125906

2017-03-22

Skynet基础入门例子详解(2)项目源码

Skynet基础入门例子详解(2)项目源码 博文地址:http://blog.csdn.net/uisoul/article/details/62432988

2017-03-22

Skynet基础入门例子详解(1)项目源码

Skynet基础入门例子详解(1)项目源码 博文地址:http://blog.csdn.net/uisoul/article/details/62431188

2017-03-22

Skynet基础入门例子详解(7)项目源码

Skynet基础入门例子详解(7)项目源码 博文地址:http://blog.csdn.net/uisoul/article/details/69567837

2007-12-19

空空如也

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

TA关注的人

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