主页

PostgreSQL高可用:逻辑复制

《PostgreSQL从入门到不后悔》 《PostgreSQL高可用:逻辑复制》 《PostgreSQL高可用 - PG 11集群》 从PostgreSQL 10(以下简称PG)开始,PG支持逻辑复制能力,可实现仅复制部分表或PG服务器上的部分database。逻辑复制的一大优点是支持跨版本间复制,也不需要主从节点的操作系统和硬件架构相同。例如,我们可以实现一台Linux服务器上的PG 11和

Akka启用ssl和HTTP 2

Akka原生支持SSL、HTTPS、HTTP 2,本文记录下各SSL的使用配置。 X.509证书 公钥证书是解决身份问题的一种方法。若仅加密是可以建立一个安全的连接,但不能保证你正在与你认为正在与之通信的服务器通信。如果没有某种方法来验证远程服务器的身份,攻击者仍然可以将自己作为远程服务器,然后将安全连接转发到伪造的远程服务器。公钥证书就是用来解决这个问题的。 考虑公共密钥证书的最佳方法是使用护照

WS SSL快速起步 - lightbend SSL Config

原文:Quick Start to WS SSL 本文适用于需要通过 HTTPS 连接到远程 Web 服务而不想阅读整个手册的用户。如果需要设置 Web 服务或配置客户端身份认证,请阅读 Generating X.509 Certificates 。 通过 HTTPS 连接到远程服务器如果远程服务器正在使用一个由已知证书颁发机构签发的证书,那么WS应该在不进行任何额外配置的情况下即可正常工作。这里

Akka实战:再谈断点上传

去年的文章:《Akka实战:HTTP大文件断点上传、下载,秒传》 通过示例介绍了在Akka HTTP里怎样实现断点上传功能。通过一段时间的应用,发现了些问题,这篇文章再深入介绍下。在 https://github.com/yangbajing/scala-applications/tree/master/file-upload能找到完整的源码。 Nginx代理Nginx代理时默认会在Nginx端收

Firewall快速使用

基本使用查询状态1sudo firewall-cmd --zone=public --list-all 打开端口1sudo firewall-cmd --zone=public --permanent --add-port=3306/tcp --permanent选项设置匹配永久生效,但需要调用--reload使firewall重新加载配置使其马上生效。 使规则生效1sudo firewall-c

使用WebFlux与Reactor

注意empty会造成之后的所有转换操作不执行当Mono<T>的计算结果为empty时,在它之后添加的多个转换操作都不会被触发执行。有一些方法可以解决这个问题: 使用Optional<T>来包裹可能为空的数据类型。 1Mono<Optional<User>> findById(String userId); 使用.switchIfEmpty或.d

反应式的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 的数据模型如下: