Lottery 抽奖系统部署实战:Docker 安装 Nacos 注册中心并接入 Dubbo 服务注册
文档教程后端【免费下载链接】CodeGuide:books: 本代码库是作者小傅哥多年从事一线互联网 Java 开发的学习历程技术汇总旨在为大家提供一个清晰详细的学习教程侧重点更倾向编写Java核心内容。如果本仓库能为您提供帮助请给予支持(关注、点赞、分享)项目地址https://gitcode.com/gh_mirrors/code/CodeGuide点击查看免费下载导读本篇是《Lottery 分布式抽奖系统》部署环境系列的第 6 节实战指南讲解如何在 Docker 环境中安装部署 Nacos 注册中心并将本地 Lottery、Lottery-ERP 两个应用服务的 Dubbo 从原来的直连方式和广播模式切换为注册到 Nacos 的分布式服务发现模式。读完本文你将掌握基于 Docker 快速拉起 Nacos 2.0.3 单机版、登录控制台验证、以及把 Dubbo 服务接入 Nacos 注册中心完成启动验证的完整实操链路。一、本节目标用 Nacos 替换 Dubbo 直连与广播模式Lottery 抽奖系统是一套以 DDD 领域驱动设计开发的微服务分布式架构系统技术栈覆盖 SpringBoot、MyBatis、Dubbo、MQ、MySQL、XDB-Router、ES、ZK 等详见 Lottery 项目面试汇总。在微服务之间Dubbo 这类 RPC 框架的通信效率高于 HTTP因此在中等规模以上的互联网系统中通常引入 RPC 框架解决微服务间通信问题。在引入 Nacos 之前Lottery 服务间的 Dubbo 调用采用直连方式和广播模式本节的目标就是在 Docker 环境安装 Nacos 2.0.3配置本地应用服务Lottery、Lottery-ERP把 Dubbo 注册到 Nacos启动服务验证注册中心的注册与使用是否正常。部署环境说明本节所在的 Part-5 是 Lottery 项目的整套云环境部署系列包含 在云服务器部署 Docker、部署 Redis、部署 Kafka、部署 MySQL、部署 xxl-job、本节 Nacos、以及 Elasticsearch/Kibana、canal 等共同支撑抽奖系统的分布式运行环境。二、Docker 环境安装 Nacos 2.0.31. 拉取镜像Nacos 官方在 Docker Hub 提供了nacos/nacos-server镜像执行docker pull nacos/nacos-server默认拉取的是latest标签本节部署验证使用的版本为 Nacos 2.0.3。若本地网络拉取 Docker Hub 镜像不稳定可先参考 Part-5 第 1 节中云服务器部署 Docker 时的镜像加速配置在云服务器部署 Docker在/etc/docker/daemon.json中配置registry-mirrors如阿里云、中科大、docker-cn 等国内镜像源后重启 Docker 再拉取{ registry-mirrors: [ https://0dj0t5fb.mirror.aliyuncs.com, https://docker.mirrors.ustc.edu.cn, https://6kx4zyno.mirror.aliyuncs.com, https://registry.docker-cn.com ] }2. 单机模式部署启动执行以下命令启动 Nacos 容器docker run -d -p 8848:8848 --env MODEstandalone --name nacos nacos/nacos-server命令参数说明如下参数作用-d后台运行容器daemon 模式-p 8848:8848将容器内 8848 端口映射到宿主机 8848 端口Nacos 服务端默认端口即 8848--env MODEstandalone以单机模式运行 Nacos。不设置该环境变量时Nacos 默认按集群模式启动会要求配置 MySQL 数据源与集群节点单机验证场景必须显式指定standalone--name nacos为容器命名便于后续docker logs nacos、docker stop nacos等运维操作启动后可用docker ps查看容器状态用docker logs -f nacos跟踪启动日志确认 Nacos 完成初始化后再进行控制台访问。三、控制台登录验证容器启动成功后本地访问控制台地址http://127.0.0.1:8848/nacos/默认账号与密码均为nacos。输入账号密码登录成功后即完成安装验证从登录页面可以看到两个值得注意的细节Nacos 官方定位为构建云原生应用的易用动态服务发现、配置和服务管理平台登录页醒目提示内部系统不可暴露到公网——在生产环境部署时Nacos 控制台应置于内网或通过安全网关访问不要直接暴露公网端口登录页顶部提供「首页」「文档」「博客」「社区」等导航与语言切换入口控制台本身即聚合了服务管理、配置管理、命名空间等核心运维功能后续在「服务管理 → 服务列表」中即可看到 Lottery、Lottery-ERP 注册上来的 Dubbo 服务实例。四、把 Lottery、Lottery-ERP 的 Dubbo 服务注册到 Nacos1. 注册中心接入思路在原来没有 Nacos 时Lottery 的 Dubbo 服务间调用依赖直连方式provider 地址写死和广播模式multicast 广播发现这两种方式在服务实例增多、多环境部署时都不利于动态扩缩容与配置维护。引入 Nacos 后Dubbo 的 provider 启动时把自己的服务元数据接口、版本、地址、端口注册到 Nacos 服务列表consumer 通过注册中心完成服务发现与路由实现服务调用的解耦与自动化管理。这也是 Part-5 部署环境系列逐步引入的分布式技术栈之一与 Redis、Kafka、xxl-job 一样Nacos 承担了分布式体系中注册中心这一环让抽奖、发奖等微服务之间可以按名称发现彼此。2. 应用侧配置要点在本地应用服务Lottery、Lottery-ERP中需要把 Dubbo 的注册中心配置从直连/广播改为 Nacos 地址注册中心地址指向本机 Nacosnacos://127.0.0.1:8848若 Nacos 部署在云服务器则替换为服务器内网/公网 IPprovider 与 consumer 两侧均需接入同一注册中心才能完成服务发现修改配置后重启服务进入 Nacos 控制台「服务管理 → 服务列表」即可看到对应的 Dubbo 服务实例完成注册验证。关于 Nacos Dubbo 的引入方式Lottery 项目同门的大营销平台系列在 引入NacosDubbo框架 一节中有完整的模型讲解与对接实践可作为配置 Dubbo 注册中心的参照该系列中 Dubbo 的yml配置还可以将 nacos 注册改为N/A屏蔽注册中心、便于本地快速联调见 xxl-job 分布式任务调度 中的说明这一技巧同样适用于 Lottery 本地开发场景。3. 启动验证完成配置后按以下顺序验证确认 Nacos 容器处于运行状态docker ps控制台可正常登录启动 Lottery、Lottery-ERP 服务观察启动日志中 Dubbo 服务是否成功注册到nacos://127.0.0.1:8848刷新 Nacos 控制台服务列表确认服务的 provider 实例数大于 0调用一次跨服务 Dubbo 接口如抽奖流程中需要调用其他微服务的场景确认 consumer 能从 Nacos 正常发现并调用 provider。五、常见问题与运维排障结合 Part-5 系列如 在云服务器部署 Docker的部署经验本节实践中容易踩的坑集中在以下几点镜像拉取失败报error response from daemon: Get https://registry-1.docker.io/v2/时按上文配置daemon.json镜像加速源并重启 Docker 后重试容器启动后控制台打不开检查 8848 端口是否被占用、-p 8848:8848端口映射是否生效云服务器场景还需确认安全组/防火墙放行 8848 端口未指定 MODE 导致启动异常漏掉--env MODEstandalone时 Nacos 会按集群模式启动并依赖外部 MySQL单机验证必须保留该环境变量服务注册不上确认应用配置的 Nacos 地址、端口与容器映射一致且服务启动完成后再到控制台刷新服务列表安全注意控制台默认账号nacos/nacos仅适合本地验证部署到有公网访问的环境时务必修改默认密码并遵循登录页内部系统不可暴露到公网的提示收敛访问入口。六、小结本节完成了 Lottery 分布式抽奖系统部署环境的关键一环通过docker pull nacos/nacos-serverdocker run -d -p 8848:8848 --env MODEstandalone --name nacos nacos/nacos-server两条命令拉起 Nacos 2.0.3 注册中心以http://127.0.0.1:8848/nacos/账号/密码nacos/nacos验证控制台可用再把 Lottery、Lottery-ERP 的 Dubbo 服务从直连和广播模式切换为 Nacos 注册发现实现了微服务间的动态服务注册与发现。结合 Part-5 系列中 Docker、Redis、Kafka、MySQL、xxl-job 等环境的陆续就位抽奖系统的分布式部署环境便基本成型可以支撑后续多实例部署与服务间 RPC 调用的完整验证。赞分享文档教程后端【免费下载链接】CodeGuide:books: 本代码库是作者小傅哥多年从事一线互联网 Java 开发的学习历程技术汇总旨在为大家提供一个清晰详细的学习教程侧重点更倾向编写Java核心内容。如果本仓库能为您提供帮助请给予支持(关注、点赞、分享)项目地址https://gitcode.com/gh_mirrors/code/CodeGuide点击查看免费下载相关推荐CANN/GE模型描述创建接口aclmdlCreateDesca nameZH CN_TOPIC_0000001312481317 /a 产品支持情况a namesectio人工智能深度学习模型编译模型优化编译器AscendApache Dubbo-go服务注册中心对比Nacos vs Zookeeper vs EtcdApache Dubbo go服务注册中心对比Nacos vs Zookeeper vs Etcd 在构建微服务架构时选择合适的服务注册中心是至关重要的决策后端RPC框架微服务Kratos Nacos Registry 注册中心接入指南服务注册、发现与源码原理深度解析Kratos Nacos Registry 注册中心接入指南服务注册、发现与源码原理深度解析 导读 本文围绕 Kratos 微服务框架的官方 Nacos 注册后端微服务RPC框架Web框架云原生创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →