目录
目录
二、nacos的安装启动和项目引入nacos的依赖以及服务服务注册
2.1在cloud-demo父工程的pom文件中添加spring-cloud-alilbaba的管理依赖:
2.2分别在order和user的pom文件添加nacos的客户端依赖
2.3 修改user-service&order-service中的application.yml文件(用于服务注册和发现)配置服务注册数据,和服务访问地址
2. 在order-service的启动类添加@EnableFeignClients注解开启Feign的功能
3.1创建client包,并在包下创建openfeign远程调用接口UserClient
1.1修改User和Order的application.yml文件添加服务集群属性
编辑 1.2创建多个UserApplication的启动实例(用于模拟集群)
2.修改order模块的application.yml文件添加对应的命名空间id进行分类,以及修改实例为非临时实例
前言:本文主要是通过结合实例进行针对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模块的用户查询功能
检验结果如上图所示,恭喜你完成了基础项目模块搭建,接下来进入正题!