当前位置: 首页 > news >正文

模板板网站/seo外链发布

模板板网站,seo外链发布,广州网站推广教程,网站建设方法📚 目录 项目背景与准备 Docker部署Nacos并配置MySQL持久化 微服务注册到Nacos(item-service示例) 微服务服务发现与调用(cart-service示例) 小结 1. 项目背景与准备 在微服务架构中,服务注册与发现是…

📚 目录

  1. 项目背景与准备

  2. Docker部署Nacos并配置MySQL持久化

  3. 微服务注册到Nacos(item-service示例)

  4. 微服务服务发现与调用(cart-service示例)

  5. 小结


1. 项目背景与准备

在微服务架构中,服务注册与发现是基础能力,能帮助我们动态管理服务节点,实现高可用、动态扩展。

Nacos 是阿里巴巴开源的一款集注册中心和配置中心功能于一体的中间件。
为了快速搭建环境,本项目采用 Docker 来部署 Nacos,并通过外部 MySQL 实现数据持久化。

准备工作:

  • 已安装 Docker、Docker Compose

  • 已部署好 MySQL 容器

  • 准备好 nacos 初始化SQL文件(资料中提供)


2. Docker部署Nacos并配置MySQL持久化

2.1 初始化MySQL数据库

首先,需要在 MySQL 中创建 nacos 专用数据库,并导入官方提供的SQL脚本,初始化表结构。

操作示例(进入MySQL容器或主机执行):

mysql -u root -p
CREATE DATABASE nacos CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
USE nacos;
SOURCE /path/to/nacos-mysql.sql;

✅ 成功后,nacos数据库中将包含多个用于注册和配置管理的表。


2.2 配置custom.env环境变量

为了让 Nacos 连接到我们的 MySQL,需要准备好 custom.env 文件,内容如下:

# 启动模式
MODE=standalone# 优先使用hostname进行服务注册
PREFER_HOST_MODE=hostname# 数据源配置
SPRING_DATASOURCE_PLATFORM=mysql
MYSQL_SERVICE_HOST=192.168.100.100
MYSQL_SERVICE_PORT=3306
MYSQL_SERVICE_DB_NAME=nacos
MYSQL_SERVICE_USER=root
MYSQL_SERVICE_PASSWORD=123456
MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai

注意事项:

  • MYSQL_SERVICE_HOST 需要填写你的 宿主机IP地址(示例用 192.168.100.100)。

  • 保证你的 MySQL 可以被外部容器访问,且 nacos库已初始化完成。


2.3 上传nacos目录至虚拟机

将资料中的 nacos/ 文件夹(含 custom.env)上传到你的虚拟机 /root/ 目录:

scp -r nacos/ root@192.168.100.100:/root/

2.4 通过Docker运行Nacos

进入 /root 目录,执行Docker命令启动Nacos容器:

docker run -d \
--name nacos \
--env-file ./nacos/custom.env \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
--restart=always \
nacos/nacos-server:v2.1.0-slim

参数说明:

  • --env-file:加载环境变量配置文件。

  • -p:端口映射,8848是控制台端口。

  • --restart=always:容器异常自动重启。


2.5 验证Nacos部署

浏览器访问:

http://192.168.100.100:8848/nacos/

首次访问会跳转到登录界面:

  • 账号:nacos

  • 密码:nacos

✅ 登录成功后,进入Nacos控制台!


3. 微服务注册到Nacos(item-service示例)

item-service 微服务为例,演示如何注册到Nacos。


3.1 引入Nacos Discovery依赖

pom.xml 添加依赖:

<!-- Nacos 服务注册与发现 -->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

3.2 配置application.yml

spring:application:name: item-servicecloud:nacos:server-addr: 192.168.100.100:8848
server:port: 8081

3.3 启动多个实例模拟负载均衡

分别启动 item-service 的两个实例,可以分别配置端口为 8081 和 8082。

启动后,在 Nacos 控制台可以看到 item-service 服务的两个实例注册成功。


4. 微服务服务发现与调用(cart-service示例)

演示 cart-service 如何通过 Nacos 发现并调用 item-service。


4.1 引入依赖

cart-servicepom.xml 中添加:

<!-- Nacos 服务注册与发现 -->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

4.2 配置application.yml

spring:cloud:nacos:server-addr: 192.168.100.100:8848
server:port: 8085

4.3 使用DiscoveryClient进行服务发现

在 cart-service 中注入 DiscoveryClient

@Autowired
private DiscoveryClient discoveryClient;

实现基于服务名的动态调用:

List<ServiceInstance> instances = discoveryClient.getInstances("item-service");
ServiceInstance instance = instances.get(new Random().nextInt(instances.size()));
String url = instance.getUri() + "/items";
RestTemplate restTemplate = new RestTemplate();
String response = restTemplate.getForObject(url, String.class);

✅ 这样每次调用可以随机访问 item-service 的不同实例,实现简单的负载均衡。


4.4 测试服务调用

使用 Postman 或 Swagger 发起请求,可以观察到负载均衡正常生效,分别路由到不同的 item-service 实例。


5. 小结

本文完整介绍了:

  • 如何使用 Docker 部署 Nacos 并连接外部 MySQL。

  • 如何让微服务注册到 Nacos。

  • 如何通过 DiscoveryClient 发现服务并实现简单负载均衡调用。

✅ 通过本教程,可以初步搭建起基于 Nacos 的微服务注册与发现体系!

http://www.whsansanxincailiao.cn/news/31966626.html

相关文章:

  • 品牌营销策划师/惠州关键词排名优化
  • 网站导航栏的作用/永久免费用的在线客服系统
  • 标准化建设考评网站/优化搜狗排名
  • 建网站问题/微信上怎么做广告推广
  • 做讲课ppt的网站/关于seo的行业岗位有哪些
  • vs网站开发实例/网站搜索量查询
  • 网站开发设计需求文档/武汉网站建设优化
  • 动漫制作专业有本科吗/优化设计七年级下册数学答案
  • 网站开发的编程语言/网络推广是什么意思
  • 重庆免费自助建站模板/营销案例分析
  • 肯德基网站建设/怎样宣传自己的产品
  • 重庆市建设工程施工安全网/杭州seo排名收费
  • 免费建站哪里找/怎么做网站推广和宣传
  • 网站建设一条龙/淘宝客推广一天80单
  • 亚马逊网站运营怎么做/新手seo要学多久
  • 做网站制作怎么样/seo网站优化价格
  • 工业设计企业/百度小程序seo
  • 提供武汉手机网站建设/app推广注册赚钱
  • 微信公众官网登录/杭州seo
  • 赚钱网站源码/东莞网站公司排名
  • 免费注册建网站/关键词推广方法
  • 东营政府网站建设/网络营销渠道可分为哪些
  • 个人网站建设与企业网站/网络推广产品公司
  • b2b免费发布网站大全排名/站长论坛
  • 美食网站策划书/今日国内新闻大事20条
  • 公司网站的建设/网络建站工作室
  • 电子业网站建设/小红书推广策略
  • 可以做产品宣传的网站/如何创建一个网站
  • 宣传性网站建设策划方案/长沙网络营销咨询费用
  • 做企业免费网站哪个好些/网站访问量排行榜