SpringCloudAlibaba微服务远程调用之Nacos篇—Nacos的安装、服务注册、服务集群配置、配置负载均衡策略、配置命名空间与非临时实例、nacos集群配置、nacos与feign的结合

目录

目录

一、基础项目导入

1. 源代码拉取

​2.环境搭建

3.创建对应数据库 

4.项目检验

二、nacos的安装启动和项目引入nacos的依赖以及服务服务注册

1.安装启动nacos

2.nacos服务注册

2.1在cloud-demo父工程的pom文件中添加spring-cloud-alilbaba的管理依赖:

2.2分别在order和user的pom文件添加nacos的客户端依赖

2.3 修改user-service&order-service中的application.yml文件(用于服务注册和发现)配置服务注册数据,和服务访问地址

​编辑 2.4启动并测试

三、Feign的导入实现远程服务调用

1.导入项目依赖

2. 在order-service的启动类添加@EnableFeignClients注解开启Feign的功能

3.定义和使用Feign客户端

3.1创建client包,并在包下创建openfeign远程调用接口UserClient

 3.2调用创建的openfeign接口完成远程调用

​编辑 3.3调用接口查看返回数据结果

四、配置服务集群以及集群的负载均衡设置

1.配置服务集群属性

 1.1修改User和Order的application.yml文件添加服务集群属性

​编辑 1.2创建多个UserApplication的启动实例(用于模拟集群)

1.3配置集群的负载均衡设置

​编辑

 1.4启动集群(这里采用分开启动,模拟多集群)

五、配置实例的命名空间和创建非临时实例

1.在nacos中创建命名空间获取命名id

2.修改order模块的application.yml文件添加对应的命名空间id进行分类,以及修改实例为非临时实例

3.重启服务,再在nacos中进行查看



前言:本文主要是通过结合实例进行针对nacos的安装,项目、环境、服务集群。nacos集群的配置,以及如何使用nacos并通过RestTemplate或者使用openfeign实现服务的远程调用,废话不多说,直接开始

一、基础项目导入

 (本章节主要是为了想通过本编文章对nacos进行初步学习和上手操作从而提供的的基础项目,导入和项目框架进行讲解,以及基础项目的环境配置和数据库设置,有自己的项目和只想查询Nacos服务的具体应用请跳跃本章节)

1. 源代码拉取

这里提供基础的项目gitee源码(下面的内容将根据此demo项目进行一步步开发与讲解)https://gitee.com/cooldownxy/cloud-demo(基础框架项目源码在foundation分支中) 

​2.环境搭建

2.1拉取项目后项目文件结构如下图所示:

 2.2自行配置两个项目模块(order和service)的数据库相关信息(自己的数据库名称以及密码)

order服务端的数据库

user服务端的数据库 

3.创建对应数据库 

order服务对应数据库的建表语句(表名:cloud_order)

/*

 Navicat Premium Data Transfer

 Source Server         : local

 Source Server Type    : MySQL

 Source Server Version : 50622

 Source Host           : localhost:3306

 Source Schema         : heima

 Target Server Type    : MySQL

 Target Server Version : 50622

 File Encoding         : 65001

 Date: 01/04/2021 14:57:18

*/

SET NAMES utf8mb4;

SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------

-- Table structure for tb_order

-- ----------------------------

DROP TABLE IF EXISTS `tb_order`;

CREATE TABLE `tb_order`  (

  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '订单id',

  `user_id` bigint(20) NOT NULL COMMENT '用户id',

  `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品名称',

  `price` bigint(20) NOT NULL COMMENT '商品价格',

  `num` int(10) NULL DEFAULT 0 COMMENT '商品数量',

  PRIMARY KEY (`id`) USING BTREE,

  UNIQUE INDEX `username`(`name`) USING BTREE

) ENGINE = InnoDB AUTO_INCREMENT = 109 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

-- ----------------------------

-- Records of tb_order

-- ----------------------------

INSERT INTO `tb_order` VALUES (101, 1, 'Apple 苹果 iPhone 12 ', 699900, 1);

INSERT INTO `tb_order` VALUES (102, 2, '雅迪 yadea 新国标电动车', 209900, 1);

INSERT INTO `tb_order` VALUES (103, 3, '骆驼(CAMEL)休闲运动鞋女', 43900, 1);

INSERT INTO `tb_order` VALUES (104, 4, '小米10 双模5G 骁龙865', 359900, 1);

INSERT INTO `tb_order` VALUES (105, 5, 'OPPO Reno3 Pro 双模5G 视频双防抖', 299900, 1);

INSERT INTO `tb_order` VALUES (106, 6, '美的(Midea) 新能效 冷静星II ', 544900, 1);

INSERT INTO `tb_order` VALUES (107, 2, '西昊/SIHOO 人体工学电脑椅子', 79900, 1);

INSERT INTO `tb_order` VALUES (108, 3, '梵班(FAMDBANN)休闲男鞋', 31900, 1);

SET FOREIGN_KEY_CHECKS = 1;

service服务建表语句 (表名:cloud_user)

/*

 Navicat Premium Data Transfer

 Source Server         : local

 Source Server Type    : MySQL

 Source Server Version : 50622

 Source Host           : localhost:3306

 Source Schema         : heima

 Target Server Type    : MySQL

 Target Server Version : 50622

 File Encoding         : 65001

 Date: 01/04/2021 14:57:18

*/

SET NAMES utf8mb4;

SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------

-- Table structure for tb_user

-- ----------------------------

DROP TABLE IF EXISTS `tb_user`;

CREATE TABLE `tb_user`  (

  `id` bigint(20) NOT NULL AUTO_INCREMENT,

  `username` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '收件人',

  `address` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '地址',

  PRIMARY KEY (`id`) USING BTREE,

  UNIQUE INDEX `username`(`username`) USING BTREE

) ENGINE = InnoDB AUTO_INCREMENT = 109 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

-- ----------------------------

-- Records of tb_user

-- ----------------------------

INSERT INTO `tb_user` VALUES (1, '柳岩', '湖南省衡阳市');

INSERT INTO `tb_user` VALUES (2, '文二狗', '陕西省西安市');

INSERT INTO `tb_user` VALUES (3, '华沉鱼', '湖北省十堰市');

INSERT INTO `tb_user` VALUES (4, '张必沉', '天津市');

INSERT INTO `tb_user` VALUES (5, '郑爽爽', '辽宁省沈阳市大东区');

INSERT INTO `tb_user` VALUES (6, '范兵兵', '山东省青岛市');

SET FOREIGN_KEY_CHECKS = 1;

4.项目检验

完成上面三步后,就完成了基础项目搭建,启动两个项目模块,调用对应服务接口检验项目正确性

order模块的商品查询功能

user模块的用户查询功能

检验结果如上图所示,恭喜你完成了基础项目模块搭建,接下来进入正题!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值