摘要: 1 并发模型编年史 并发编程从上个世纪计算机的出现伊始就一直是一个老生常谈的问题。以Dijikstra(迪杰斯特拉大家应该很熟悉,就是那个被全世界所熟知的最短路径算法的作者)为代表的一批远古级的程序员们就准备拿并发编程去做一些事情的时候,就被事务交互所带来的的并发性所困扰着。同时运行的并发事务会在不 阅读全文
posted @ 2022-02-19 11:51 ttlv 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 1. 开篇序言 Concurrency is not parallelism。 并发不等于并行。 --Rob.Pike -- 罗布.派克 罗老爷子一直有着诸多广为流传脍炙人口的slogan。不过今天我要把老爷子的话当成砖来引出go的美玉goroutine。即使你没有深入的使用过go语言,也一定对go 阅读全文
posted @ 2021-11-23 15:24 ttlv 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 1.1 背景 在 Go 服务中,每个传入的请求都在其自己的goroutine 中处理。请求处理程序通常启动额外的 goroutine 来访问其他后端,如数据库和 RPC服务。处理请求的 goroutine 通常需要访问特定于请求(request-specific context)的值,例如最终用户的 阅读全文
posted @ 2021-07-18 14:50 ttlv 阅读(1016) 评论(0) 推荐(0) 编辑
摘要: 1. Share Memory By Communicating 传统的线程模型(通常在编写 Java、C++ 和Python 程序时使用)程序员在线程之间通信需要使用共享内存。通常,共享数据结构由锁保护,线程将争用这些锁来访问数据。在某些情况下,通过使用线程安全的数据结构(如Python的Queu 阅读全文
posted @ 2021-06-24 17:03 ttlv 阅读(405) 评论(0) 推荐(0) 编辑
摘要: 1. 如何顺序控制goroutine 如何保证在一个 goroutine 中看到在另一个 goroutine 修改的变量的值,如果程序中修改数据时有其他 goroutine 同时读取,那么必须将读取串行化。为了串行化访问,请使用 channel 或其他同步原语,例如 sync 和 sync/atom 阅读全文
posted @ 2021-05-03 16:22 ttlv 阅读(2633) 评论(0) 推荐(0) 编辑
摘要: 1. Processes and Threads 操作系统会为该应用程序创建一个进程。作为一个应用程序,它像一个为所有资源而运行的容器。这些资源包括内存地址空间、文件句柄、设备和线程。 线程是操作系统调度的一种执行路径,用于在处理器执行我们在函数中编写的代码。一个进程从一个线程开始,即主线程,当该线 阅读全文
posted @ 2021-04-24 23:27 ttlv 阅读(611) 评论(0) 推荐(0) 编辑
摘要: 1. 什么是RPC 在讲gRPC之前还是要先搞明白什么是RPC。所谓RPC(remote procedure call 远程过程调用)框架实际是提供了一套机制,使得应用程序之间可以进行通信,而且也遵从server/client模型。使用的时候客户端调用server端提供的接口就像是调用本地的函数一样 阅读全文
posted @ 2021-02-20 14:08 ttlv 阅读(760) 评论(0) 推荐(0) 编辑
摘要: 1. API Gateway 以毛剑在实际架构中的案例作为分析的材料 毛剑在架构初期其实是采用直连的方式,连接的客户端可能是浏览器也有可能是手机,直接裸着连服务,然后就遇到了一系列的问题。 我们进行了 SOA 服务化的架构演进,按照垂直功能进行了拆分,对外暴露了一批微服务,但是因为缺乏统一的出口面临 阅读全文
posted @ 2021-02-15 14:58 ttlv 阅读(388) 评论(0) 推荐(0) 编辑
摘要: 微服务概览 1. 单体架构 Web应用程序发展的早期,大部分web工程是将所有的功能模块(service side)打包到一起并放在一个web容器中运行,很多企业的Java应用程序打包为war包。其他语言(Ruby,Python或者C++)写的程序也有类似的问题。 让我们假设您正在构建一个电子商务应 阅读全文
posted @ 2021-02-13 12:55 ttlv 阅读(303) 评论(0) 推荐(0) 编辑
摘要: KubeEdge集群搭建 1. 前言 上一篇文章我把整个KubeEdge的宏观架构设计讲了一遍,今天的内容是实操实践,手把手教你搭建KubeEdge集群。 2. 准备工作 需要两台机器,不管是笔记本也好还是树莓派都可以,单是有一个前提,作为Master节点的机器的配置至少要达到2C4G,不然跑不了k 阅读全文
posted @ 2021-02-11 14:23 ttlv 阅读(1107) 评论(3) 推荐(0) 编辑