nacos单机环境部署 windows

目录

一、下载nacos

二、修改配置,启动nacos

1.直接启动

2.后台启动

三、springcloud中配置nacos

代码目录结构

1.springcloud配置文件pom

2.order-nacos订单模块的配置

pom.xml

application.yml

3.stock-service库存模块的配置

4.代码

OrderApplication.java

OrderController.java

StockApplication.java

StockController.java

四、项目启动及运行


一、下载nacos

选择配套springcloud版本的的nacos下载

版本说明 · alibaba/spring-cloud-alibaba Wiki · GitHub

nacos单机环境部署 windows_第1张图片

 windows环境下选zip包。下载后解压。

二、修改配置,启动nacos

1.直接启动

进入解压后的bin目录,编辑startup.cmd,修改set MODE行,为set MODE="standalone",保存。

双击startup.cmd或者以管理员运行。

可以在bin/logs中查看日志,看是否启动成功。

2.后台启动

用nssm工具,将nacos安装为后台服务。nssm使用参考以下链接。

使用nssm工具将ES、Kibana、Logstash或者其他.bat文件部署为Windows后台服务的方法_nssm kibana_格格巫 MMQ!!的博客-CSDN博客

nacos单机环境部署 windows_第2张图片

 启动后输入地址访问。用户名密码均为nacos。

http://192.168.1.15:8848/nacos/index.html

三、springcloud中配置nacos

代码目录结构

nacos单机环境部署 windows_第3张图片

1.springcloud配置文件pom

项目整体配置确定springcloud版本,决定各个组件的版本。

只需关注即可,此处代替了

下面的模块是项目添加模块时自动添加的。



    4.0.0
    
        stock
        order
        stock-nacos
        order-nacos
    
    com.wind.springcloud
    alibaba
    0.0.1-SNAPSHOT
    alibaba
    springcloudalibaba
    pom
    
        1.8
        2.2.5.RELEASE
        2.3.11.RELEASE
         Hoxton.SR8
    

    
        
            org.springframework.boot
            spring-boot-starter
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

    
        
            
            
                com.alibaba.cloud
                spring-cloud-alibaba-dependencies
                ${spring.cloud.alibaba.version}
                pom
                import
            
            
            
                org.springframework.boot
                spring-boot-starter-parent
                ${spring.boot.version}
                pom
                import
            
            
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring.cloud.version}
                pom
                import
            

        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    


2.order-nacos订单模块的配置

pom.xml



    
        alibaba
        com.wind.springcloud
        0.0.1-SNAPSHOT
    
    4.0.0

    order-nacos

    
        
            org.springframework.boot
            spring-boot-starter-web
        
        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
        
    

application.yml

服务注册到nacos默认使用application name的值

server:
  port: 8020
spring:
  application:
    name: order-service
  cloud:
    nacos:
      server-addr: 127.0.0.1:8848
      discovery:
        username: nacos
        password: nacos
#        namespace: public #服务分类管理 默认public
#        ephemeral: false #永久实例 默认true 临时实例
#        service: 默认取${spring.application.name}
#        group: 更细的分类管理
#        weight: #负载均衡权重
#        metadata: 元数据 可以根据源码做扩展

3.stock-service库存模块的配置

pom.xml和订单模块一致,application.yml只需要port改为8021即可。

4.代码

OrderApplication.java

其中@LoadBalanced是nacos默认负载均衡调用。解析服务名获得ip,port

package com.wind.order;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;

/**
 * @author dongguanghui
 * @date 2023/5/15 17:51
 */
@SpringBootApplication
public class OrderApplication {

    public static void main(String[] args) {
        SpringApplication.run(OrderApplication.class,args);
    }

    @Bean
    @LoadBalanced
    public RestTemplate restTemplate(RestTemplateBuilder builder){
        RestTemplate restTemplate = builder.build();
        return restTemplate;
    }
}

OrderController.java

package com.wind.order.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

/**
 * @author dongguanghui
 * @date 2023/5/15 17:47
 */
@RestController
@RequestMapping("/order")
public class OrderController {

    @Autowired
    private RestTemplate restTemplate;

    @RequestMapping("/add")
    public String add(){
        System.out.println("下单成功");
        String msg = restTemplate.getForObject("http://stock-service/stock/reduct", String.class);
        return "order success!" + msg;
    }

}

StockApplication.java

package com.wind.stock;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;

/**
 * @author dongguanghui
 * @date 2023/5/15 17:51
 */
@SpringBootApplication
public class StockApplication {
    public static void main(String[] args) {
        SpringApplication.run(StockApplication.class,args);
    }
}

StockController.java

package com.wind.stock.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

/**
 * @author dongguanghui
 * @date 2023/5/15 17:47
 */
@RestController
@RequestMapping("/stock")
public class StockController {


    @Value("${server.port}")
    private String port;

    @RequestMapping("/reduct")
    public String reduct(){
        System.out.println("下单成功");
        return "reduct success!:"+port;
    }

}

四、项目启动及运行

项目启动后,服务注册到nacos。

nacos单机环境部署 windows_第4张图片

浏览器直接调用接口。可以看到后台通过服务名调用另一个服务成功

nacos单机环境部署 windows_第5张图片

你可能感兴趣的:(springcloud,java,spring,cloud)