自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

王大阳的博客

技术总结

  • 博客(297)
  • 资源 (9)
  • 收藏
  • 关注

原创 【运维篇】阿里云SLS日志服务

选择project,建立logstore建立了ps-pro配置logtail,接入pod数据日志格式非常多,我们选择docker标准输出配置如下{ "inputs": [ { "detail": { "Stderr": true, "IncludeLabel": { "io.kubernetes.container.name": "you_p

2021-07-19 16:02:56 4271 2

原创 【Go】Golang内存管理篇 ⑤

一. 内存管理内存分配器堆和栈区别1.空间分配区别:栈:由操作系统(编译器)自动分配释放,存放函数的参数值,局部变量的值等,其操作方式类似于数据结构中的栈。堆:一般由代码分配释放,若代码没有显式释放,程序结束时可能由OS回收,分配方式类似链表。2.缓存方式区别:栈:使用的是一级缓存,通常都是被调用时处于存储空间中,调用完毕立即释放。堆:存放在二级缓存中,生命周期由垃圾回收算法来决定。3.数据结构区别:栈:先进后出的线性结构。堆:类似于一颗树。1.1 go内存分配

2021-07-16 15:19:18 1019

原创 【数据库篇】Redis知识点

2.1 redis 特性redis为什么这么快1.基于内存Redis是纯内存数据库,一般都是简单的存取操作,线程占用的时间很多,时间的花费主要集中在IO上,所以读取速度快。2.单线程上下文切换线程只需要保存线程的上下文(相关寄存器状态和栈的信息)Redis采用了单线程的模型,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗 CPU。3.IO多路复用技术redis 采用网络IO多路复用技术来保证在多连接的时候, 系统的高吞吐量。多路-指的是多个socket

2021-07-14 15:45:02 3084 1

原创 【运维篇】kubernetes面试相关总结

简述 Kubernetes 中什么是静态 Pod?静态 pod 是由 kubelet 进行管理的仅存在于特定 Node 的 Pod 上,他们不能通过 API Server 进行管理,无法与 ReplicationController、Deployment 或者 DaemonSet 进行关联,并且 kubelet 无法对他们进行健康检查。静态 Pod 总是由 kubelet 进行创建,并且总是在 kubelet 所在的 Node 上运行。简述 Kubernetes 中 Pod 可能位于的状态?Pendi

2021-06-26 18:20:20 699

原创 【面试篇】牛客网面试总结

运维etcd 如何保持高可用性只有当集群中多数节点正常的情况下,才可以进行运行时的配置管理。如果集群多数节点损坏,集群就失去了写入数据的能力。官方推荐3,5,7为etcd cluster数目,其中7可以满足大部分情况通常情况下,如果是Follower节点宕机,如果剩余可用节点数量超过半数,集群可以几乎没有影响的正常工作。如果是Leader节点宕机,那么Follower就收不到心跳而超时,发起竞选获得投票,成为新一轮term的Leader,继续为集群提供服务。灾难恢复当集群超过半数的节点都失效时,就

2021-05-12 00:08:26 1641 2

原创 【微服务】Go进阶四 日志&指标&链路追踪

日志级别https://github.com/golang/glog,是 google 提供的一个不维护的日志库,glog 有其他语言的一些版本,对我当时使用 log 库有很大的影响。它包含如下日志级别:InfoWarningErrorFatal(会中断程序执行)还有类似 log4go,loggo,zap 等其他第三方日志库,他们还提供了设置日志级别的可见行,一般提供日志级别:TraceDebugInfoWarningErrorCriticalFatal记录消息后,直接调

2021-04-24 23:34:08 738

原创 【计算机基础】计算机网络①

1.网络编程互联网的核心是一系列协议,总称为”互联网协议”(Internet Protocol Suite),正是这一些协议规定了电脑如何连接和组网。主要协议分为:Socket接口抽象层TCP / UDP面向连接(可靠) / 无连接(不可靠)HTTP1.1 / HTTP2 / QUIC(HTTP3)超文本传输协议...

2021-04-19 12:12:43 1968 1

原创 【微服务】Go进阶② 微服务可用性设计

微服务可用性设计隔离隔离,本质上是对系统或资源进行分割,从而实现当系统发生故障时能限定传播范围和影响范围,即发生故障后只有出问题的服务不可用,保证其他服务仍然可用。服务隔离动静分离、读写分离轻重隔离核心、快慢、热点物理隔离线程、进程、集群、机房读写分离:主从、Replicaset、CQRS。核心隔离业务按照 Level 进行资源池划分(L0/L1/L2)。核心/非核心的故障域的差异隔离(机器资源、依赖资源)。多集群,通过冗余资源来提升吞吐和容灾能力。快慢隔离我们可以把

2021-04-16 00:20:53 1169

原创 【微服务】【GO训练营总结】Go进阶① 微服务概览

01 第一周:微服务(微服务概览与治理)可用性&兼容性设计API Gateway (网关)Microservice划分Microservice安全

2021-04-11 17:57:39 1501

原创 【Go】微服务框架总结

Go-Mirco框架go-zero微服务框架1. zRPC使用参考go-zero 文档查看server注册ETCDCTL_API=3 etcdctl get hello.rpc --prefix显示服务已经注册2. 接口限流 periodlimit2.1 滑动窗口限流接口限流实现 redis + lua而在一个分布式系统中,存在多个微服务提供服务。所以当瞬间的流量同时访问同一个资源,如何让计数器在分布式系统中正常计数?同时在计算资源访问时,可能会涉及多个计算,如何保证计算的原子性?

2021-03-07 22:12:52 3385 1

原创 【计算机基础】计算机网络知识点②

TCP UDPTCPTCP/IPTCP/IP是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。 TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。 通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。TCP三次握手① A 的 TCP

2021-03-07 00:01:11 541

原创 【运维篇】负载均衡策略

DNS域名解析腾讯云通过Annotation配置负载均衡

2021-03-02 17:29:01 3465 2

原创 【Go】Golang runtime调度③

文章目录调度-GMP调度模型1. GMP支撑了 Go 的高并发2. GMP定义3.Goroutine vs OS thread 有什么区别?抢占1.go协程阻塞时如何进行调度?1. 只G阻塞,M,P可用的2. G,M都被阻塞,P可用系统调用(open file) system call2.GO的调度过程:2.5 PMG模型中状态汇总G状态P的状态M的状态如果Goroutine 一直占用资源怎么办,PMG模型怎 么解决的这个问题?1,如果某个M陷入阻塞呢?2,如果有的M较忙,有的M较闲呢?3,如果一个G运行时

2021-02-09 10:31:37 1131 1

原创 【微服务】微服务治理:熔断、链路追踪

熔断器有三种状态:关闭状态:服务正常,并维护一个失败率统计,当失败率达到阀值时,转到开启状态开启状态:服务异常,调用 fallback 函数,一段时间之后,进入半开启状态半开启装态:尝试恢复服务,失败率高于阀值,进入开启状态,低于阀值,进入关闭状态github.com/afex/hystrix-go,提供了 go 熔断器实现,使用上面也很方便,首先创建一个熔断器hystrix.ConfigureCommand( "addservice", // 熔断器名字,可以用服务名称命名,一个名字对应

2021-02-03 22:11:10 830

原创 【Go】Go-Micro微服务框架

简单案例 https://github.com/why19970628/micro-serviceService实现如下接口的,都是Servicetype Service interface { Init(...Option) Options() Options Client() client.Client Server() server.Server Run() error String() string}如 service := micro.NewService()返回的是mic

2021-02-02 22:55:24 224

原创 操作系统知识点

系统调用什么是系统调用?Linux内核中设置了一组用于实现各种系统功能的子程序,称为系统调用。用户可以通过系统调用命令在自己的应用程序中调用它们。从某种角度来看,系统调用和普通的函数调用非常相似。区别仅仅在于,系统调用由操作系统核心提供,运行于内核态;而普通的函数调用由函数库或用户自己提供,运行于用户态。随Linux核心还提供了一些C语言函数库,这些库对系统调用进行了一些包装和扩展,因为这些库函数与系统调用的关系非常紧密,所以习惯上把这些函数也称为系统调用。为什么要用系统调用?实际上,很多已经被我

2021-01-30 00:20:48 829

原创 【Go】面试篇 ②

showmebug2 6年经验1.多核cpu cache怎么保持不冲突和一致MESI解决方案 把cache 设置为四个状态,是两个bit来表示,四种状态:修改、独占、共享、失效状态更新:把内存的一块数据加载到cache中,某一个内核对这个数据进行修改,这时就是修改状态,独占的状态。有另外一个相同的数据资源修改时,这时会检测到,将独占状态变为共享状态,之前读取的数据会变成失效的状态,新的内存里面加载到cache里面,还有一些不同的情况:当一个数据处于共享状态,比如两个内核都加载同一份数据,到内核ca

2021-01-23 23:49:53 547

原创 【运维篇】运维知识点

容器容器和虚拟机的区别1.容器技术简介对于容器,它首先是一个相对独立的运行环境,在这一点有点类似于虚拟机,但是不像虚拟机那样彻底。在容器内,应该最小化其对外界的影响,比如不能在容器内把宿主机上的资源全部消耗,这就是资源控制。容器可以看成一个装好了一组特定应用的虚拟机,它直接利用了宿主机的内核,抽象层比虚拟机更少,更加轻量化,启动速度极快。可以做到秒级,甚至毫秒级启动相比于虚拟机,容器拥有更高的资源使用效率,因为它并不需要为每个应用分配单独的操作系统——实例规模更小、创建和迁移速度也更快。.

2021-01-18 10:59:53 591 1

原创 【数据库篇】MySQL基础知识

IO多路复用技术redis 采用网络IO多路复用技术来保证在多连接的时候, 系统的高吞吐量。多路-指的是多个socket连接,复用-指的是复用一个线程。多路复用主要有三种技术:select,poll,epoll。epoll是最新的也是目前最好的多路复用技术。这里“多路”指的是多个网络连接,“复用”指的是复用同一个线程。采用多路 I/O 复用技术可以让单个线程高效的处理多个连接请求(尽量减少网络IO的时间消耗),且Redis在内存中操作数据的速度非常快(内存内的操作不会成为这里的性能瓶颈),主要以上两点

2021-01-10 16:48:42 491 1

原创 【Go】Go语言面试②

文章目录1.11.22.12.2京东make new的区别数组和切片的区别Go线程安全?PythonPython3 GIL(Global Interpreter Lock) 下 多线程与多进程1.1Go语言中Select用法如何通俗理解docker?集装箱、Docker容器提供的是虚拟化的运行环境集群、微服务与分布式的理解分布式是指将不同的业务分布在不同的地方。而集群指的是将几台服务器集中在一起,实现同一业务。 分布式中的每一个节点,都可以做集群。而集群并不一定就是分布式的。简单说

2021-01-10 16:46:02 525

原创 【Golang】Go语言面试①

Go 语言笔试面试题汇总Go 语言笔试面试题(基础语法)

2021-01-10 16:43:59 580

原创 【k8s】集群中部署kong网关及添加插件

1.本地运行的设置service router的参考这篇 : 传送门

2020-12-03 13:30:39 1361

原创 分布式锁的总结(redis)

方法一:使用setnx + set参数,一步搞定://使用set 参数实现分布式锁func DoSet(conn redis.Conn,commandName string, args... interface{}){ lock.Lock() defer lock.Unlock() res,err := conn.Do("set","dirlock","true","EX",10,"NX") if err != nil{ fmt.Println("redi

2020-11-10 23:46:57 490

原创 阿里云Codeup云效使用flow+k8s部署go语言项目

codeup云效flow制作DockerfileFROM golang:alpine AS builderADD ./ /data/app/WORKDIR /data/app/ENV GO111MODULE=on \ CGO_ENABLED=0 \ GOOS=linux \ GOARCH=amd64 \ GOPROXY=https://goproxy.io,directEXPOSE 8888RUN CGO_ENABLED=0 GOOS=linux GOAR

2020-11-09 20:32:50 3404 2

原创 【数据库篇】Elasticsearch知识总结

在公司需要用到es,这里做下知识点的记录吧一、基础工具阿里云es提供查询工具,包括kibana集群信息 推荐es-head 用Chrome插件 或者 GitHub查询index结构GET user_login_log/message/_mapping二、简单查询ES 读取过程分为GET和Search两种操作。GET/MGET(批量GET): 需要指定_index、_type、_id。也就是根据id从正排索引中获取内容。Search: Search不指定_id,根据关键词从哪个倒排索

2020-10-29 11:15:30 1510 1

原创 GO微服务实战之红包系统

业务模型2-3 红包数据库表结构讲解红包序列红包算法红包算法逻辑6点要求微信两倍平均算法

2020-09-21 22:28:43 603

原创 【后端】消息队列--RocketMQ篇

rabbitmqpackage mainimport ( "fmt" "log" "strconv" "github.com/streadway/amqp")func failOnError(err error, msg string) { if err != nil { log.Fatalf("%s: %s", msg, err) }}func main() { conn, err := amqp.Dial("amqp://admin:admin@localhost:

2020-09-18 23:29:17 1985 1

原创 【后端】黑马头条v5.0(Python3-Flask)

12_雪花算法id生成与redis连接的配置import timeimport loggingclass InvalidSystemClock(Exception): """ 时钟回拨异常 """ pass# 64位ID的划分WORKER_ID_BITS = 5DATACENTER_ID_BITS = 5SEQUENCE_BITS = 12# 最大取值计算MAX_WORKER_ID = -1 ^ (-1 << WORKER_ID_BITS

2020-09-10 00:56:21 1788 8

原创 Django美多商城

第1节 美多商城项目准备项目主要模块

2020-08-30 15:49:38 1075 3

原创 【Go】Go读书社区web开发与高性能架构优化 (beego+redis+es)

ES 操作es router //搜索 beego.Router("/search", &controllers.ElasticsearchController{}, "get:Search") beego.Router("/search/result", &controllers.ElasticsearchController{}, "get:Result")ElasticsearchControllerpackage controllersimport ( "fmt.

2020-08-22 19:16:35 1283 1

原创 Go开发抽奖项目(iris+xorm+redigo+订单高并发)

前后端需求后端管理需求优惠券表

2020-08-22 03:04:08 810 1

原创 加密策略

PythonGogin_resaurant//用户登录func (ms *MemberService) Login(name string, password string) *model.Member { //1、使用用户名 + 密码 查询用户信息 如果存在用户 直接返回 md := dao.MemberDao{tool.DbEngine} member := md.Query(name, password) if member.Id != 0 { return member }

2020-08-14 15:03:36 746

原创 【Go】Go-Iris框架实战之电商秒杀系统②核心优化

文章目录第9章 系统分析&前端优化【核心优化方案落地9-2 秒杀分布式架构设计页面静态化的几种方式9-9 CDN原理和作用第10章 服务端性能优化之实现cookie验证后端优化思路基础架构与优化的的架构对比突破Session限制(Cookie代替)cookie与session的区别第11章 服务端性能优化之分布式验证实现11-1 分布式概念第12章 服务端性能优化解决超卖&引入消息队列第14章 课程总结第9章 系统分析&前端优化【核心优化方案落地9-2 秒杀分布式架构设计页面

2020-08-13 00:41:57 984

原创 go语言基于Casbin实现角色的权限控制

实战一般运用到项目后台的管理权限中初始化数据库初始化环境后,系统会在你选择的数据库自动生成一个casbin_rule的数据库表用户权限的增删改查tips:这些接口,需要放在截器中间件前面, 不然空表无法添加数据 //使用自定义拦截器中间件 r.Use(Authorize())//增加policy r.POST("/api/v1/add", func(c *gin.Context) { fmt.Println("增加Policy") if ok, _ := Enforcer.A.

2020-08-09 03:45:27 3310

原创 JWT-RESTful进行身份认证

视频链接

2020-08-08 16:21:47 698

原创 秒杀系统总结

文章目录一、问题二、解决思路1. 高并发Redis集群2. 超卖服务单一职责:一、问题高并发超卖二、解决思路1. 高并发分布式服务Nginx负载均衡、轮询(ip黑名单)分布式服务器(服务单一职责,)Redis 高可用 (集群,主从同步、读写分离,哨兵机制,开启持久化)Mysql高可用(集群、读写分离)静态页面消息队列(MQ,Redis等消息队列)限流 降级前端 : 按钮时间、链接等(后端、秒杀次数Redis缓存库存预热Redis集

2020-08-04 22:35:08 871

原创 【Go】Gin框架实战之云餐厅外卖

文章目录Gin入门基础01.Gin简介02.HTTP请求和参数解析创建Engine处理HTTP请求RouterGroup04. 多数据格式返回请求结果05. 中间件的编写和使用Next()的作用07.Gin访问和使用数据库云餐厅项目项目简介项目简介Gin入门基础01.Gin简介02.HTTP请求和参数解析创建Engine处理HTTP请求RouterGroup04. 多数据格式返回请求结果05. 中间件的编写和使用Next()的作用07.Gin访问和使用数据库增删改 使用E

2020-08-02 18:57:21 1340 2

原创 elementui小项目案例

搭建环境sudo cnpm install webpack -gsudo vue init webpack userselement文档

2020-08-02 01:55:40 2575

原创 React学习与项目的搭建总结

创建一个react-app项目搭建脚手架这里就直接使用create-react-app 脚手架了。安装脚手架npm install -g create-react-app创建项目create-react-app address_searchDocker 打包镜像根目录下面新建一个Dockerfile文件# 使用node版本alpineFROM node:alpine# 代表生产环境ENV PROJECT_ENV production# 许多 package 会根据此环境变量,

2020-07-30 15:20:21 201

原创 CI/CD持续集成与持续部署

服务器使用Gitlab的服务器GitLab Runner安装下载 # For Debian/Ubuntu/Mint curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash # For RHEL/CentOS/Fedora curl -L https://packages.gitlab.com/install/repositories/run

2020-07-29 22:27:10 954

worldAreaSql.zip

整理了一份世界国家、省、市、区的sql文件,也有从腾讯抓取的数据Sql, 包含表结构 直接导入数据库就可以用, 数据准确度比较高

2020-08-03

intern_test.rar

1道关于python面试数据分析的面试题,xml文件解析并提取数据,生成csv文件,已给出标准答案,下载即可运行。

2019-11-29

template-matching-ocr.rar

# 银行卡识别 - Python3 - 所用到的库: opencv imutils--图像处理工具包 numpy

2019-11-01

ROSTCM6.zip

ROST CM是专为即将毕业的用户推出的一款专业论文查重软件,可以方便用户查看自己的论文是否被剽窃了,或者论文的重复率,拥有全网分析、浏览分析、微博分析,情感分析等特色。下载解压即可使用!

2019-08-24

opencc-1.0.zip

opencc-1.0.1繁体转中文工具包,win64位,下载解压即可使用!

2019-07-22

个人简易博客系统.rar

基于ThinkPHP,基于Flask两种方式搭建的个人博客,直接下载安装好库直接就能用

2019-06-14

Pandas_exercises-master.rar

Pandas是入门Python做数据分析所必须要掌握的一个库,本篇精选了十套练习题以及数据文件,帮助读者上手Python代码,完成数据集探索。

2019-05-22

Python数据分析与应用资源

《Python数据分析与应用》,测试资料,源代码以及PPT讲义。

2019-05-05

python+pyqt图书管理系统

python+pyqt模块实现的图书管理系统,自带小型数据库,解压即可使用。

2019-05-05

空空如也

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

TA关注的人

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