目录
主启动类添加@EnableDiscoveryClient注解
源码地址:https://gitee.com/hssymusic/nacos-openfeign-study
服务注册与发现Nacos
一、创建一个空白maven工程
该工程的目的是聚合各个微服务,本身不用来写代码。
创建之后,删除掉src目录以及其他多余结构,只保留pom.xml文件。
将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>
<groupId>com.hssy.union</groupId>
<artifactId>union-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>union-parent</name>
<description>总父工程</description>
<packaging>pom</packaging>
<properties>
<java.version>1.8</java.version>
</properties>
<modules>
<module>union-member</module>
</modules>
</project>
标签解释:
modelVersion
- pom.xml文件使用的对象模型版本。
- 就是pom.xml文件的版本,不用管它,默认的就好。
groupId
- 项目的全球唯一标识符,通常使用全限定的包名区分该项目和其他项目。
- 并且构建时生成的路径也是由此生成。
artifactId
- 构件的标识符,它和group ID一起唯一标识一个构件。
- 换句话说,你不能有两个不同的项目拥有同样的artifact ID 和groupID;
- 在某个特定的group ID下,artifact ID也必须是唯一的。
- 构件是项目产生的或使用的一个东西,Maven 为项目产生的构件包括:JARs,源码,二进制发布和WARs等
version
- 项目当前版本,格式为:主版本.次版本.增量版本-限定版本号
- 项目打包后的JAR文件的版本号跟这里对应。
name
- 项目的名称, Maven产生的文档用
description
- 项目的详细描述, Maven 产生的文档用。
- 当这个元素能够用HTML格式描述时(例如,CDATA中的文本会被解析器忽略, 就可以包含HTML标签)
- 不鼓励使用纯文本描述。
- 如果你需要修改产生的web站点的索引页面,你应该修改你自己的索引页文件,而不是调整这里的文档。
properties
- 通过<properties>元素用户可以自定义一个或多个Maven属性
- 然后在POM的其他地方使用${属性名}的方式引用该属性
- 这种做法的最大意义在于消除重复和统一管理。
modules
- 如果我们的项目分成了好几个模块,那么我们构建的时候是不是有几个模块就需要构建几次了(到每个模块的目录下执行mvn命令)?
- 当然,你逐个构建没问题,但是非要这么麻烦的一个一个的构建吗,那么简单的做法就是使用聚合,一次构建全部模块。
- 项目A下有一个pom.xml。
- 项目A下有两个module,每个module中有自己的pom.xml。
- 在项目A的pom中加入标签,将两个module加入其中。
- 在构建这个项目的时候,不需要深入每个module去单独构建,而只是在项目A下的pom.xml构建,就会完成对两个module的构建。
- 如果项目下多module,modules标签的优势将更加明显。- 所以,modules标签的作用就是聚合模块,方便统一构建管理。
二、创建一个微服务模块
每一个微服务模块都是一个独立的进程
这里以会员微服务模块为例进行创建
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>
<!-- 当前微服务引入springboot项目父工程,方便进行springboot开发 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.hssy.union</groupId>
<artifactId>union-member</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>union-member</name>
<description>会员系统</description>
<packaging>jar</packaging>
<!--
通过<properties>元素用户可以自定义一个或多个Maven属性,
然后在POM的其他地方使用${属性名}的方式引用该属性,
这种做法的最大意义在于消除重复和统一管理。
-->
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>2021.0.4</spring-cloud.version>
<spring-cloud-alibaba.version>2021.0.4.0</spring-cloud-alibaba.version>
</properties>
<dependencies>
<!--
为什么spring-boot-starter-web依赖不用写版本号?
是因为当前工程引入了spring-boot-starter-parent父工程
而spring-boot-starter-parent父工程中已经规定了部分依赖的版本信息
-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--
为什么spring-cloud-starter-openfeign依赖不用写版本号?
它不是spring-boot-starter-parent父工程的,确也可以不用写版本号
是因为我们使用了dependencyManagement依赖管理
引入spring-cloud-dependencies到依赖管理中
这样它包含的依赖就规定了其中依赖的版本
当引入该依赖下的openfeign就会使用spring-cloud-dependencies依赖管理对应的版本
-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<!--
同理,
spring-cloud-starter-alibaba-nacos-config也是通过依赖管理
所以不用单独写版本号
-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--
bootstrap.properties比application.properties的优先级要高
由于bootstrap.properties是系统级的资源配置文件,是用在程序引导执行时更加早期配置信息读取;
而application.properties是用户级的资源配置文件,是用来后续的一些配置所需要的公共参数。
但是在SpringCloud 2020.* 版本把bootstrap禁用了,
导致在读取文件的时候读取不到而报错,所以我们只要把bootstrap从新导入进来就会生效了。
-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
</dependencies>
<!--
依赖管理可以不用写在当前模块
可以写在union-parent父工程(聚合工程)中,然后父工程引入该微服务模块
也可以写在任意一个模块中,然后需要使用的模块调用该依赖即可。
spring-cloud-dependencies、spring-cloud-alibaba-dependencies这些依赖,
内部包含了各自相关的各种组件jar包。
如果直接引用它们,就可以不用再单独引入nacos这些了,但是包含的东西太多,
没必要都加载依赖。
所以我们一般会选择将这两个依赖只加入到dependencyManagement中,做版本依赖管理。
控制这些组件的版本号
-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<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>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
需要注意的是,我们把当前微服务模块加入到总父聚合工程的modules中,方便进行统一Maven构建管理。 可以看到,前面已经添加了。
配置文件 application.yaml
server:
port: 7000
spring:
application:
name: union-member
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
主启动类
添加@EnableDiscoveryClient注解,开启服务注册/发现中心
package com.hssy.union.unionmember;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@EnableDiscoveryClient
@SpringBootApplication
public class UnionMemberApplication {
public static void main(String[] args) {
SpringApplication.run(UnionMemberApplication.class, args);
}
}
ps:
通过测试我们发现,只要引入了spring-cloud-starter-alibaba-nacos-discovery的依赖,即使不在配置文件中配置nacos的注册中心地址,甚至不写上@EanableDiscoveryClient注解,一样可以加入到nacos注册中心。
但是,做好还是按照这样的步骤来实现,避免出现问题。防止某些版本不可以。
不用写naocs的服务器地址和端口号,是因为springboot的自动配置功能。nacos注册中心依赖jar包中有autoconfiguration配置类,可以实现默认配置localhost:8848。
假如实际nacos的安装地址变化就不行了,所以就还是必须在配置文件中配置了。
启动Nacos Server服务器
官方下载地址:https://github.com/alibaba/nacos/releases
不过值得注意的是Nacos2.0版本以上的Server默认是以集群方式启动的,需要修改启动文件的配置,以单机模式启动服务。
启动本地localhost:8848/nacos,即可进入Nacos客户端
登录用户名、密码均为nacos
启动项目报错及解决办法
控制台报错信息描述:
Description:
No spring.config.import property has been defined
Action:
Add a spring.config.import=nacos: property to your configuration.
If configuration is not required add spring.config.import=optional:nacos: instead.
To disable this check, set spring.cloud.nacos.config.import-check.enabled=false.
Process finished with exit code 1
网上搜索该描述,发现产生问题的原因:
bootstrap.properties比application.properties的优先级要高
由于bootstrap.properties是系统级的资源配置文件,是用在程序引导执行时更加早期配置信息读取;
而application.properties是用户级的资源配置文件,是用来后续的一些配置所需要的公共参数。
但是在SpringCloud 2020.* 版本把bootstrap禁用了,导致在读取文件的时候读取不到而报错,所以我们只要把bootstrap从新导入进来就会生效了。
增加依赖:
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-bootstrap -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>3.0.3</version>
</dependency>
启动服务成功,当前union-member微服务已经加入到当前注册中心了。
远程调用Openfeign
一、新建商品模块
二、当前product微服务加入到聚合模块中
方便Maven统一构建管理
查看一下union-product微服务的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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.hssy.union</groupId>
<artifactId>union-product</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>union-product</name>
<description>商品系统</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>2021.0.4</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<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>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
三、注册到注册中心
要想进行远程调用,需要加入同一注册中心
pom文件
pom文件增加nacos注册中心的依赖
<?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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.hssy.union</groupId>
<artifactId>union-product</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>union-product</name>
<description>商品系统</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>2021.0.4</spring-cloud.version>
<spring-cloud-alibaba.version>2021.0.4.0</spring-cloud-alibaba.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- 增加服务注册中心Nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- 增加spring-cloud-alibaba-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>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
添加配置文件application.yaml
server:
port: 8000
spring:
application:
name: union-product
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
主启动类添加@EnableDiscoveryClient注解
package com.hssy.union.unionproduct;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@EnableDiscoveryClient
@SpringBootApplication
public class UnionProductApplication {
public static void main(String[] args) {
SpringApplication.run(UnionProductApplication.class, args);
}
}
启动该微服务
进入Nacos服务器的客户端,查看是否添加到该注册中心
注册成功。接下来就开始测试远程调用功能~
四、远程调用
引入依赖
前面新建模块的时候就引入了openfeign依赖,所以这里不用再添加了。
编写被远程调用的接口
我们先在member中写一个测试接口,好后面让其他微服务去远程调用它
编写远程调用接口
接下来返回到union-product微服务中
我们可以新建一个feign文件夹,方便管理所有的远程调用接口。当然你不建立也没关系~
package com.hssy.union.unionproduct.feign;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
@FeignClient("union-member")//注册中心中,需要远程调用服务的服务名
public interface MemberFeignService {
@GetMapping("/testMember/forFeignTest")
public String forFeignTest();
}
编写接口使用这个调用的接口
然后我们创建controller来测试这个远程调用的接口。
package com.hssy.union.unionproduct.controller;
import com.hssy.union.unionproduct.feign.MemberFeignService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/testProduct")
public class TestFeignController {
@Autowired
private MemberFeignService memberFeignService;
@GetMapping("hello")
public String hello(){
String s = memberFeignService.forFeignTest();
return "product微服务远程调用到了member的接口*****: "+s;
}
}
主启动类
主启动类上添加@EnableFeignClients注解
谁想要远程调用,就再加谁头上
重启项目出错原因及解决办法
重启项目,发现报错
原因:
因为SpringCloud Feign在Hoxton.M2 RELEASED版本之后抛弃了Ribbon,使用了spring-cloud-loadbalancer,所以我们这里还需要引入spring-cloud-loadbalancer的依赖,否则就会报错
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>
好的,那么我们在pom文件中增加一项
<?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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.hssy.union</groupId>
<artifactId>union-product</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>union-product</name>
<description>商品系统</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>2021.0.4</spring-cloud.version>
<spring-cloud-alibaba.version>2021.0.4.0</spring-cloud-alibaba.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- 增加服务注册中心Nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--
因为SpringCloud Feign在Hoxton.M2 RELEASED版本之后抛弃了Ribbon,
使用了spring-cloud-loadbalancer,
所以我们这里还需要引入spring-cloud-loadbalancer的依赖,否则就会报错
-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- 增加spring-cloud-alibaba-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>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
重新再启动,成功了~
建立被调用的服务也重启一下,防止有修改没有重启。
测试
我们union-product微服务是在8000端口启动的,下面我们访问一下测试接口:localhost:8000/testProduct/hello
我们发现,远程调用成功了!
第三方微服务项目如何接入?
下面,我们可以模拟其他系统,如果想要接入我们当前这一套微服务项目该怎么做。
我们新开一个idea,创建一个项目,假如就是这个牛牛小游戏系统
然后,就还是之前一模一样的操作
pom文件
<?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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.kkt.game</groupId>
<artifactId>niuniu</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>niuniu</name>
<description>牛牛小游戏系统</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>2021.0.4</spring-cloud.version>
<spring-cloud-alibaba.version>2021.0.4.0</spring-cloud-alibaba.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.springframework.cloud</groupId>-->
<!-- <artifactId>spring-cloud-starter-bootstrap</artifactId>-->
<!-- </dependency>-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<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>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
配置文件
server:
port: 15000
spring:
application:
name: niuniu-game
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
主启动类
package com.kkt.game.niuniu;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@EnableDiscoveryClient
@SpringBootApplication
public class NiuniuApplication {
public static void main(String[] args) {
SpringApplication.run(NiuniuApplication.class, args);
}
}
启动,看看有没有加入到注册中心
成功加入注册中心
下面编写远程调用
重启项目测试,牛牛系统的端口号为15000
测试:http://localhost:15000/NiuNiu/test
也成功了~~~