darp Docs
dapr 文档贡献dapr 文档贡献规则:https://docs.dapr.io/zh-hans/contributing/contributing-docs/
dapr 文档网站使用hugo 开发工具:
Windows:安装流程安装scoopepowerSheel :执行命令:
123456789101112set-executionpolicy remotesigned -scope currentuseriex (new-object net.webclient).downloadstring('https://get.scoop.sh')执行scoope help 查看是否安装正常执行 scoop install hugo scoop install hugo-extended这两部即可 完成对其安装文档:https://gohugo.io/getting-started/installing/
1.执行doc仓库下载和安装依赖仓库:
1234567891011121314https://github.com.cnpmjs.org/dapr ...
GOLANG-grpc-2
脑图:
https://naotu.baidu.com/file/c80e753e20e8ab18a80cb573ac08e912?token=e89e127e95b325d5
服务端的操作:
取出server
挂载方法
注册服务
创建监听
客户端:
创建链接
new 一个client
调用client方法
获取返回值
x86和arm架构区别
什么是arm架构ARM架构过去称之为进阶精简指令集机器,是一个32位的精简指令集(RISC)处理器架构,其广泛的使用在嵌入式系统设计,由于节能的特点,ARM非常适合处理移动通讯领域,符合其设计目标低消耗 电量的特性,在今日,ARM家族占了所有32位嵌入式处理器75%的比例,使它成为占全世界最多数的32位架构之一。ARM处理器可以在很多消费性电子产品上看到,从可携式装置(PDA、移动电话、多媒体播放器、掌上型电子游戏,和计算机)到电脑外设(硬盘、桌上型路由器)甚至在导弹的弹载计算机等军用设施中都有他的存在。在此还有一些基于ARM设计的派生产品,重要产品还包括Marvell的XScale架构和德州仪器的OMAP系列.
arm架构图
下图所示的是ARM构架图。它由32位ALU、若干个32位通用寄存器以及状态寄存器、32&TImes;8位乘法器、32&TImes;32位桶形移位寄存器、指令译码以及控制逻辑、指令流水线和数据/地址寄存器组成.
1、ALU:它有两个操作数锁存器、加法器、逻辑功能、结果以及零检测逻辑构成。
2、桶形移位寄存器:ARM采用了32&TImes;32位的桶形移 ...
HTTP 请求方法之CONNECT method
HTTP1.1 中的connect1.http请求代理就是connect这个方法,connect网页开发中不会使用2.connect的作用将服务器作为代理,让服务器提用户访问其他网页(翻墙),之后将数据返回用户3.connect是将通过TCP代理链接服务器的,假如我想让代理服务器访问,https://baidu.com网站,首先要简历一条客户端到代理服务器的tcp的链接然后给代理服务器发送一个http报文
12345CONNECT https://www.jianshu.com/u/f67233ce6c0c:80 HTTP/1.1Host: www.web-tinker.com:80Proxy-Connection: Keep-AliveProxy-Authorization: Basic *Content-Length: 0
在发送完这个请求之后,代理服务器会响应请求,返回一个200的信息,但这个200并不同于我们平时见到的OK,而是Connection Established
弱势文化
知识的快餐:我们为什么要懂点哲学什么是哲学,哲学可不可以理解成为人的认知的差异,哲学里的文化属性到底代表着什么
闲暇产生思辨,思辨消解教条主义和陈腐习俗,发展出敏锐的感知,让人丧失行动的决断。
思想,在分析迷宫冒险前行,发现社会背后的个体,玻璃其正常的社会功能,转向内在,发现自我
共同的利益,和共同体的意识衰退,如今没有公民只有个人
个体通过思索意识到自己本身就是生存的目的,他要求国际从此以往加强而不是利用他的能力,以此为代价,个人将维持国家的持续
社会经济的发展带来的我们物质和生活的增长,被冠以着数十年来通过个体努力的结果,于是国家造就了弱势文化的典型思想:误以为将自己的生活水平的提高,是通过自己勤劳获取的,殊不知这是吃着国家的红利,而并非自己真的可以通过真正的努力获取的温饱
GOLANG-GPM的深入理解
深入golang runtime的调度
理解调度器的启动runtime:
scheduler:
TLS:
spinning:
systemstack,mcall,asmcgocall
主要源码文件:
调度基本组件:
**G(goroutine)**:调度器的基本单位,存储的goroutine的执行stack信息,状态以及任务函数
在g的眼中只有p,p就是运行的G的“CPU”
相当于两级线程
g的任务函数
每个g的实例都有任务函数,如下代码
12userFun:=func(){fmt.Println("111")}go userFunc();
go的关键词创建了一个goroutine,此时gouroutine的任务函数userFun
P(processor)
p表示逻辑processor,代表M执行的上下文
p的最大作用是拥有各种G的对象队列,链表,cache,和状态
p的数量也代表go的执行并发度,即多少个goroutine可以同时执行
这里的p虽然表示逻辑处理器,但是p并不代表任何执行代码,对于g来说,p相当于cpu的核,g只有绑定p才能 ...
GOLANG-纯纯的语法仔的没落
基础1. 对于已经关闭的channel的处理读已经关闭的channel,一直能读到东西,但是读到的东西根据通道内关闭前是否有元素而不同,
关闭前,buffer有还未读取的,会读取到chan内的值,且返回是否读取成功的bool值为true
关闭前,buffer的值读完,channel元素值为0,bool值为false
写入:直接panic
2. Make和new区别make:返回特定类型channel,slice,map
new: 开辟新内存和指针,泛化类型
3. nil 切片和空切片一不一样指向的地址不一样。nill引用指针地址为0,空切片执行数组指针地址,且为一个固定值
数据结构:data,len,cap
4. 字符串转byte数组,会发生内存拷贝吗严格来说,只要发生类型强转,都会发生内存拷贝。
那么go有个很强的包叫 unsafe 。先获取变量地址,字符串转成底层结构,通过unsafe包,转为切片数组,再通过指针指向实际内容
string 数据结构 {data,len}
5. json包变量不加tag会怎么样和key的大小写有关
6. GPM指向另一篇详细()
7.Docke ...
GOLANG-grpc
grpc 官网:https://grpc.io/docs/languages/go/basics/ 中文翻译版本:http://doc.oschina.net/grpc?t=56831
1、下载protobuf的编译器protoc
地址:
1、https://github.com/google/protobuf/releases
123456789window: 下载: protoc-3.3.0-win32.zip 解压,把bin目录下的protoc.exe复制到GOPATH/bin下,GOPATH/bin加入环境变量。当然也可放在其他目录,需加入环境变量,能让系统找到protoc.exelinux: 下载:protoc-3.3.0-linux-x86_64.zip 或 protoc-3.3.0-linux-x86_32.zip解压,把bin目录下的protoc复制到GOPATH/bin下,GOPATH/bin加入环境变量。如果喜欢编译安装的,也可下载源码自行安装,最后将可执行文件加入环境变量。
2、获取protobuf的编译器插件protoc-gen-go
1234 ...
golang里的进程线程携程的调度方式
找工作本来想靠实力和经验,奈何仍需背面试题,刷算法,可以说是可恶了作者:腾讯技术工程链接:https://www.zhihu.com/question/20862617/answer/921061289来源:知乎
goroutine 实现:
我们去看调度的一个进化, 从进程到线程再到协程, 其实是一个不断共享, 不断减少切换成本的过程. go 实现的协程为有栈协程, go 协程的用法和线程的用法基本类似. 很多人会疑问, 协程到底是个什么东西? 用户态的调度感觉很陌生, 很抽象, 到底是个什么东西?
我觉得要理解调度, 要理解两个概念: 运行和阻塞. 特别是在协程中, 这两个概念不容易被正确理解. 我们理解概念时往往会代入自身感受, 觉得线程或协程运行就是像我们吭哧吭哧的处理事情, 线程或协程阻塞就是做事情时我们需要等待其他人. 然后就在这等着了. 要是其他人搞好了, 那我们就继续做当前的事.
其实主体对象搞错了.正确的理解应该是我们处理事情时就像 CPU, 而不是像线程或者协程. 假如我当前在写某个服务, 发现依赖别人的函数还没有 ready, 那就把写服务这件事放一边. 点开企业微 ...