自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 问答 (1)
  • 收藏
  • 关注

原创 docker解决permission denied

docker 每次都要sudo命令每次运行docker命令之后都会出现Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.26/images/json: dial unix /var/run/docker.sock: connect: permission deni

2021-08-23 10:41:26 4250

原创 go协程的一些理解

go为什么适合高并发1.go调度器:GMP方式,goruntine阻塞时OS Thread会启用其他goruntine去执行,而不是像传统的多线程阻塞OSThread。2.利用channel进行通信时,可以直接在goruntine之间拷贝数据,不一定会拷贝到chan的方式。协程A读取空的chan,会gopark自己,然后加入hchan的rece队列,等待被唤醒。当协程B向chan中送数据,发现等待队列有sudog,则会直接将数据拷贝到协程A的栈中。channel 原理:1.go语言中有句话叫做“通过

2021-08-10 11:17:11 322

原创 gRPC and RESTful

gRPC与RESTful的区别:相同点:两者都是用于网络之间进行信息传输的某种风格不同点:1)传输方式:gRPC采用http2.0,RESTful采用http1.1作为传输协议2)传输主体:gRPC采用protoBuf格式,RESTful采用json或xml格式3)序列化:gRPC双端序列化方式相同,但中间人不知。RESTful信息被中间人截取可根据json反序列化解析出原内容,相对来说安全性更高。因为不同,所以独特性能gRPC碾压RESTful1)http1.1和http2.0的不同造

2021-07-05 18:49:04 1413

原创 Mysql报表合计项的写法

Mysql 报表合计内容的编写方式形如下面的图片总公分为两步:1)计算合计项2)在最后一行写“合计”描述- 第一步:利用with rollup 函数:with rollup函数会将通常会与group by联合使用,with rollup将不是group by中的所有项进行应有的计算,数值类型进行相加计算。得select ear_label as "id",count(*) as "总数",update_timeFROM rpm_reg_prgancyregistryWHERE prga

2021-07-05 16:53:45 1231

原创 Go操作mysql

sqlx方式的CURD:连接数据库var db *sqlx.DBfunc initDB() (err error) { dsn := "user:password@tcp(127.0.0.1:3306)/test" // 也可以使用MustConnect连接不成功就panic db, err = sqlx.Connect("mysql", dsn) if err != nil { fmt.Printf("connect DB failed, err:%

2021-06-05 18:27:45 110 1

转载 强一致性、弱一致性、最终一致性

在分布式系统中会涉及到CAP原理,来保证数据的一致性,什么是CAP:一致性(Consistency)可用性(Availability)分区容忍性(Partition tolerance)CAP原理是说这三个要素最多只能同时满足两点,不可能同时兼顾三点,因此在分布式架构设计时必须进行取舍,而分布式数据系统,分区容忍性是最基本的要求,否则就失去了价值,因此只能在一致性和可用性之间取一个平衡。其实对于大多数web系统并不需要强一致性,因此牺牲一致性,换取高可用性是现在多数分布式数据库产品的方向。牺牲一

2021-06-03 11:59:36 1547

原创 Linux进程状态

分别有R、S、D、T、X、ZR运行态S可中断睡眠态响应异步信号,比如说唤醒,杀死kill等D不可中断睡眠态不响应异步信号,存在意义为Linux内核中某些处理流程不能被打断。T暂定或者跟踪状态(比如说正在调试,进入某个断定,等待信号进行下一步)X撤销状态Z僵尸状态:保留数据结构但没有任务执行...

2021-05-15 21:28:21 67

原创 中断

中断有硬中断和软中断硬中断一般是由于硬件系统发出的中断,硬件设备有自己的IRQ向量表。硬中断又可分为内中断和外中断,处理中断请求是要运行在CPU上的,所以硬中断是可以中断CPU的,也可以中断软中断。而软中断是由我们用户程序去发出的中断,比如系统调用读取某个文件。软中断不会中断CPU。...

2021-05-15 10:40:25 83

原创 网络授权与加密

https过程https解决了http的三个缺点(被监听、被篡改、被伪装)客户端与服务器端三次握手建立连接第三次握手过程可携带数据,发送客户端支持的加密协议以及版本客户端筛选合适的加密协议并生成CA证书发送到客户端客户端验证证书的合法性合法,则生成随机数,用公钥及加密算法进行加密,发送到服务器服务器利用私钥以及解密算法得到随机数,根据这个随机数作为双方密钥进行加密数据,发送到客户端客户端利用随机数作为密钥进行解密得到数据,验证是否成功证书与数字签名证书有一种情况为:客户端发送加

2021-05-12 20:29:43 232

转载 C/S 还是 B/S

1.CS = Client - Server = 客戶端 - 服務器。例子: QQ,迅雷,快播,暴風影音,各種網絡遊戲等等。只要有和服務器通訊的都算。2.BS = Browser - Server = 浏览器 - 服務器。 例子:所有的网站都是bs。C/S系统结构B/S系统结构区别:1、客户端要求C/S客户端的计算机电脑配置要求较高。B/S客户端的计算机电脑配置要求较低。2、软件安装C/S每一个客户端都必须安装和配置专用的软件。B/S最大的优点就是不用安装任何专门的软件,只要有一个浏

2021-05-11 21:19:52 118

原创 Beego框架的一些基础知识

获取url或者表单中的数据利用get[int,string]方法,具体参看controller.go文件源码,根据表单或url中设计的参数作为key来查找数据显示格式controller.Data是一个map类型,key来固定格式,value来固定输出内容,通常key是固定好的内置格式,可以位json,xml,yaml等accpetHeader的格式。ServeFormatted serve YAML, XML OR JSON, depending on the value of th..

2021-05-09 12:34:59 82

原创 分布式归并排序的实现

语言工具:golang基本思路:1.通过协程模仿多个机器节点。每一个协程代表一个机子。2.每台机器对自己内存中的数据进行排序,此处用的库函数nums []intsort.Ints(nums)3.每个机器都将排好序的数据发送到channel中,在此期间是利用开启协程来实现每个节点并行执行。4.多个channel产物,产物里保存着各个节点排好序的数据,服务器保存节点IP地址和端口号,并并行的接收每个服务器传入channel中的数据。5.并行进行对N个channel中的数据的归并排序,并边归并边

2021-04-30 09:23:08 468

原创 关于CAS的理解

CAS:compare and swap 比较交换。简单原理:CAS包含3个数,内存位置,预期原值,新值。如果内存位置的值为预期原值,那么就将新值改变到内存位置中,否则不进行处理。这个过程是原子性的但是,预期原值是哪来的呢?详细原理(过程):一个线程(进程)要对内存数据进行更改,首先要拿到这个原始数据A,然后经过自己的一系列操作变为B,变为B不是结果,结果是要将B写回内存中,此时就要用到CAS了,首先看内存中的值是否为还是A,如果是,说明还没有被其他线程(进程)更改过,自己在这期间就是对正确的内存做

2021-04-28 16:53:51 198

原创 堆排序的一些理解

堆排序的一些理解:堆排序的过程:(这里以大顶堆为例)1.初始化大顶堆2.堆顶元素与最后一个元素交换,然后shiftdown(nums[0])那么问题来了:shiftdown的过程中会不会做无效的比较?当堆顶元素和最后一位进行交换后,堆顶元素很有可能必须去与其孩子进行交换,所以在shiftdown进行比较的过程中,我们得不到任何有用信息,称为无效比较。在堆排里面有大量这种近乎无效的比较,因为被拿到堆顶的那个元素几乎肯定是很大的,而靠近堆顶的元素又几乎肯定是很小的,将一个很小的数和一个很大的数比较,

2021-04-24 12:11:51 95

原创 计算机网络-tcp连接常见异常

计算机网络-tcp连接常见异常目标端口未在监听:(操作系统参与)解决:TCP的服务端实际上就是从网卡的寄存器中读取数据,然后进行解析。对于TCP自然会解析出目的端口这个关键信息,然后根据这个信息查看有没有这样的套接字。这个套接字是什么呢?在用户层面是一个文件句柄,但在内核中实际是一个数据结构,里面记录了很多信息。这个数据结构存储在一个哈希表中,通过函数__inet_lookup_skb(net/inet_hashtables.h)可以实现对该数据结构的查找。对于上述情况,自然无法找到该套接字,因此TC

2021-04-23 20:44:35 2861

原创 没题目

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2020-11-29 20:20:35 76

空空如也

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

TA关注的人

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