云原生中间件的下一站

作者:于雨于雨(github @AlexStocks),dubbogo 社区负责人,一个有十年服务端基础架构和中间件研发一线工作经验的程序员,陆续参与和改进过 Redis/Pika/Muduo/dubbo-go/Sentinel-go 等知名项目,目前在蚂蚁金服可信原生部从事容器编排工作。自从以 2013 年开源的 docker 为代表的的容器技术和以 2014 年开源的 K8s 为代表的容器编排技术登上舞台之后,相关技术从业人员从认知和体感上接受,云原生时代真的到来了。当然也有很多资深技术人员...阅读全文

Segmentfault 2021-02-15 17:32:33 .container .car 等

手撸golang 行为型设计模式 备忘录模式

手撸golang 行为型设计模式 备忘录模式缘起最近复习设计模式拜读谭勇德的<<设计模式就该这样学>>本系列笔记拟采用golang练习之备忘录模式备忘录模式(Memento Pattern)又叫作快照模式(Snapshot Pattern), 或令牌模式(Token Pattern), 指在不破坏封装的前提下, 捕获一个对象的内部状态, 并在对象之外保存这个状态。 这样以后就可将该对象恢复到原先保存的状态, 属于行为型设计模式。 备忘录模式主要适用于以下应用场景。 (1)需要保存历史快照的场景。...阅读全文

Segmentfault 2021-02-15 10:32:32 .container .car 等

手机没网了,却还能支付,这是什么原理?

来自公众号:程序通事现在生活已经离不开微信/支付宝电子支付,平常出去吃饭、购物只要带个手机,就可以解决一切,以致于现在已经好久没摸过真💰了。有一次出去吃饭,排着队付钱,等着过程非常无聊,准备拔出手机来把荒野乱斗,却发现这个地方竟然连不上网 。看着手机明明信号满格,但是就是显示网络无连接,苹果手机用户痛,谁用谁知道。画外音:真的要 Diss 一下使用英特尔基带的 Iphone,📶 好差,没事网络就会闪断~说回正题,由于没有网络,而我又没带钱,所以就怕付钱的时候因为手机没网,没办法使用支付宝扣款。正...阅读全文

Segmentfault 2021-02-14 20:32:34 .container .car 等

手撸golang 行为型设计模式 状态模式

手撸golang 行为型设计模式 状态模式缘起最近复习设计模式拜读谭勇德的<<设计模式就该这样学>>本系列笔记拟采用golang练习之状态模式状态模式(State Pattern)也叫作状态机模式(State Machine Pattern), 允许对象在内部状态发生改变时改变它的行为, 对象看起来好像修改了它的类, 属于行为型设计模式。 状态模式主要包含3个角色。 (1)环境类角色(Context):定义客户端需要的接口,内部维护一个当前状态实例,并负责具体状态的切换。 (2)抽象状态角色(I...阅读全文

Segmentfault 2021-02-14 16:32:32 .container .car 等

手撸golang 行为型设计模式 迭代器模式

手撸golang 行为型设计模式 迭代器模式缘起最近复习设计模式 拜读谭勇德的<<设计模式就该这样学>> 本系列笔记拟采用golang练习之迭代器模式 SODLEMFGBSHDUFNSLQRRT迭代器模式(Iterator Pattern)又叫作游标模式(Cursor Pattern), 它提供一种按顺序访问集合/容器对象元素的方法, 而又无须暴露集合内部表示。 迭代器模式可以为不同的容器提供一致的遍历行为, 而不用关心容器内元素的组成结构, 属于行为型设计模式。 迭代器模式的本质是把集合对象的...阅读全文

51CTO博客 2021-02-09 09:43:14 mb601a5ca21139e

test

一、初识Go1.1 简介Go以C语言为原型,以及借鉴其他语言的一些特性来编写完成,其思想是“Less can be more(大道至简,小而蕴真)”,让事情变得简单,表现出深刻的工程文化。1.1.1 优点-自带gc静态编译,编译好后,扔服务器直接运行简单的思想,没有继承,多态,类等丰富的库和详细的开发文档语法层支持并发,和拥有同步并发的channel类型,使并发开发变得非常方便简洁的语法,提高开发效率,同时提高代码的阅读性和可维护性超级简单的交叉编译,仅需更改环境变量1.1.1.1 语法特征-自...阅读全文

Segmentfault 2021-02-12 22:32:32 .container .car 等

说说Golang goroutine并发那些事儿

摘要:今天我们一起盘点一下Golang并发那些事儿。Golang、Golang、Golang 真的够浪,今天我们一起盘点一下Golang并发那些事儿,准确来说是goroutine,关于多线程并发,咱们暂时先放一放(主要是俺现在还不太会,不敢出来瞎搞)。关于golang优点如何,咱们也不扯那些虚的。反正都是大佬在说,俺只是个吃瓜群众,偶尔打打酱油,逃~。说到并发,等等一系列的概念就出来了,为了做个照顾一下自己的菜,顺便复习一下基础概念进程进程的定义进程(英语:process),是指计算机中已运行的...阅读全文

Segmentfault 2021-02-13 21:32:34 .container .car 等

【Java】一篇文章带你玩转用Java刷力扣

写在前面 我之前一直是以Golang为主语言的,最近开始转Java,包括平时刷题(欢迎来互粉哈: 千杉沐雪的力扣)的语言也改为使用Java。 在转语言的过程中,总避免不了要频繁地查基本的语法和一些常见函数操作。为了方便其他也有类似需要的朋友,我特此将我记的一些笔记重新梳理后发上来分享。 本文主要目标: 提供常用工具类的介绍,如:字符串,日期,随机数,正则等; 提供常见集合的介绍和操作,如:List,Map,堆栈等; 介绍一些Java与其他语言可能不一样的语法,如:数组操作,可变长参数等; 常用类...阅读全文

简书 2021-02-09 04:32:39 千杉沐雪

Coflux 进阶课 | CIP-37 更新后对开发者的影响

《详解CIP-37(上)》中,为大家介绍了 CIP-37。地址更新变化自然会对开发者产生一定影响,本期将为大家详细介绍。 Conflux-rust 从版本 v1.1.1 开始将会使用新地址格式,凡是请求参数,返回结果中包含地址的地方,均使用新格式地址。 v1.1.1升级的内容 不兼容变更 CIP-37:Conflux 地址将变更为 base32 地址格式。RPC 与全节点的交互中不支持与以太坊格式类似的 16 进制地址。 把所有的数据(包括目录 storage_db、 blockchain_db...阅读全文

简书 2021-02-08 23:32:48 Conflux中文社区

Go Dumpling! 让导出数据更稳定

Migrate SIG Community,主要涵盖 TiDB 数据处理工具,包含 TiDB 数据备份/导入导出,TiDB 数据变更捕获,其他数据库数据迁移至 TiDB 等。前言Dumpling 是由 Go 语言编写的用于对数据库进行数据导出的工具。目前支持 MySQL 协议的数据库,并且针对 TiDB 的特性进行了优化。在 Go Dumpling! 让导出数据更容易 中,我们简要介绍了 Dumpling 的基本功能的使用。在本文中,我们将会介绍一些 Dumpling 的进阶使用方法,帮助大家更...阅读全文

51CTO博客 2021-02-08 20:38:16 mb601a588b8eae6

《精灵宝可梦 Lets go》通关

本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载、或重新修改使用,但需要注明来源。 署名 4.0 国际 (CC BY 4.0) 本文作者: 苏洋 创建时间: 2018年11月22日 统计字数: 1549字 阅读时间: 4分钟阅读 本文链接: https://soulteary.com/2018/11/22/pokemon-lets-go-stage-clear.html 《精灵宝可梦 Lets go》通关17号开始玩,中间几天陆陆续续拾起来玩,用了24小时左右打通了一周目...阅读全文

51CTO博客 2021-02-08 19:40:02 mb5fd33fb726faf

goroutine轻量的秘密

在讨论Go编程语言时,经常被提起的一个特点是使用goroutines;这是一种轻量级进程,可以并发运行成千上万的goroutines。许多其它编程语言使用操作系统提供的线程来支持并发任务。线程的缺点是它们是比较重的,因此只能运行数百个线程,然后才会遇到可扩展性问题。这些问题在实时更新与大量客户端场景下尤为明显。 通常,我们可以人云亦云地说:goroutine是线程的"轻量级"的版本。但如何才能在功能不变的情况下,做到轻量级呢。我最终深入到Go的runtime源代码中去寻找答案。在这篇文章中,我将...阅读全文

简书 2021-02-08 22:32:41 wu_sphinx

2021-02-08:给定一个字符串str,请问这个字符串的最长回文子序列长度是多少?

2021-02-08:给定一个字符串str,请问这个字符串的最长回文子序列长度是多少? 福哥答案2021-02-08: 自然智慧即可。 1.原序列和反序列求公共子序列。无代码。 2.递归。有代码。 3.动态规划。有代码。 根据动态规划表,dp[i][j]取【左边】,【下边】,【左下边】或者【左下边+2】)的最大值。 【左下边】还是【左下边+2】?i==j,取【左下边+2】;i!=j,取【左下边】。 代码用golang编写,代码如下: package main import "fmt" func ...阅读全文

简书 2021-02-08 22:32:40 福大大架构师每日一题

Serverless 场景下 Pod 创建效率优化

简介: 众所周知,Kubernetes 是云原生领域的基石,作为容器编排的基础设施,被广泛应用在 Serverless 领域。弹性能力是 Serverless 领域的核心竞争力,本次分享将重点介绍基于 Kubernetes 的 Serverless 服务中,如何优化 Pod 创建效率,提升弹性效率。 Serverless 计算简介 在进入主题之前,先简单回顾下 Serverless 计算的定义。 从维基百科可以了解到,Serverless 计算是云计算的一种形态,由云厂商管理服务器,向用户动态分...阅读全文

简书 2021-02-08 19:32:44 阿里云云栖号

手撸golang 行为型设计模式 迭代器模式

手撸golang 行为型设计模式 迭代器模式 缘起 最近复习设计模式 拜读谭勇德的<<设计模式就该这样学>> 本系列笔记拟采用golang练习之 迭代器模式 迭代器模式(Iterator Pattern)又叫作游标模式(Cursor Pattern), 它提供一种按顺序访问集合/容器对象元素的方法, 而又无须暴露集合内部表示。 迭代器模式可以为不同的容器提供一致的遍历行为, 而不用关心容器内元素的组成结构, 属于行为型设计模式。 迭代器模式的本质是把集合对象的迭代行为抽离到迭代器中, 提供一致的...阅读全文

简书 2021-02-08 19:32:39 老罗话编程

golang一行代码把array/slice转成逗号分隔的字符串

主要用在 SQL中 IN 条件查询的时候, 这个就非常有用了。 array_or_slice := []int{1,2,3} strings.Replace(strings.Trim(fmt.Sprint(array_or_slice), "[]"), " ", ",", -1) //输出: 1,2,3 当然还有另外的方法,如下: 如将var a = []int{1,2,3,4}变为"[1,2,3,4]"。 最硬核的办法就是建一个slice的临时中转:[]string 类型, 然后用string...阅读全文

简书 2021-02-08 19:32:39 我爱张智容

golang反射机制

反射 反射就是程序能够在运行时动态的查看变量自己的所有属性和方法,能够调用他的任意方法和属性。 GO的反射基础是接口和类型系统。 反射的优缺点:(优)简化代码、(缺)性能损失、难懂、脆弱 反射三定律 反射可以从接口值得到反射对象; 反射可以从反射对象获取接口值。 若要修改一个反射对象,则其值必须为可以修改。 package main import ( "fmt" "reflect" ) type User struct { Id int Name string Age int } func (u...阅读全文

简书 2021-02-08 19:32:39 voidFan

手撸golang 行为型设计模式 命令模式

手撸golang 行为型设计模式 命令模式 缘起 最近复习设计模式 拜读谭勇德的<<设计模式就该这样学>> 本系列笔记拟采用golang练习之 命令模式 命令模式(Command Pattern)是对命令的封装, 每一个命令都是一个操作: 请求方发出请求要求执行一个操作; 接收方收到请求,并执行操作。 命令模式主要适用于以下应用场景。 (1)现实语义中具备“命令”的操作(如命令菜单、Shell命令等)。 (2)请求的调用者和接收者需要解耦,使得调用者和接收者不直接交互。 (3)需要抽象出等待执行...阅读全文

简书 2021-02-08 19:32:38 老罗话编程