Nacos
Nacos 是阿里巴巴推出来的一个新开源项目,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
准备Nacos
将 nacos 安装成功之后,进入nacos的bin 目录下,通过命令
sh startup.sh -m standalone
启动nacos,然后本地访问http://110.42.143.191:8848/nacos
,初始账户密码都是:nacos。
这里的IP地址,如果nacos是安装到本地的,就是localhost,安装到服务器就是你的服务器IP地址。但服务器一定要开放8848端口,不然访问不到。
这样我们就成功启动nacos了!!!
搭建微服务项目
创建一个maven项目
创建一个maven项目,作为父项目,然后搭建父项目
pom.xml
<dependencyManagement>
<dependencies>
<!--Spring boot 依赖(定义了微服务规范)-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.3.2.RELEASE</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<!--Spring Cloud 依赖(定义了微服务规范)-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR9</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<!--Spring Cloud Alibaba依赖(基于spring微服务规范做了具体落地实现)-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.6.RELEASE</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
服务提供方、服务消费方
服务提供方 (Service Provider):是指提供可复用和可调用服务的应用方。
服务消费方 (Service Consumer):是指会发起对某个服务调用的应用方。
服务提供方
- 接着创建两个模块,一个服务提供方,一个服务消费方;由于这两个模块继承了父框架pom.xml的内容,所以只需新增下面依赖即可!
<dependencies>
<!--Web服务-->
<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>
- 配置
application.yml
文件
server:
port: 8081 # 端口号
spring:
application:
name: nacos-provider # 服务名
cloud:
nacos:
discovery:
server-addr: 110.420.143.191:8848 # nacos注册中心地址
这里只给出一个,其他只需修改端口号和服务名即可
- 创建主启动类
@SpringBootApplication
public class NacosProviderApplication {
public static void main(String[] args) {
SpringApplication.run(NacosProviderApplication.class, args);
}
}
- 创建一个controller测试一下
- 访问
http://110.420.143.191:8848/nacos
,就可以看到服务列表中,我们的服务提供方已经注册上去了。
- 接着访问服务提供方端口
http://localhost:8081/provider
,成功!!!
服务消费方
服务提供方创建完成之后,创建另一个模块:服务消费方,调用服务提供方,实现微服务之间的调用。
- pom文件与服务提供方一致,application配置文件只需要修改端口号和服务名称即可。
- 创建一个controller对服务提供方进行调用。
@RestController
public class CustomerController {
@RequestMapping("getProvider")
public String applyService() {
String url = "http://localhost:8081/provider";
RestTemplate restTemplate = new RestTemplate();
return restTemplate.getForObject(url, String.class);
}
}
注意:
这里是使用了RestTemplate对服务进行请求,并返回结果。
- 创建主启动类并启动
- 再次访问访问
http://110.420.143.191:8848/nacos
,就可以看到服务列表中,我们的两个模块都已经注册上去了。
- 然后访问服务消费方的端口,看微服务之间的调用是否成功。