12 2020 档案
摘要:介绍 康威定律是马尔文·康威1967提出的:“设计系统的架构受制于产生这些设计的组织的沟通结构。”通俗的来讲:产品必然是其(人员)组织沟通结构的缩影。 跨部门沟通时非常难的,系统各个模块的接口也反映了它们之间的信息流动和合作方式。 康为定律总结起来有四个定律: 第一定律 Communication
阅读全文
摘要:竞态 竞态是指多个goroutine按某些交错顺序执行时无法给出正确的结果。竞态对于程序是致命的,因为它们可能潜伏在程序中,出现的频率也很低,有可能仅在高负载环境或者使用特定平台、架构时才出现。数据竞态发生于两个goroutine并发读写同一个变量并且至少其中一个是写入时。当发生数据竞态的变量类型是
阅读全文
摘要:并发编程表现为程序由若干个自主的活动单元组成。go有两种并发编程风格,一种是goroutine和通道,它们支持通信顺序进程(CSP),CSP是一个并发模式,在不同的执行体(goroutine)之间传递值,但是变量本身局限于单一的执行体。还有一种共享内存多线程的传统模型,它们和在其他主流语言中使用线程
阅读全文
摘要:很多面向对象语言都有借口的概念,Go语言的接口独特之处在于它是隐式实现的。 接口定义和实现 /* 定义接口 */ type interface_name interface { method_name1 [return_type] method_name2 [return_type] method_
阅读全文
摘要:函数 函数声明 go语言函数支持多返回值。 func name(parameter-list)(result-list){ body } 当函数存在返回列表的时候,必须显示以return结束。(除了break,抛异常等操作) func sub(x,y int) (z int){ z = x-y;re
阅读全文
摘要:go语言主要有四种复合数据类型,数组、slice、map、结构体。 数组和结构体都是聚合类型,他们的值由内存中的一组变量构成。数组和结构体的长度都是固定的,而slice和map都是动态的数据结构。 数组 var a [3]int //定义 for i,v:=range a{ fmt.Printf("
阅读全文
摘要:程序结构 基础部分仅仅列举和其他语言不一样的地方(C语言为例)。 声明 Go语言有四个主要声明:var、const、type、func,类似于C语言中的变量,常量,结构体和函数。 package main //表明文件属于哪个包 import "fmt" const boilingF = 212.0
阅读全文
摘要:前言 高性能是每个程序员的追求,无论写一行代码还是做一个系统,都希望能够达到高性能的效果。高性能架构设计主要集中在两方面: 尽量提升单服务器的性能,将单服务器的性能发挥到极致 如果单服务器无法支撑性能,设计服务器集群方案 单服务器高性能的关键之一就是服务器采取的网络编程模型。服务器如何管理连
阅读全文
摘要:边缘集群环境下Consul集成Envoy实践 前言 Consul Service Mesh通过授权和加密来保护服务之间的通信,还可以拦截有关服务到服务通信的数据并将其呈现给监视工具。我们可以使用Consul随附的内置代理测试Consul Service Mesh,对于生产部署并启用L7功能,应使
阅读全文
摘要:Consul介绍 提供服务发现功能的框架有很多,具体的选型和比较就不再介绍,这里主要介绍一下Consul。 consul是分布式的、高可用的、横向扩展的。提供的一些关键特性: service discovery:consul通过DNS或者HTTP接口使服务注册和服务发现变的很容易,一些外部服
阅读全文
摘要:随着信息安全变得越来越重要,在浏览器、搜索引擎、CA机构、大型互联网企业的共同促进下,互联网迎来了“HTTPS加密时代”。HTTPS在HTTP上建立了SSL加密层,是HTTP协议的安全版本。HTTPS主要作用有两方面: 对数据进行加密,并建立一个安全通道,来保证传输过程中的数据安全。 对网站服务器进
阅读全文
摘要:在早起的互联网中,各种信息都是以明文形式在网络中传输。随着各种计算机高手的出现,他们可以轻松截获并读取这些信息。因此,人们希望通过一种机制来对信息进行加密,从而保证信息被安全传输,数字签名和数字证书就是这么一种方式。下面看一组动漫图。 鲍勃有两把钥匙,公钥和私钥。私钥只有一把,自己留着,公钥有好多把
阅读全文
摘要:一、Envoy介绍 官方文档解释: Envoy是专为大型现SOA(面向服务架构)设置的L7代理和通信总线。该项目源于以下理念:网络对应用程序来说应该是透明的。当网络和应用程序出现问题时,应该很容易确定问题的根源。 为了做到上述目标,Envoy提供了以下高级功能: 进程外架构:Envoy是一个独立进程
阅读全文
摘要:🌟Kubernetes网络模型 kubernetes网络模型设计的一个基础原则就是:每个Pod拥有一个独立IP地址,这个模型也被称为IP-per-Pod模型,并假定所有Pod都在一个可以直接连通的、扁平的网络空间中。所以不管他们是否运行在同一个Node中,都要求他们可以直接通过对方的IP进行访问。
阅读全文
摘要:Docker借助强大的镜像技术,让应用的分发、部署与管理变得异常便捷。那么,Docker网络功能又如何,能否满足各种场景的需求。 1. Docker网络架构 Docker在1.9版本引入了一整套docker network子命令和跨主机网络支持,这允许用户可以根据他们应用的拓扑结构创建虚拟网络并将容
阅读全文
摘要:在计算机网络中,我们经常遇到集线器Hub,交换机Switch,网桥bridge,路由器router,今天来介绍一下这几个设备的功能。 1. 集线器(Hub) Ethernet被发明出来,需要用一个黑盒子将电脑连接起来;否则电脑和谁通信,和谁网线直连,这是点对点通信了,一点也不方便,和以太网的多路访问
阅读全文
摘要:一、概述 我们知道,vmware有三种网络连接方式:Bridged(桥接)、NAT(网络地址转换)、Host-only(仅主机模式)。安装完虚拟机软件后,在我们宿主机的网络适配器中会多出两块虚拟网卡vmnet1和vmnet8。分别对应Host-only和NAT模式,而Bridged模式的vmnet0
阅读全文