Grpc Streaming 你造?
一、前言
grpc 是一个由 google 推出的、高性能、开源、通用的 rpc 框架。它是基于 HTTP2 协议标准设计开发,默认采用 Protocol Buffers 数据序列化协议,支持多种开发语言。
一般业务场景下,我们都是使用grpc的simple-rpc模式,也就是每次客户端发起请求,服务端会返回一个响应结果的模式。

image.png
但是grpc除了这种一来一往的请求模式外,还有流式模式,下面我们一一道来。
阅读全文《软件架构》4. CS架构
CS架构也称为两层架构,客户端与服务端进行通信,服务端替客户端做一些计算。
一些常见的CS架构:
- 桌面程序和远程数据库之间
- 浏览器和web服务器之间
- 手机和服务器之间
- FTP客户端和FTP服务器之间
《Scala 教程》介绍
作者:Jakob Jenkov 更新时间:2014-06-01
Scala是一个非常有趣的新编程语言,相比Java有很多新特性。Scala非常吸引Java程序员,因为Scala被编译为Java字节码,在虚拟机中运行。这意味着你可以在Scala代码中使用Java类,甚至是我们自己开发的Java类。Java程序员可以方便使用Scala,因为可以重用大量Java代码。
阅读全文《Scala教程》 2.Scala Overview
scala 概述
作者:Jakob Jenkov 更新时间:2014-05-25
本文旨在为您提供Scala编程语言和Scala平台的概述。 由于Scala一直在开发,因此该概述页面可能会随着时间的推移而变化。 另外,随着作者对Scala语言了解的深入,本文也会有所添加。
Scala运行在Java虚拟机中
Scala被编译成Java字节码,由Java虚拟机(JVM)执行。 Scala和Java具有通用的运行时平台。 如果您或您的组织已经使用Java标准化,那么您也不会对scala感到完全陌生。 Scala与Java不同的语言,相同的运行环境。
阅读全文《软件架构》事件驱动架构
你好,我是看山。
本文源自并发编程网的翻译邀请,翻译的是 Jakob Jenkov 的 《软件架构》 中关于事件驱动的内容,虽然是 2014 年的文章,但是从软件架构层面上,并不过时。
以下是正文。
事件驱动架构是一种系统或组件之间通过发送事件和响应事件彼此交互的架构风格。当某个事件发生时,组件A不直接调用组件B,而只是发出一个事件。组件A不知道哪些组件监听并处理这些事件。事件驱动架构可以在进程内和进程间使用。比如,GUI框架中会大量使用事件驱动。【译者注:目前很多系统采用微服务架构,事件驱动使用的更加广泛了。】此外,正如我在并发模型教程 中所提到的,装配线并发模型(AKA reactive,非阻塞并发模型)也使用了事件驱动架构。
本文主要介绍进程之间的事件驱动架构,后文提到这个词的时候也是指进程交互方式。
《Scala教程》 3.Scala Classes
作者:Jakob Jenkov 更新时间:2015-05-23
Scala是一种面向对象的语言。 这意味着您可以在Scala中定义类,并实例化这些类的对象。我希望您在阅读本文时了解面向对象编程的基础。
Scala类是Scala对象的模板。这就是说,一个类定义了该类所拥有的信息以及它所展现的行为(方法)。一个类可以包含有关以下信息:
- 字段
- 构造器
- 方法
- 超类(继承)
- 类实现的接口
- 等等
在本文中,我将仅关注字段,构造函数和方法。Scala类的其他方面将在单独的文本中介绍。
阅读全文Docker 教程(一):Docker 是什么
本文源自并发编程网的翻译邀请,翻译的是 Jakob Jenkov 的 《Docker 教程》 中的第一篇,本文大概介绍了 Docker 是什么和有什么用。可能在工作中,会有专业运维同学管理服务器镜像或其他内容,但是如果不了解这些概念,很多时候我们不会全面了解到系统的全貌。
Docker 是一种将应用程序和服务器配置打包成 Docker 镜像的方法,使用了一种称为 Dockerfile 的简单打包规范。Docker 镜像可以启动多个多个实例,这些运行的实例被称为 Docker 容器。这个系列的内容主要包括讲解什么是 Docker 镜像、什么是容器、什么是 Dockerfile,以及如何创建、运行和发布等。
《Scala教程》翻译邀请
快过年了,并发网祝福各位读者新年快乐!万事如意!并发网从2012年至今已经有八年了,感谢各位读者、译者和作者的支持,并发网将持续发布优质技术文章,让天下没有难学的技术!
2月并发网组织翻译《Scala教程》相关技术文章,欢迎大家踊跃参加。
如何领取
通过评论领取想要翻译的文章,每次领取一章或一节(根据内容长短),翻译完后再领取其他章节。领取完成之后,译文最好在一个星期内翻译完成,如果不能完成翻译,也欢迎你邀请其他同学和你一起完成翻译。请谨慎领取,很多文章领取了没有翻译,导致文章很长时间没人翻译。
阅读全文《Docker教程》翻译邀请
快过年了,1月并发网组织翻译《Docker教程》相关技术文章,欢迎大家踊跃参加。
如何领取
通过评论领取想要翻译的文章,每次领取一章或一节(根据内容长短),翻译完后再领取其他章节。领取完成之后,译文最好在一个星期内翻译完成,如果不能完成翻译,也欢迎你邀请其他同学和你一起完成翻译。请谨慎领取,很多文章领取了没有翻译,导致文章很长时间没人翻译。
阅读全文《软件架构》RIA 架构
RIA(富Internet应用程序)是web应用程序的特殊种类,其用户界面的功能比第一代和第二代web应用程序丰富得多。这种web应用程序看起来更像是桌面应用程序。RIA的用户界面通常使用HTML5 + JavaScript + CSS3, Flex (Flash), JavaFX, GWT, Dart等等RIA工具开发。从长远来看,HTML5 + JavaScript + CSS3的各种变体似乎会成为主流(可以将GWT和Dart编译为JavaScript)。
RIA用户界面更加丰富的GUI客户端功能也让web应用程序的内部架构和设计有所变化。与第一代和第二代的web应用程序相比,RIA用户界面和其后端通常分离地更加干净。这使RIA GUI更加独立于服务端,同样因此GUI开发人员和服务端开发人员可以并行协作。我将在本文中说明RIA如何做到上述事情,在此之前我先介绍下第一代和第二代web应用程序的内部设计通常是怎样的。
阅读全文