合作机构:阿里云 / 腾讯云 / 亚马逊云 / DreamHost / NameSilo / INWX / GODADDY / 百度统计
译者 | 陈峻
审校 | 云昭
本文简要展示了如何使用Kubernetes和微服务架构,来构建一个具有复杂功能的加密支付应用的示例。 Kubernetes已在当前各类Web应用中得到了广泛使用。那么,开发者想过它是否可以被应用到加密支付类型的应用开发之中呢?下面,我将向开发者展示如何使用Kubernetes技术,构建通用的区块链应用解决方案的过程。通过调整,该方案也可以被用于其他行业的应用场景中。
该项目在初期虽然预算有限,但是在被客户认可后,为了定期向投资人演示新功能的开发进展,我们进行了持续迭代。下面便是我们使用到的技术:
在第一阶段,我们的主要目的是将待开发的应用,拆分并创建为如下六个微服务:1.管理微服务2.核心微服务3.支付微服务4.邮件和通知服务5.Cron任务服务6.Webhooks微服务
值得一提的是,这六个微服务是专为本区块链应用示例而创建的。如果开发者的应用在本质上不尽相同,则可以使用相同的技术,按需设计出不同的微服务。
接着,让我们来看看如何在NestJS上构建这些微服务。由于我们需要针对Kafka消息的代理,来配置相关的选项,因此我们为所有微服务的公共模块和配置,创建了一个共享的资源文件夹。
import { ClientProviderOptions, Transport } from '@nestjs/microservices';
import CONFIG from '@application-config';
import { ConsumerGroups, ProjectMicroservices } from './microservices.enum';
const { BROKER_HOST, BROKER_PORT } = CONFIG.KAFKA;
export const PRODUCER_CONFIG = (name: ProjectMicroservices): ClientProviderOptions => ({
name,
transport: Transport.KAFKA,
options: {
client: {
brokers: [`${BROKER_HOST}:${BROKER_PORT}`],
},
}
});
export const CONSUMER_CONFIG = (groupId: ConsumerGroups) => ({
transport: Transport.KAFKA,
options: {
client: {
brokers: [`${BROKER_HOST}:${BROKER_PORT}`],
},
consumer: {
groupId
}
}
});
TOP