使用 Nocalhost 开发 Rainbond 上的微服务应用

简介: 本文将介绍如何使用 Nocalhost 快速开发 Rainbond 上的微服务应用的开发流程以及实践操作步骤。Nocalhost 可以直接在 Kubernetes 中开发应用,Rainbond 可以快速部署微服务项目,无需编写Yaml,Nocalhost 结合 Rainbond 加速我们的微服务开发效率。

本文将介绍如何使用 Nocalhost 快速开发 Rainbond 上的微服务应用的开发流程以及实践操作步骤。

Nocalhost 可以直接在 Kubernetes 中开发应用,Rainbond 可以快速部署微服务项目,无需编写Yaml,Nocalhost 结合 Rainbond 加速我们的微服务开发效率。

一. 简介

Nocalhost[1] 是一款开源的基于 IDE 的云原生应用开发工具:

  • 直接在 Kubernetes 集群中构建、测试和调试应用程序
  • 提供易于使用的 IDE 插件(支持 VS Code 和 JetBrains),即使在 Kubernetes 集群中进行开发和调试,Nocalhost 也能保持和本地开发一样的开发体验
  • 使用即时文件同步进行开发: 即时将您的代码更改同步到远端容器,而无需重建镜像或重新启动容器。

Rainbond[2] 是一款云原生应用管理平台:

  • 使用简单,不需要懂容器、Kubernetes和底层复杂技术,支持管理多个Kubernetes集群,和管理企业应用全生命周期。主要功能包括应用开发环境、应用市场、微服务架构、应用交付、应用运维、应用级多云管理等。

二. 本地 + Rainbond 开发微服务

以前我们在本地 + Rainbond 开发微服务时,要开发的模块我们运行在本地,其他模块运行在 Rainbond 上,我们通过 Rainbond 的网关与本地进行通信、联调。

19.png

这样会遇到一些问题:

  • 多人协作开发联调困难
  • 本地环境差异化
  • 无法通过注册中心(Nacos)调用其他微服务
  • 远程Debug较难
  • 受限于本地资源

三. 使用 Nocalhost + Rainbond 开发微服务

现在我们通过 Nocalhost + Rainbond 开发微服务时,所有服务都运行在 Rainbond 上,当要开发时本地 Vscode 直连到 Rainbond 组件中,并与本地代码实时同步到 Rainbond 组件中。多人开发联调时,可通过 Rainbond 内置的 Service Mesh 进行服务之间联调。

18.png

使用 Nocalhost 开发,可以解决本地开发时遇到的问题:

  • 多人联调开发更便捷
  • 服务都运行在 Rainbond 上,不再受限于本地
  • 与生产环境更接近
  • 远程Debug
  • 通过注册中心(Nacos)调用其他微服务组件

四. 实践操作步骤

Nocalhost 目前支持两种开发模式:

  • Repliace DevMode
  • Duplicate DevMode

本篇将主要介绍 Replace DevMode,当进入 Replace DevMode 时,Nocalhost 会对 组件 执行以下操作:

  1. 将副本数缩减为 1
  2. 替换容器的镜像为开发镜像
  3. 增加一个 sidecar 容器。
  4. 转发一个本地端口到文件同步服务器。
  5. 启动本地文件同步客户端。
  6. 打开远程终端。

4.1 安装 Nocalhost 插件

Nocalhost 支持 VScodeJetBrains ,这里我们主要介绍 VScode 插件安装[3]参考官网文档。

  1. 打开 VScode,点击左侧的 Extension 按钮图标
  2. 在搜索框中输入 Nocalhost 选择 Nocalhost 插件,并点击 Install 按钮

3.png

4.2 安装 Rainbond

我们选择 基于主机安装 Rainbond[4]

4.3 Nocalhost 对接 Rainbond 集群

  1. 获取 kubeconfig 文件,进入 Rainbond 集群视图 -> 点击节点配置 -> kubeconfig

4.png

  1. 我们将 kubeconfig 文件复制到本地并保存为 yaml 文件。
  2. 打开 Vscode,点击按钮 ,打开 Nocalhost 插件,选择 Connect to Cluster,选择我们 kubeconfig 文件的路径,点击 Add Cluster,添加集群。
  3. 添加完成后,如下图:

5.png

4.4 在 Rainbond 上部署 Spring Cloud 微服务

  1. 这里选择从开源应用商店安装 Spring Cloud Pig 微服务组件,在应用商店中搜索 Pig 进行安装。
  2. 部署完成后,效果如下:

8.png

4.5 进入 Nocalhost 开发模式

上面我们已经在本地 Vscode 中对接好了集群,并且也已经在 Rainbond 中安装了 Spring Cloud Pig 微服务,那么接下来我们在本地 Vscode 中选择其中一个组件进行开发,这里为了效果更明显,选择开发 pig-ui 组件。

Spring Cloud Pig 后端[5]

Spring Cloud Pig 前端[6]

4.5.1 克隆 Pig-ui 代码到本地

git clone https://gitee.com/zhangbigqi/pig-ui

4.5.2 启动本地开发

打开 Vscode,点击按钮 ,找到我们的 Pig-ui 组件,由于该应用是从开源应用商店中安装,Deployment名称是自动生成的字符串,我们需要在组件中查询下。

9.png10.png

我们点击旁边的🔨进入开发模式,

  1. 提示选择容器,我们选择 gred5f1c 这个容器,剩下那个容器是 Rainbond 的 Mesh 容器,用于内部通信,不可替换
  2. 提示指定源代码目录,选择我们刚刚克隆下来的代码目录。
  3. 等待片刻后,会默认打开远端容器的终端界面并且容器内的文件会与本地实时同步,如下:

11.png

4.5.3 启动项目

  1. 安装项目依赖,执行

npm install

  1. 运行项目

npm run dev

启动后效果如下,容器内端口为 80

13.png

  1. 开启端口转发,点击按钮 ,找到我们的 Deployment,右键选择 Port Forward,Add Port Forward,输入 38000:80 将容器的80端口转发到本地的38000端口。

14.png

  1. 通过 http://localhost:38000 可以访问到页面,并且也可以正常登录。

15.png

4.5.4 修改代码查看效果

上面已经演示了如果通过本地访问到远端容器内的服务,接下来我们修改代码看下效果。

修改 src/page/wel.vue,新增一段代码,保存。可以发现,当我们保存的时候,终端中就自动重启了,与本地开发效果一致。

文件的修改会实时同步到容器中。

16.png

刷新页面http://localhost:38000,可以看到修改的内容已生效。

17.png

写在最后

通过以上的实践步骤,我们已经可以通过 Nocalhost 开发 Rainbond 上的微服务应用,摆脱本地开发,进入云原生快速开发,提升我们的开发效率。

本文仅介绍了基本的开发,还可以为项目配置 Nocalhost开发配置[7] 等等,小伙伴们可以自行探索。

参考资料

[1]

Nocalhost: https://nocalhost.dev

[2]

Rainbond: https://www.rainbond.com/docs

[3]

VScode 插件安装: https://nocalhost.dev/docs/installation

[4]

基于主机安装 Rainbond: https://www.rainbond.com/docs/installation/install-with-ui/host-install-with-ui

[5]

Spring Cloud Pig 后端: https://gitee.com/zhangbigqi/pig

[6]

Spring Cloud Pig 前端: https://gitee.com/zhangbigqi/pig-ui

[7]

Nocalhost开发配置: https://nocalhost.dev/docs/config/config-overview-en

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
人工智能 安全 Java
智慧工地源码,Java语言开发,微服务架构,支持分布式和集群部署,多端覆盖
智慧工地是“互联网+建筑工地”的创新模式,基于物联网、移动互联网、BIM、大数据、人工智能等技术,实现对施工现场人员、设备、材料、安全等环节的智能化管理。其解决方案涵盖数据大屏、移动APP和PC管理端,采用高性能Java微服务架构,支持分布式与集群部署,结合Redis、消息队列等技术确保系统稳定高效。通过大数据驱动决策、物联网实时监测预警及AI智能视频监控,消除数据孤岛,提升项目可控性与安全性。智慧工地提供专家级远程管理服务,助力施工质量和安全管理升级,同时依托可扩展平台、多端应用和丰富设备接口,满足多样化需求,推动建筑行业数字化转型。
518 5
|
人工智能 Java 数据库
飞算 JavaAI:革新电商订单系统 Spring Boot 微服务开发
在电商订单系统开发中,传统方式耗时约30天,需应对复杂代码、调试与测试。飞算JavaAI作为一款AI代码生成工具,专注于简化Spring Boot微服务开发。它能根据业务需求自动生成RESTful API、数据库交互及事务管理代码,将开发时间缩短至1小时,效率提升80%。通过减少样板代码编写,提供规范且准确的代码,飞算JavaAI显著降低了开发成本,为软件开发带来革新动力。
|
IDE Java API
Java 17 新特性与微服务开发的实操指南
本内容涵盖Java 11至Java 17最新特性实战,包括var关键字、字符串增强、模块化系统、Stream API、异步编程、密封类等,并提供图书管理系统实战项目,帮助开发者掌握现代Java开发技巧与工具。
807 0
|
人工智能 数据可视化 JavaScript
颠覆开发效率!国内首个微服务编排框架Juggle开源啦!
Juggle是国内首个开源的微服务编排框架,专注于解决企业微服务进程中接口重复开发、系统对接复杂等问题。它提供零代码、低代码和AI增强功能,通过可视化拖拽快速组装简单API为复杂接口,支持多协议、多语言脚本和流程多版本管理。相比国外框架如Conductor,Juggle更贴合国内需求,具备高效开发、企业级可靠性及信创适配等优势,助力企业实现敏捷创新与数字化转型。
1316 0
颠覆开发效率!国内首个微服务编排框架Juggle开源啦!
|
Cloud Native Serverless 流计算
云原生时代的应用架构演进:从微服务到 Serverless 的阿里云实践
云原生技术正重塑企业数字化转型路径。阿里云作为亚太领先云服务商,提供完整云原生产品矩阵:容器服务ACK优化启动速度与镜像分发效率;MSE微服务引擎保障高可用性;ASM服务网格降低资源消耗;函数计算FC突破冷启动瓶颈;SAE重新定义PaaS边界;PolarDB数据库实现存储计算分离;DataWorks简化数据湖构建;Flink实时计算助力风控系统。这些技术已在多行业落地,推动效率提升与商业模式创新,助力企业在数字化浪潮中占据先机。
907 12
|
Java API 微服务
Java 21 与 Spring Boot 3.2 微服务开发从入门到精通实操指南
《Java 21与Spring Boot 3.2微服务开发实践》摘要: 本文基于Java 21和Spring Boot 3.2最新特性,通过完整代码示例展示了微服务开发全流程。主要内容包括:1) 使用Spring Initializr初始化项目,集成Web、JPA、H2等组件;2) 配置虚拟线程支持高并发;3) 采用记录类优化DTO设计;4) 实现JPA Repository与Stream API数据访问;5) 服务层整合虚拟线程异步处理和结构化并发;6) 构建RESTful API并使用Springdoc生成文档。文中特别演示了虚拟线程配置(@Async)和StructuredTaskSco
1352 0
|
存储 NoSQL 关系型数据库
微服务——MongoDB的应用场景
随着Web2.0时代的到来,传统关系型数据库(如MySQL)在高并发读写、海量数据存储及高可扩展性需求方面逐渐力不从心。而MongoDB凭借其灵活的文档结构和高效性能,在社交、游戏、物流、物联网和视频直播等场景中表现出色。这些场景通常具有数据量大、写入频繁且对事务要求不高的特点。选择MongoDB适合以下情况:应用无需复杂事务与join支持、需求不确定需快速迭代、需处理高QPS读写或超大规模数据存储、追求高可用性和快速水平扩展能力。相比MySQL,MongoDB能以更低的学习、开发和运维成本满足现代应用需求。
572 0
|
人工智能 Java 数据处理
Java高级应用开发:基于AI的微服务架构优化与性能调优
在现代企业级应用开发中,微服务架构虽带来灵活性和可扩展性,但也增加了系统复杂性和性能瓶颈。本文探讨如何利用AI技术,特别是像DeepSeek这样的智能工具,优化Java微服务架构。AI通过智能分析系统运行数据,自动识别并解决性能瓶颈,优化服务拆分、通信方式及资源管理,实现高效性能调优,助力开发者设计更合理的微服务架构,迎接未来智能化开发的新时代。
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
995 6
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
538 1

热门文章

最新文章