基于K8s技术构建通用的区块链方案 译文

译者 | 陈峻审校 | 云昭本文简要展示了如何使用Kubernetes和微服务架构,来构建一个具有复杂功能的加密支付应用的示例。Kubernetes已在当前各类Web应用中得到了广泛使用。那么,开发者

基于K8s技术构建通用的区块链方案 译文

译者 | 陈峻

审校 | 云昭

本文简要展示了如何使用Kubernetes和微服务架构,来构建一个具有复杂功能的加密支付应用的示例。Kubernetes已在当前各类Web应用中得到了广泛使用。那么,开发者想过它是否可以被应用到加密支付类型的应用开发之中呢?下面,我将向开发者展示如何使用Kubernetes技术,构建通用的区块链应用解决方案的过程。通过调整,该方案也可以被用于其他行业的应用场景中。

涉及到的技术

该项目在初期虽然预算有限,但是在被客户认可后,为了定期向投资人演示新功能的开发进展,我们进行了持续迭代。下面便是我们使用到的技术:

  • Node JS(NestJS框架)
  • PostgreSQL数据库
  • Kafka JS
  • Kubernetes(K8s)+ Helm charts
  • Flutter
  • React

开发过程

在第一阶段,我们的主要目的是将待开发的应用,拆分并创建为如下六个微服务:1.管理微服务2.核心微服务3.支付微服务4.邮件和通知服务5.Cron任务服务6.Webhooks微服务

值得一提的是,这六个微服务是专为本区块链应用示例而创建的。如果开发者的应用在本质上不尽相同,则可以使用相同的技术,按需设计出不同的微服务。

接着,让我们来看看如何在NestJS上构建这些微服务。由于我们需要针对Kafka消息的代理,来配置相关的选项,因此我们为所有微服务的公共模块和配置,创建了一个共享的资源文件夹。

1.微服务的配置选项

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}}});

原创文章,作者:币圈吴彦祖,如若转载,请注明出处:https://www.kaixuan.pro/news/439886/