学习scalaenv

"" 背景 最近由于工作需要, 我总是在不同的scala项目间流动开发. 这就遇到一个很棘手的问题, 这几个项目用的scala版本不一致, 老项目用的是 , 新项目用的是 . 写scala项目最要命的可能就是高版本总是不兼容低版本. 如果你用的是IDE开发, 项目版本不同必不会给你带来问题, 因为I ... »

scala笔记,主要摘自网络教程

1.scala是一种纯面向对象的语言,每个值都是对象。对象的数据类型以及行为由类和特质描述 2.类的扩展有2种机制:继承和混入机制 3.scala是一种函数式语言,其函数也能当成值来使用 ==4.scala使用actor作为其并发模型,actor是类似线程的实体,通过邮箱发收消息。actor可以复用 ... »

PICE(2):JDBCStreaming - gRPC-JDBC Service

在一个akka-cluster环境里,从数据调用的角度上,JDBC数据库与集群中其它节点是脱离的。这是因为JDBC数据库不是分布式的,不具备节点位置透明化特性。所以,JDBC数据库服务器必须通过服务方式来向外提供数据操。在这种场景里服务端是JDBC服务,其它节点,包括其它的JDBC数据库节点都是这个 ... »

使用Akka构建集群(一)

Akka提供的非常吸引人的特性之一就是轻松构建自定义集群,这也是我要选择Akka的最基本原因之一。如果你不想敲太多代码,也可以通过简单的配置构建一个非常简单的集群。本文为说明Akka集群构建的学习成本低廉,以Akka官网的例子代码出发,进行简单改造后与Spring集成。 ... »

PICE(1):Programming In Clustered Environment - 集群环境内编程模式

首先声明:标题上的所谓编程模式是我个人考虑在集群环境下跨节点(jvm)的流程控制编程模式,纯粹按实际需要构想,没什么理论支持。在5月份的深圳scala meetup上我分享了有关集群环境下的编程模式思路。我提供了下面这个示意图: 上图是我正在探讨的“现代企业I.T综合数据平台”网络结构。因为互联网经 ... »

spark练习——影评案例

第一次写博客,新人上路,欢迎大家多多指教!!! 分割线 现有如此三份数据:1、users.dat 数据格式为: 2::M::56::16::70072对应字段为:UserID BigInt, Gender String, Age Int, Occupation String, Zipcode Str ... »

Spark2.1.0——Spark初体验

学习一个工具的最好途径,就是使用它。在IT领域,在深入了解一个系统的原理、实现细节之前,应当先准备好它的运行环境或者源码阅读环境。如果能在实际环境下安装和运行Spark,显然能够提升读者对于Spark的一些感受,对系统能有个大体的印象,有经验的工程师甚至能够猜出一些Spark在实现过程中采用的设计模... ... »

Spark2.1.0——运行环境准备

学习一个工具的最好途径,就是使用它。在IT领域,在深入了解一个系统的原理、实现细节之前,应当先准备好它的运行环境或者源码阅读环境。如果能在实际环境下安装和运行Spark,显然能够提升读者对于Spark的一些感受,对系统能有个大体的印象,有经验的工程师甚至能够猜出一些Spark在实现过程中采用的设计模... ... »

ScalaPB(4): 通用跨系统protobuf数据,sbt设置

我们知道,在集群环境节点之间进行交换的数据必须经过序列化/反序列化处理过程,而在这方面protobuf是一个比较高效、易用的模式。用户首先在.proto文件中用IDL来定义系统中各种需要进行交换的数据类型。然后用protoc编译器自动产生相关的源代码,里面包括了完整的序列化处理函数。在一个集成的系统 ... »

ScalaPB(2): 在scala中用gRPC实现微服务

gRPC是google开源提供的一个RPC软件框架,它的特点是极大简化了传统RPC的开发流程和代码量,使用户可以免除许多陷阱并聚焦于实际应用逻辑中。作为一种google的最新RPC解决方案,gRPC具备了以下这些强项: 1、gRPC在HTTP/2协议上用protobuf取代了json实现了最佳效率 ... »

ScalaPB(1): using protobuf in akka

任何类型的实例作为消息在两端独立系统的机器之间进行传递时必须经过序列化/反序列化serialize/deserialize处理过程。假设以下场景:在一个网络里有两台连接的服务器,它们分别部署了独立的akka系统。如果我们需要在这两台服务器的akka系统之间进行消息交换的话,所有消息都必须经过序列化/ ... »

SDP(13): Scala.Future - far from completion,绝不能用来做甩手掌柜

在前面几篇关于数据库引擎的讨论里很多的运算函数都返回了scala.Future类型的结果,因为我以为这样就可以很方便的实现了non-blocking效果。无论任何复杂的数据处理操作,只要把它们包在一个Future{...}里扔给系统运算就算完事不理了,马上可以把关注放到编程的其它部分了。在3月17日 ... »

scala(二) Future执行逻辑解读

在scala中是没有原生线程的,其底层使用的是java的Thread机制。但是在scala中对java Thread进行了封装,实现了更便于操作线程的Future。 官方文档: Futures provide a way to reason about performing many operati ... »

Scala编程快速入门系列(二)

本文较为详细地介绍了Scala的理论,并结合相应的代码进行解读与实践。文章内容主要包含Scala的简介,数据类型,函数(函数定义、匿名函数、嵌套函数、循环语句等),集合(List、Tuple、Map),伴生对象,trait,Actor,隐式转换,JDBC等。 ... »

Scala编程快速入门系列(一)

本文较为详细地介绍了Scala的理论,并结合相应的代码进行解读与实践。文章内容主要包含Scala的简介,数据类型,函数(函数定义、匿名函数、嵌套函数、循环语句等),集合(List、Tuple、Map),伴生对象,trait,Actor,隐式转换,JDBC等。 ... »