摘要:
Netty5.x 和3.x、4.x的区别及注意事项 (官方翻译) 本文档列出了Netty5新版本中值得注意变化和新特性列表。帮助你的应用更好的适应新的版本。 不像Netty3.x和4.x之间的变化,5.x没有那么大的变化,不过也取得了其简化设计中的一些突破性进展.。我们力求尽可能平滑的从4.x版本过 阅读全文
2018年8月21日 #
摘要:
1 /* 2 * 覆盖了 channelRead0() 事件处理方法。 3 * 每当从服务端读到客户端写入信息时, 4 * 其中如果你使用的是 Netty 5.x 版本时, 5 * 需要把 channelRead0() 重命名为messageReceived() 6 */ 7 @Override 8 protect... 阅读全文
2018年8月20日 #
摘要:
Array 和其他语言的数组不同。 数组是值类型,赋值和传参会复制整个数组,而不是指针。 数组长度必须是常量,且是类型的组成部分。2[int] 和 3[int] 是不同类型。 支持 ==、!= 操作符,因为内存总是被初始化过。 指针数组 [n]*T、数组指针 *[n]T 初始化 a := [3]in 阅读全文
摘要:
函数定义 不支持嵌套(nested)、重载(overload)和默认参数(default paramter)。 无需声明原型 支持不定长变参 支持多返回值 支持命令返回值 支持匿名函数和闭包 函数是第一类对象,可以作为参数传递。 // 定义函数类型 type FormatFuncu func(s s 阅读全文
摘要:
保留关键字 语言设计简练,只有 25 个保留关键字。 break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type 阅读全文
摘要:
类型系统 Go 语言是更好的 C 语言,很多思想来源于 C 语言,毕竟 Go 的设计者就是 C 的设计者在几十年之后再创新高。 变量的声明引入和 JavaScript 一样的关键字 var,不一样的机制,JavaScript 中声明变量时没有类型,Go 语言声明的变量在后面要带上类型。 变量 var 阅读全文
摘要:
[TOC] Git @(24.1 Git)[git] 工作原理 直接记录快照,而非差异比较 Git 只关心文件数据的整体是否发生变化,大多数其他系统则只关心文件内容的具体差异,每次记录有哪些文件作了更新,以及更新了什么内容,每个版本都是每个文件相对于上个版本更新了哪些内容。 Git 并不保存这些前后 阅读全文
摘要:
构建分布式系统是很有挑战性的,这毫无疑问。虽然我们已经解决了很多工程上的问题,我们仍然重复的在构建许多模块。目前,由于我们开始了更高级别的抽象,虚拟机到容器技术,适应新的语言,作用于云计算,都对微服务提出了要求。总有一些事情需要我们不断的去学习,怎样构建高性能的、高容错的系统仍然是下一波的技术浪潮。 阅读全文
摘要:
有很多关于 micro 架构的疑问和微服务的设计模式的问题,今天我们讨论一下这两个话题。 关于Micro Micro 是一个微服务工具箱,它有自己固有的设计模式,但插件化的架构可以让底层的实现很轻易的被替换。 micro 专注于定位微服务构建过程中的最基本的需求,并通过精密的设计来满足这些需求。 查 阅读全文
摘要:
这篇文章我们会讨论基于 NATS 使用 Micro。讨论包括了服务发现,同步通信和异步通信。 NATS是什么? NATS 是一个开源的消息系统,或者说消息队列。NATS 的作者是 Derek Collison, Apcera 的作者。它起源于 VMWare,最开始是一个 ruby 的系统。后来使用 阅读全文