主页

反应式的Spring

Spring从5.0开始拥抱反应式(Reactive)开发,通过Reactor和WebFlux来支持反应式的开发模式。有关反应式更多的内容可以阅读 《反应式宣言》 。反应式系统具有以下物质:即时响应性(Responsive)、回弹性(Resilient)、弹性(Elastic)以及消息驱动(Message Driven)。 对于这样的系统,我们称之为反应式系统(Reactive System)。这

Spring应用enum处理

原文地址:https://www.yangbajing.me/2019/04/17/spring应用enum处理/ 在Spring应用开发中,Java枚举(enum)默认都是使用字符串进行序列化/反序列化的。都通常我们都想将其序列化/反序列化为int值。 MyBatisMyBatis-plus提供了插件用于自定义enum的序列化/反序列化,非常方便。只需要在application.properti

Scala实战:迁移文件

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

DevOps实践:Gitlab、Jenkins

Wiki百科上对DevOps一词的解释:DevOps(Development和Operations的组合詞)是一种重视「软件开发人员(Dev)」和「IT运维技术人员(Ops)」之间沟通合作的文化、运动或慣例。 透过自动化「软件交付」和「架构变更」的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。 而Gitlab和Jenkins是我们在DevOps中常用的工具,本文将简单介绍下怎样搭配G

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实现了一版。他们是

微服务下的用户系统设计

简述微服务下的用户系统从设计与传统单体应用是不一样的,传统单体应用下本质上用户系统是一个模块。用户系统是与整个应用紧耦合在一起的,具体来说,它们共享一套代码、一个数据库、通过代码级的API调用…… 而微服务下的用户系统设计很不一样,因为微服务的特点,各功能都独立成一个Server在运行,那用户系统首先需要支持远程的API调用。基本来说,微服务下的用户系统设计需要满足以下要求: 独立的用户系统:用

测试: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

ETL里的34个子系统

ETL里的38种子系统和ETL里的34种子系统Ralph Kimball和Joe Caserta于2004年编写的《The Data Warehouse ETL Toolkit》一书系统的阐述了ETL这一概念及建设ETL系统的要点,将ETL从BI的一部分抽离了出来。随后,这本书里的一些思想形成了一篇文章《ETL里的38个子系统》,系统总结了ETL项目要面临的不同任务。我们还可以在网上找到原始的这篇

Nginx限流控制

最近公司给客户做的系统遇到大量爬虫爬取,造成系统资源消耗增高、系统响应降低…… 因为项目时间比较紧,没有更多时间在功能和代码层面上进行修改来上一套反爬虫系统。权衡以后决定使用Nginx提供的请求限流功能来实现一个简单的反爬虫机制。待以后再详细规划、设计反爬虫系统。 我们一直使用的是阿里发布的Nginx重发行版:Tengine,本文也将基于Tengine来介绍Nginx的限流控制。 ngx_http

Ambari2.6(HDP2.6.5)安装记要

本文介绍在 CentOS 7 环境下使用 Ambari2.5 (HDP2.6) 搭建大数据环境。 推荐使用如下脚本将 Ambari/HDP 相关软件包下到本地后配置 yum 源安装,在线安装速度太慢会经常遇到包找不到情况。 1234567891011nohup wget -c http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updat

Linux与Shell

Linux,你必需知道的磁盘、进程、内存 保存数据的磁盘 实际处理数据的进程 存储各种运行信息的内存 磁盘和文件Linux系统没有盘符的概念,它和所有类UNIX系统一样,有一个树型结构的文件系统。 123456789101112131415161718192021$ tree -d -L 1 //├── bin -> usr/bin├── boot├── dev├── etc├── ho

PostgreSQL从入门到不后悔

《PostgreSQL从入门到不后悔》 《PostgreSQL高可用:逻辑复制》 《PostgreSQL高可用 - PG 11集群》 安装 PostgreSQL 10下载 PostgreSQL 10,postgresql-10.1-3-linux-x64-binaries.tar.gz。下载地址:https://get.enterprisedb.com/postgresql/postgresq

Cassandra备份、恢复

备份和数据恢复关于镜像Cassandra 通过直接保存所有在data目录中的磁盘数据文件(SSTable file)的镜像来备份数据。当系统还在线的时候,你可以保存所有的keyspace数据或者单个keyspace数据,或者某一张表的数据。 使用并行的ssh工具,比如pssh,你可以给整个集群做镜像。这提供一种最终一致性备份。虽然没有一个节点可以在镜像制作过程中保证他和备份节点数据的一致性,Cas