目录
一、应用说明
1、项目开发过程中,出于项目分离考虑、项目访问安全及项目集中化管理考虑,有时候需要建立接口层统一对接底层微服务,向外部暴露接口层访问信息,外部仅能访问接口层,接口获取相关信息拼接后再请求微服务请求,访问时携带bean封装的多对象参数,返回结果为JSON参数,封装成bean对象,本章主要介绍FeignClient请求方式访问方式。
2、本项目中,接口层项目与底层子项目均部署在consul上。
3、FeignClient也支持公网IP地址访问,即支持调用外部http网络通信。
二、consul
1、consul说明
consul是一个服务网格解决方案,可以实现微服务之间相互的调用,consul简化了分布式环境下服务的注册和发现流程,
2、使用流程:
1)consul下载安装
下载地址:https://www.consul.io/downloads.html
2)启动项目前需要先启动consul服务。
服务启用命令:cmd->consul agent -dev
3)在项目中加入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
- 配置文件application.yml
###服务端口号
server:
port: 8406
spring:
####consul注册中心地址
cloud:
consul:
host: localhost
port: 8500
discovery:
hostname: localhost
运行项目,在浏览器输入:http://localhost:8500,可以看到已经注册的项目
3、子项目可发现
被调用的子项目需在启动类application上添加项目可被发现的标志——@EnableDiscoveryClient,将微服务注册到服务发现组件上,让注册中心扫描到该服务
@EnableDiscoveryClient
@SpringBootApplication
public class ChatbotSearchServiceApplication {
public static void main(String[] args) {
SpringApplication.run(ChatbotSearchServiceApplication.class, args);
}
}