分类:scala

Scala实战:迁移文件

Scala作为script使用也是非常的方便。 原文地址:https://www.yangbajing.me/2019/03/22/scala实战:迁移文件/ 前因最近因为线上文件越来越多,导致磁盘不够用。需要将磁盘上数据迁移到一块新的磁盘上(不用问为啥没用云存储,因为用了的话就不会有这篇文章了)。迁移数据时遇到几个问题: 迁移过程中服务不能中断 因为磁盘文件较大,文件移动耗费时间较长……等co

Alpakka Kafka,反应式Kafka客户端

Alpakka Kafka 是一个要用于 Java 和 Scala 语言的开源的流感知和反应式集成数据线项目。它建立在 Akka Stream之上,提供了 DSL 来支持反应式和流式编程,内置回压功能。Akka Streams 是 Reactive Streams 和JDK 9+ java.util.concurrent.Flow 的兼容实现,可无缝地与其进行互操作。 要使用 Alpakka Ka

Akka实战:HTTP大文件断点上传、下载,秒传

访问:https://github.com/yangbajing/scala-applications/tree/master/file-upload 获取本文所述完整源码,包括Akka HTTP后端和HTML5实现的前端。 在很多应用里面都会有类似大文件上传的需求,但很多时候我们程序员都会以不支持或不好实现将其推脱掉^_^。 这次因为公司项目需要,另一个组的同事使用Spring实现了一版。他们是

测试:Akka HTTP路由

上一篇文章简单介绍了 ScalaTest,这篇将从一个实例入手介绍在项目中怎样应用 ScalaTest 来应用测试驱动的开发。 Akka HTTP这里我们将使用 Akka HTTP来开发一个很简单的业务应用:组织管理。它只有一个数据模型,Org。组织支持树型结构,所有每个 org 里面都可以有一个可选 parent 属性来指向父组织,若没有则代表此 org 是个一级组织。Org 的数据模型如下:

测试:使用scalatest

ScalaTest通过简单、清晰的测试和可执行的规范来提高团队的生产力,同时改进代码和沟通效率。 ScalaTest是Scala生态系统中最灵活、最流行的测试工具。支持测试:Scala、Scala.js(Javascript)和Java代码。可与JUnit、TestNG、Ant、Maven、sbt、ScalaCheck、JMock、EasyMock、Mockito、ScalaMock、Seleni

学习Scala:环境、工具、工程

在本章中,你将学到如何从零使用Sbt来搭建一个Scala工程,如何将Scala工程导入Intellij IDEA集成开发环境。同时,我们将使用scalatest以TDD的方式来编写代码。 本章的要点包括: 下载并使用sbt: http://www.scala-sbt.org/ 使用Intellij IDEA编写Scala:https://www.jetbrains.com/idea/ 使用sca

Akka HTTP 快速上手

Akka Http 是Akka社区提供的一个 Http服务端/客户端通用工具包,支持 Http 1.0/1.1标准及WebSocket,现在 Http 2 的支持也在紧锣密鼓的实现中。 这篇文章将介绍Akka HTTP Server,我们将介绍Akka Http的常用功能模块及使用方式。Akka Http提供了一套强大、易用、易扩展的route dsl来构建路由。Akka Http Client因

Java/Scala互操作实践 1:基础操作

本文将以Spring Boot为例,介绍下实际工作中的Java/Scala互操作。在提高个人效率、满足自我追求的情况下更多的照顾到团队不同人的实际。同时也是想说明,在同一个工程里混用Java和Scala语言是可能的。 本文源代码在:http://git.oschina.net/hualongdata/spring-starter 对于Scala不熟悉的Java程序员可以先看看:《写给Java程序

Scala开发者的Spring-Boot快速上手指南 02:Scala惯用法

(这是一篇迟来的文章,从3月份计划到成文花了5个月多……以后需要避免这样的低效率。) 之前写第一篇文章时,只是想试试在Spring中使用Scala。但现在随着工作的需要,已经决定在应用层基于Spring boot进行开发。后面的数据服务和数据整合部分将采用Akka。作者是一个Scala粉,但不脑残。鉴于团队、招人及社区生态多方面考虑,整体使用Scala技术栈还是比较困难的。之前就有考虑过把Spri

Scala实战:巧用集合实现数据脱敏

(原文在:《http://www.yangbajing.me/2016/07/25/Scala实战:巧用集合实现数据脱敏》,转载请注明!) 在日常开发中,经常会遇到对数据进行脱敏处理的需求。像隐藏身份证或者手机号中间几位。比如对于:13812345678这个手机号,我们会使用*号替换中间4位来达到隐藏的目的,就像这样:138****5678。这是一个很常见也很简单的功能需求,这里记录下开发中对这个

写给Java程序员的Scala入门教程

(原文链接:http://www.yangbajing.me/2016/07/24/写给java程序员的scala入门教程/,转载请注明) 之前因为Spark的引入,写了一篇《写给Python程序员的Scala入门教程》。那篇文章简单对比了Scala与Python的异同,并介绍了一些Scala的常用编程技巧。今天这篇文章将面向广大的Java程序员,带领Javaer进入函数式编程的世界。 Java

Scala实战:使用Actor来控制集成API的并发请求

本文源码在:https://github.com/yangbajing/scala-applications/tree/master/combine-request 背景最近在一些大数据相关工作,除了自身的数据外,我们也会接入很多外部的第3方数据。这些第3方数据提供商都提供了基于HTTP的服务。当然,这些数据是收费的。而且重复调用是需要重复收费的。这就需要我们在调用数据后把它存储下来,这样在一定时

Scala开发者的Spring-Boot快速上手指南 01

做为一个Scala爱好者,是很想基于 Lightbend 的一套架构进行软件开发的。Play,Akka,Scala,Spark……。不过理想很丰满,现实却很骨感。鉴于那批原教旨主义者,他们对 Spring 已经疯狂迷恋,我等讲道理、讲实际的人也只好将 Scala 与 Spring Boot 进行整合。这两兄弟是和睦的,是友好的,并不是有你无他,完全可以在能力和现实中实现一个美好的平衡。 (文章查考

Akka实战:开发一个多线程新闻爬虫

代码:https://github.com/yangbajing/crawler-service 使用Scala开发一个多线程爬虫,利用Akka库来管理多个爬虫任务的分散和聚合操作。同时使用scheduleOnce来设置爬取任务在指定时间内完成。详细需求如下: 可同时从多个新闻源(搜索引擎)检索新闻 已爬取过的新闻存库,第二次访问时直接从库里读取 提供duration参数,调用方可设置调用超时。

Scala实战:并发-Future和Promise

并发编程是很困难的,特别是在你没有很好的设计与抽像你的功能层次时。传统的并发解决方案是采用多线程和共享变量,这使得随着代码的增加你很难找到错误根源。 Scala中采用了更好的方案,它不是只基于更低层次的线程的。Scala为用户提供了更高级的抽象:Futures和Promises(Akka还提供了基于actor模式的编程范式,是一种更高层次的并发编程抽象。本文主要讲解Futures和Promises

Akka实战:构建REST风格的微服务

使用Akka-Http构建REST风格的微服务,服务API应尽量遵循REST语义,数据使用JSON格式交互。在有错误发生时应返回:{"errcode":409,"errmsg":"aa is invalid,the ID is expected to be bb"}类似的JSON错误消息。 代码: https://github.com/