irpas技术客

nacos入门案例_搞钱自律_nacos案例

网络投稿 6657

Nacos是什么 Nacos(拉扣s)是阿里巴巴公司开源的一个服务注册中心。功能等同Springcloud默认组件=Eureka(注册中心)+Config Server(配置中心) 环境要求 Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行Nacos,还需要为此配置 Maven环境,请确保是在以下版本环境中安装使用:

64 bit 操作系统,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。 64 bit JDK 1.8+; Maven 3.2.x+;

入门配置 第一部分:配置注册中心 说明 注意事项:Nacos是作为中间件。 中间件特征:第一,就是开发时需要调用的服务。第二,单独运行的。

下载路径:https://github.com/alibaba/nacos/releases

第一步:解压安装 解压后,1.4.1默认启动是集群模式,启动会报错,需要改成单机模式, 在解压文件bin目录里找到startup.cmd文件,将set MODE="cluster"改成set MODE="standalone",保存,然后 直接双击startup.cmd文件就可以。 第二步:访问管理控制台 默认用户名:nacos,默认密码也是nacos 访问路径:http://127.0.0.1:8848/nacos

第二部分:编写库存服务 第一步:创建父聚合项目

1、父项目pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <modules> <module>order</module> <module>stock</module> <module>order-nacos</module> <module>stock-nacos</module> </modules> <!--springboot的版本管理器--> <!--在公司当中,一般都会有自己的父maven--> <!--以后公司中开发就可以使用parent去继承公司自定义的父maven--> <!-- <parent>--> <!-- <groupId>org.springframework.boot</groupId>--> <!-- <artifactId>spring-boot-starter-parent</artifactId>--> <!-- <version>2.3.2.RELEASE</version>--> <!-- <relativePath/> &lt;!&ndash; lookup parent from repository &ndash;&gt;--> <!-- </parent>--> <!--该项目maven信息--> <groupId>com.example</groupId> <artifactId>springcloudalibaba</artifactId> <version>0.0.1-SNAPSHOT</version> <name>springcloudalibaba</name> <description>Spring Cloud Alibaba</description> <packaging>pom</packaging> <!--属性集合--> <properties> <java.version>1.8</java.version> <spring.cloud.alibaba.version>2.2.5.RELEASE</spring.cloud.alibaba.version> <spring.cloud.version>Hoxton.SR8</spring.cloud.version> <spring.boot.version>2.3.2.RELEASE</spring.boot.version> </properties> <dependencyManagement> <!--放在dependencyManagement里的依赖,子maven一定要显式的声明, 没有放在dependencyManagement里的依赖,子maven直接继承父maven的没放的依赖 --> <!--spring cloud alibaba的版本管理器,通过dependency方式来完成继承--> <dependencies> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>${spring.cloud.alibaba.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!--springboot的版本管理器--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring.boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!--Spring Cloud的版本管理--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring.cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <!--依赖集合--> <dependencies> <!--springboot基本场景启动--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <!--springboot测试场景--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <!--插件--> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> <!--库--> <!-- <repositories> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> <repository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <releases> <enabled>false</enabled> </releases> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> <pluginRepository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <releases> <enabled>false</enabled> </releases> </pluginRepository> </pluginRepositories>--> </project> 第二步:创建库存项目

创建maven项目

1、库存项目pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>springcloudalibaba</artifactId> <groupId>com.example</groupId> <version>0.0.1-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>stock-nacos</artifactId> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--nacos服务注册发现--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> </dependencies> </project> 2、创建Controller package com.example.stock.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/stock") public class StockController { @RequestMapping("/reduck") public String reduck(){ System.out.println("扣减库存"); return "扣减库存"; } } 3、创建启动类 package com.example.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; @SpringBootApplication public class StockApplication { public static void main(String[] args) { SpringApplication.run(StockApplication.class,args); } } 4、创建配置文件application.yml server: port: 8082 #应用名称(nacos会将该名称当做服务名称) spring: application: name: stock-service cloud: nacos: server-addr: 127.0.0.1:8848 discovery: username: nacos password: nacos namespace: public 第三部分:编写订单服务 第一步:pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>springcloudalibaba</artifactId> <groupId>com.example</groupId> <version>0.0.1-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>order-nacos</artifactId> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--nacos服务注册发现--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> </dependencies> </project> 第二步:创建Controller package com.example.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; @RestController @RequestMapping("/order") public class OrderController { @Autowired private RestTemplate restTemplate; @RequestMapping("/add") public String add(){ System.out.println("下单成功"); String forObject = restTemplate.getForObject("http://stock-service/stock/reduck", String.class); return "Hello World " + forObject; } } 第三步:创建启动类 package com.example.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; @SpringBootApplication public class OrderApplication { public static void main(String[] args) { SpringApplication.run(OrderApplication.class,args); } @Bean @LoadBalanced public RestTemplate restTemplate(RestTemplateBuilder builder){ //spring官网建议RestTemplateBuilder构造器来进行构造,这里体现了构造者设计模式 return builder.build(); } } 第四步:创建配置文件application.yml server: port: 8081 #应用名称(nacos会将该名称当做服务名称) spring: application: name: order-service cloud: nacos: server-addr: 127.0.0.1:8848 discovery: username: nacos password: nacos namespace: public 第四部分:启动测试

启动StockApplication、OrderApplication的main方法

访问http://localhost:8081/order/add

日志打印

idea小技巧 如何在Service展示所有的Application启动类 第一步:启动某个Application

第二步:点击“Edit Configurations...”

第三步:选择"Spring Boot"

点击ok

然后idea下方会弹出"Service" 发现debug视图的会到Service视图中

第四步:启动其他服务

可以修改这名字

测试负载均衡 第一步:复制多个实例 1、点击“Copy Configurations...”

第二步:修改下代码 package com.example.stock.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/stock") public class StockController { @Value("${server.port}") private String port; @RequestMapping("/reduck") public String reduck(){ System.out.println("扣减库存"); return "扣减库存" + port; } } 第二步:启动测试 启动两个库存实例,一个订单实例

测试

再测试一次


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #nacos案例 #依赖 #JAVA #环境来运行