Golang 微服务 —— grpc

大家可以发现,Go越来越流行,在微服务方面,Go展示很大的优势性.随着微服务的兴起,现在越来越多的 rpc 框架 开始出现,前段时间自己学习搭建了一下 grpc ,在这里记录一下.gRPCgrpc 是谷歌开源的rpc框架,基于http2实现,并支持跨语言,目前基本涵盖了…

- 阅读全文 -

Golang 微服务 —— protocol-buffers

protocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于通信协议、数据存储等。protocol buffers 是什么?protocol buffers 是一种灵活,高效,自动化机制的结构数据序列化方法-可类比 XML,但是比 …

- 阅读全文 -

Docker 实践 —— 搭建私有镜像仓库(Registry)

我们知道Docker官方提供了一个公有的registry服务 —— Docker Hub。但是在实际企业内部可能有些镜像不便放到公网上,所以Docker也提供了私有registry来让有需要的用户自己搭建私有仓库。本文就来简单介绍一下Docker Registry的搭建…

- 阅读全文 -

Docker 实践 —— 部署golang项目

Docker 是一个开源的轻量级容器技术,让开发者可以打包他们的应用以及应用运行的上下文环境到一个可移植的镜像中,然后发布到任何支持Docker的系统上运行。 通过容器技术,在几乎没有性能开销的情况下,Docker 为应用提供了一个隔离运行环境.Docker优点简化配置…

- 阅读全文 -

Docker 网络基础 —— Linux Network Namespace

Network Namespace 是实现网络虚拟化的重要功能,它能创建多个隔离的网络空间,它们有独自的网络栈信息。不管是虚拟机还是容器,运行的时候仿佛自己就在独立的网络中。Linux Network Namespace 连接外网从大类上来讲主要有两种方法:网络地址转换…

- 阅读全文 -

Dockerfile —— RUN vs CMD vs ENTRYPOINT

在使用Dockerfile创建image时, 下面三条指令比较容易混淆。RUN, CMD, ENTRYPOINT, Dockerfile中RUN,CMD和ENTRYPOINT都能够用于执行命令。主要用途RUN: 执行命令并创建新的Image LayerCMD: 设置容器…

- 阅读全文 -

Golang 实现常见设计模式

今天我想聊聊Golang语言下的设计模式问题,我觉得这个话题还是比较有意思的。用Go把设计模式实现一遍。构建一个知识库。 虽然网上有《Go Patterns》,不过是英文版的,并且不全,我就想把它翻译成中文的,并且补全。单利设计模式(Singleton)单例对象的类必须…

- 阅读全文 -

Docker 启动 Get Permission Denied

今天安装完Docker后运行docker version突然出现 Get Permission Denied,以下问题及解决方法都在CentOS Linux release 7.5.1804 (Core)下,其他环境类似。问题描述安装完docker后,执行docker …

- 阅读全文 -

Golang 实现常见算法 —— BinarySearch

二分查找:给定数组是有序的,给定一个key值。每次查找最中间的值,如果相等,就返回对应下标,如果key大于最中间的值,则在数组的右半边继续查找,如果小于,则在数组左半边查找。这种搜索算法每一次比较都使搜索范围缩小一半。最终有两种结果,一种是找到并返回下标,第二种是没找到…

- 阅读全文 -

Golang 数据结构 —— BinarySearchTree

在计算机科学中,二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。一棵深度为k,且有2^k-1个节点的二叉树,称为满二叉树。这种树的特点是每一层上…

- 阅读全文 -