nacos食用手册

    科技2024-03-17  88

    ##github上地址:nacos官方文档

    ##一、启动nacos服务器-- windown10 ###1、第一个异常:db.num is null (1)打开 带的sql 注入本地 mysql

    (2)配置 application.properties

    ###2、第二个异常:Unable to start embedded Tomcat (3)配置 startup.cmd,改为单机模式,standalone

    ###3、启动

    ##二、nacos 服务注册/发现 ###1、先统一定义版本号

    <!--版本统一定义--> <dependencyManagement> <dependencies> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2.2.3.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <!--这是一个工具模块,经常会跳回 1.5--> <!--锁定为1.8 防止jdk自动跳回 5--> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build>

    ###2、引入依赖

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

    ###3、配置yml文件:在模块中添加配置(注册到nacos中)

    spring: application: name: gulimall-coupon #定义注册时候的名字 datasource: driver-class-name: com.mysql.jdbc.Driver username: root password: root url: jdbc:mysql://192.168.56.10:3306/gulimall_sms cloud: nacos: discovery: server-addr: 39.106.88.67:8848 #注册到哪里(nacos地址)

    ###4、编写一个用于被远程调用的测试接口(优惠券模块中)

    // 创建一个用于测试的优惠券远程调用接口 @RequestMapping("/member/list") public R memberconpons(){ // 创建一个优惠券对象 CouponEntity couponEntity = new CouponEntity ( ); couponEntity.setCouponName ("满100减10"); return R.ok ().put ("coupons",Arrays.asList (couponEntity)); }

    ###5、编写一个远程调用的接口(会员模块中)

    package com.kk.gulimall.member.feign; import com.kk.common.utils.R; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.RequestMapping; // 这是一个声明式的远程调用 @FeignClient("gulimall-coupon") public interface CouponFeignService { // 测试 @RequestMapping("/coupon/coupon/member/list") R memberconpons(); }

    ###6、启动器指定扫描的远程调用接口包(会员模块中)

    /** * 调用远程服务需知: * 1、引入open-feign * 2、编写一个接口,告诉SpringCloud这个接口需要调用远程服务 * 声明接口的每个方法 调用了哪个远程服务的哪个请求 * 3、开启远程调用功能 */ @EnableFeignClients("com.kk.gulimall.member.feign") @SpringBootApplication @EnableDiscoveryClient public class GulimallMemberApplication { public static void main(String[] args) { SpringApplication.run (GulimallMemberApplication.class, args); } }

    ###7、注入,测试远程接口(会员模块中)

    // 注入远程服务接口 @Resource private CouponFeignService couponFeignService; // 测试远程调用的接口 @RequestMapping("/coupons") public R test(){ // 创建会员实体 MemberEntity memberEntity = new MemberEntity ( ); memberEntity.setNickname ("张三"); R memberconpons = couponFeignService.memberconpons ( ); return R.ok ().put ("member",memberEntity).put ("coupons",memberconpons.get ("coupons")); }

    ##三、使用nacos作为配置中心统一管理配置 ###1、引入依赖

    <!--nacos 配置中心做配置管理--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>

    ###2、创建一个配置文件 bootstrap.properties,填写模块名,和nacos地址

    spring.application.name=gulimall-coupon spring.cloud.nacos.config.server-addr=39.106.88.67:8848

    ###3、添加 nacos 管理配置中心注解

    @RefreshScope // 动态获取并刷新配置 @RestController @RequestMapping("coupon/coupon") public class CouponController {

    ###4、编写测试属性和接口

    @Value ("${coupon.user.name}") // 获取到配置 private String name; @Value ("${coupon.user.pass}") private Integer pass; // 用户测试nacos配置中心管理 @RequestMapping("/test") public R test(){ return R.ok ().put ("name",name).put ("pass",pass); }

    ###5、重启微服务,并且在 nacos 上面配置及测试 添加配置: 修改配置: 测试:

    ##四、

    Processed: 0.012, SQL: 8