近期反思

人生每隔一段时间,就要重整一下自己的方向,以让自己能够更好的走下去. 每个阶段都会有每个阶段的难处与问题,而且关于人本身的各种问题,比如惰性,品德,交友,更是会反复出现,需要经常去纠正,观察. 其实真要是去归纳,会发现你平常最应该常常思考的就是那三句话:"为人谋而不忠乎,交而不信乎,传不习乎." 这些东西属于在不同的层次会有不同的感悟,而且每过一段时间还可能会反弹,所以要时时的去反思. 在这可以扩展一下为什么组内要经常的开交流会呢? 大家之间需要有一个交流,这个交流可以起到一个监督和鼓励的作用....阅读全文

简书 2020-11-07 18:32:45 WH云飞

golang&echo 开启HTTPS 服务

一.使用openssl 生成SSL自签证书 第一步:生成私钥 使用openssl工具生成一个RSA私钥 openssl genrsa -des3 -out server.key 2048 说明:生成rsa私钥,des3算法,2048位强度,server.key是秘钥文件名。 第二步:生成CSR(证书签名请求) openssl req -new -key server.key -out server.csr 说明:需要依次输入国家,地区,城市,组织,组织单位,Common Name和Email。其...阅读全文

简书 2020-11-07 17:32:41 撑伞的猫先生

golang 依赖包被墙解决方法

简单粗暴 一个国人做的代理 感谢大神linuxexport GOPROXY=https://goproxy.cnwindowsgo env -w GOPROXY=https://goproxy.cn,directvscode go get 获取库出现以下错误 很可能就是没安装gitpackage github.com/gin-gonic/gin: exec: "git": executable file not found in vscode使用编辑go文件 安装所有插件 安装git参考http...阅读全文

简书 2020-11-07 17:32:41 明明就_c565

汇编函数mcall systemstack asmcgocall syscall

转于文章: https://studygolang.com/artic...声明下面的分析均基于Golang1.14版本。不同硬件平台使用的汇编文件不同,本文分析的函数mcall, systemstack, asmcgocall是基于asm_arm64.s汇编文件。不用操作系统平台使用的系统调用不同,本文分析的函数syscall是基于asm_linux_arm64.s汇编文件。CPU的上下文这些函数的本质都是为了切换goroutine,goroutine切换时需要切换CPU执行的上下文,主要有2...阅读全文

Segmentfault 2020-11-10 10:32:36 xxx小M

栈的应用-最大宽度坡

题目:给定一个数组,每个元素只能取1或-1,求一个最长子数组的长度,满足子数组所有元素求和大于0。输入:[1,-1,1,-1,-1,1]输出:3解释:求和大于0的最长子数组为[1,-1,1],长度为3思路:子数组的和,联想到前缀和,转换为求preSum[j]-preSum[i]>0条件下最大的j-i,这是个典型的最大宽度坡问题最大宽度坡的解法:2.1 初始化一个栈存元素的索引,要维持单调递减性质;从0索引开始遍历数组,将后面更小的元素的索引依次入栈;这是为了构造坡底,坡底是单调递减的。2.2 从...阅读全文

Segmentfault 2020-11-10 08:32:32 且慢

iOS 应用实现 gRPC 调用

问题 在手机应用的开发中,通常会将复杂的业务逻辑层实现放在服务端,客户端仅负责表现层。但是对于某些手机应用而言,业务逻辑的实现位于服务端反而是不安全的或是不合理的,而是需要将其逻辑直接在手机端实现。 目的 面对不同系统的手机客户端,单独重复实现相同的业务逻辑,并非最佳实践。如何通过第三方语言 Go 语言将业务逻辑封装成库的形式,并以静态打包的方式提供给不同系统的手机客户端使用,是本次调研的目的。 理想目标图: 具体调研内容包括: iOS 应用实现 gRPC 调用 Android 应用实现 gRP...阅读全文

简书 2020-11-07 14:32:44 iOS_天气

Dubbo-go Server端开启服务过程

导读导读:随着微服务架构的流行,许多高性能 rpc 框架应运而生,由阿里开源的 dubbo 框架 go 语言版本的 dubbo-go 也成为了众多开发者不错的选择。本文将介绍 dubbo-go 框架的基本使用方法,以及从 export 调用链的角度进行 server 端源码导读,希望能引导读者进一步认识这款框架。下周将发表本文的姊妹篇:《从 client 端源码导读 dubbo-go 框架》。序言近日阅读了部分dubbo-go源码https://github.com/dubbogo/dubbo-...阅读全文

Segmentfault 2020-11-10 10:32:36 dubbo_go

Go 深入源码 —— channel

Don't communicate by sharing memory, share memory by communicating. 不要通过共享内存来通信,而要通过通信来实现内存共享。 数据结构 我们可以把 Channel 看做是一个先进先出(FIFO)的数据队列,那么如何实现这种队列 channel 的底层数据结构是一个 *hchan,在编译时期会将 make(chan int) 语句转换成 makechan 函数调用 hchan // runtime/chan.go type hchan...阅读全文

简书 2020-11-06 23:32:40 IceberGu

2020-11-06

多语言微服务版本管理实践 2020_11_06_OlGYFbXEtO.png 版本化、优雅、简单实现微服务之间的rpc通讯 首先划分业务架构 淘宝、京东、天猫属于业务层 订单、支付属于基础服务 2020_11_06_GrT8GQ84ww.png 实践 本文研究的是业务层(php)如何优雅的通过rpc(grpc, protobuf)和基础服务(go)通讯 现在有2个底层服务(商品、订单GOLANG),一个业务中台(laravel), 需要实现 php和golang之间0配置调用,版本管理 rpc和...阅读全文

简书 2020-11-06 23:32:39 杰森跟班

美团Java后端开发一二面面经与一些经验

先赞再看,养成好习惯~ 一面 1h 自我介绍 主要使用语言:Golang、C++ or Java Golang 和 C++ 的区别(GC、编译快) 为什么 golang 的依赖分析简单?(类似拓扑排序,每个文件只需打包一次) Golang 是怎么管理内存的?(线程缓存,搜一下 tcmalloc) 内存回收是怎么找到垃圾、怎么回收?(分代回收、标记-清除等) Java map 底层结构(拉链法,扩容时转红黑树) map 什么时候扩容?负载因子是多少? Java map 的线程安全实现(锁、分段锁、...阅读全文

简书 2020-11-06 20:32:42 码农川建国

一道比较运算符相关的面试题把我虐的体无完肤

来自公众号:新世界杂货铺杂(货铺)谈今天这篇文章相对来说比较基础,大家花几分钟时间看看,有所收获自然是最好,没有收获也就消磨几分钟时间罢了,你不亏,笔者也不亏~前几期还是有一定难度的HTTP系列文章,今天却是画风突变讲起了基础,这当然是因为基础重要呀。正所谓万丈高楼平地起,我们夯实基础,楼才能建的高,毕竟精美的小矮楼总是很容易被高楼遮挡。嗨,扯远了,总之笔者今天写这篇文章绝对不是下面这个原因:累呀!真的累!工作嘛?当然不是!前几期分析HTTP系列文章确实耗费了太多精力,周末连续熬夜就算是铁打的人...阅读全文

Segmentfault 2020-11-09 13:32:33 新世界杂货铺

微服务 · 如何解决链路追踪问题

### 一、链路追踪 ​ 微服务架构是将单个应用程序被划分成各种小而连接的服务,每一个服务完成一个单一的业务功能,相互之间保持独立和解耦,每个服务都可以独立演进。相对于传统的单体服务,微服务具有隔离性、技术异构性、可扩展性以及简化部署等优点。 ​ 同样的,微服务架构在带来诸多益处的同时,也为系统增加了不少复杂性。它作为一种分布式服务,通常部署于由不同的数据中心、不同的服务器组成的集群上。而且,同一个微服务系统可能是由不同的团队、不同的语言开发而成。通常一个应用由多个微服务组成...阅读全文

Go语言中文网 2020-11-06 17:49:55 wangshizebin

简单设计go-amqp

仓库地址go get -u github.com/lazychanger/go-amqp注意事项rabbitmq将连接与管道分开,即connection与channel。connection是实体连接,而channel是逻辑连接。所以当我们多线程使用时候,应该是单connection+多channelconnection闪断以后,channel也会失效。所以重连以后,还需要重新建立channel所有的推送,消费都是基于channel,所以channel重连以后,还需要重新开启推送、消费在conn...阅读全文

Segmentfault 2020-11-09 11:32:33 inight

Envoy VS Treafik

云原生场景,产生了很多的Edge Router,Load balance,API Gate Way,Proxy等组件。最近研究了一下,分享几个喜欢的项目,它们大致分为两类: Gateway为主:Kong,Krakend Proxy为主:Envoy,Traefik 但两类没有实际功能的边界,Proxy为主,一般要支持在L4,Gateway为主,支持在L7即可。Proxy主要位置是中间,可以做sidecar,Gateway在服务endpoint前面。再比如传统的HAProxy就是Proxy,Ngin...阅读全文

简书 2020-11-06 14:32:44 23donge