1. 服务注册
在没有微服务的情况所有的代码都是统一部署,这样维护、更新会比较麻烦
拆分成微服务后程序耦合性大大降低,每个团队能够自主开发自主部署,那么服务A要调用B就要用到服务治理
1.1 部署nacos服务
nacos有很多版本,本测试采用的为window版 nacos1.2.1 ,下载地址:
nacos-server-1.2.1.zip
1.2 创建子工程provider
1.3 修改pom
1.3.1 修改pom默认parent为父项目
<parent><groupId>com.jili</groupId><artifactId>springcloudalibaba</artifactId><version>0.0.1-SNAPSHOT</version></parent>
1.3.2 添加nacos服务
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2.2.1.RELEASE</version></dependency>
1.4 修改配置文件application
习惯性会把application后缀改为yaml/yml
配置nacos服务器地址
spring:cloud:nacos:discovery:server-addr: localhost:8848application:name: providerserver:port: 8082
1.5 效果
地址栏访问nacos服务器http://localhost:8848/nacos/index.html
2. 发现服务
创建一个消费者来读取注册,这里consumer就作为服务的调用者来发现注册在nacos的服务
2.1 创建子工程consumer
2.2 修改pom
2.2.1替换默认父依赖
<parent><groupId>com.jili</groupId><artifactId>springcloudalibaba</artifactId><version>0.0.1-SNAPSHOT</version></parent>
2.2.2 添加nacos服务
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2.2.1.RELEASE</version></dependency>
2.3 创建控制类

package com.jili.controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.cloud.client.ServiceInstance;import org.springframework.cloud.client.discovery.DiscoveryClient;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;import java.util.List;@RestControllerpublic class ConsumerController {@Autowiredprivate DiscoveryClient discoveryClient;@GetMapping("/instances")public List<ServiceInstance> instance(){List<ServiceInstance> provider = this.discoveryClient.getInstances("provider");return provider;}}
2.4 效果


