加入Talkhouse家庭? |基于WEBRTC的同行,使用MERN堆栈构建peer语音,视频通话和消息传递网络应用程序
基于事件驱动的异步通信的微服务构建了使用Express,TypeScript,Nats-streaming和Next.js创建的电子商务应用
这是一个基于电子商务的Web应用程序,用于购买和销售基于微服务架构在城市周围发生的不同实时和有趣活动的门票。该应用程序分为多个单独的服务,这些服务通过事件总线通过发布事件相互交谈。每项服务都负责处理和实施应用程序的特定功能,例如Auth Service处理身份验证,订单处理订单,付款服务实施用户付款,所有这些服务都可以正常运行,并通过事件总线(NATS-Streaming)运行整个应用程序,并通过事件总线(NATS-Streaming)运行整个应用程序
使用微服务体系结构,而不依赖单片模式,使应用程序更耐用,容错,高度可用,并增加了应用程序的UP时间。因此,如果其中一项服务崩溃,则应用程序的其他部分仍将起作用并可用于用户。微服务和分布式系统是现代软件和后端工程的核心。
Next.js用于服务器端渲染和构建前端Express.js用于建造后端Mongodb作为数据库Mongoose作为ORMTypescript ,后端完全写在打字稿中,以防止在没有提示的情况下流动的事件数量时,您会遇到头痛StripeJest and Supertest测试DockerKubernetes用于Conatiner编排Skaffold命令行工具,可促进Kubernetes本地应用的持续开发。使使用和管理Kubernetes和不同的Kubernetes服务和部署变得更加容易。NATS Streaming被用作事件总线或消息队列,用于公开和处理不同服务发出的事件。Bull.js是一个快速且强大的队列系统。它用于实施付款到期计时器。该应用程序分为7个服务,可处理和实施应用程序的特定功能和功能:
auth处理整个应用程序身份验证和授权。使用基于JWT和Cookie的身份验证。expiration处理付款到期计时器,以确保用户在指定的时间范围内付款。orderspaymentstickets (创建,更新,获取)。该电子商务应用程序没有出售产品,而是出售城市周围发生的不同现场活动的门票。common所有常见功能,例如要求,错误处理以及其他服务共享的其他中间件和功能都将分组在一起。该服务作为NPM软件包发布,并安装在其他服务中。client处理和实现应用程序的前端。infra管理运行该应用程序的所有Kubernetes部署和服务(.YAML)文件每个服务,MogongoDB数据库和NATS-STREAMING SERVER都被停靠为Docker容器。 Docker Conatiners由各自的Kubernetes部署管理和精心策划。不同Kuberentes部署之间的通信受服务Objecttype的约束。最终,使用Ingress-Service,它使用Ingress-nginx(使用NGINX的Ingress Controller)作为反向代理,而负载平衡器将代理或直接输入请求在ticketing.dev hostname下向其各自的服务。 Skaffold用于通过使用Skaffold.yaml文件的单个命令skaffold dev启动和运行所有Kubernetes部署和服务。
在本地计算机上启动并运行该项目是一项众所周知的任务。它需要对Docker和Kubernetes生态系统的知识。如果您仍在应对挑战,或者没有生命,请尝试使它起作用。确保已安装了Docker,Kubernetes和Skaffold。设置所需的环境变量并运行以下命令:
skaffold dev
Boom应用程序将启动并运行,无需额外的设置和依赖项。
删除Skaffold部署的任何资源并停止运行所有部署,服务和容器
skaffold delete
只有在没有生命的情况下,尝试在本地进行跑步和测试。否则,我不是责怪你挠头的人吗?在试图理解这些服务驱动的交流中的微服务时,服务在服务中?