【分布式微服务基础架构搭建(平台底座期)】
·
一、阶段目标拆解
| 模块 | 目标 |
|---|---|
| Nacos | 服务注册+配置中心 |
| Gateway | 统一入口 |
| OAuth2 | 统一认证中心 |
| Feign | 微服务调用 |
| Nginx | 外部流量入口 |
| 基础服务 | user-service、order-service… |
| Devops结构 | GitLab +Jenkins + Docker |
二、Nacos环境准备
通过Nacos的Docker镜像,在Docker容器中部署并使用Nacos。
docker-compose.yml:
version: '3'
services:
nacos:
image: nacos/nacos-server:v2.2.3
environment:
- MODE=standalone
ports:
- "8848:8848"
执行:docker-compose up -d
访问:http://ip:8848/nacos
账号:nacos / nacos
1.接入Nacos
pom.xml
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
application.yml
spring:
application:
name: user-service
cloud:
nacos:
discovery:
server-addr: ip:8848
server:
port: 8081
启动类
@SpringBootApplication
@EnableDiscoveryClient
public class UserApplication {
public static void main(String[] args) {
SpringApplication.run(UserApplication.class,args);
}
}
二、OpenFeign微服务调用
pom.xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
启动类
@EnableFeignClients
@SpringBootApplication
public class OrderApplication {
}
Feign接口
@FeignClient(name = "sys-msg-service")
public interface MsgClient {
/**
* feign调用发送邮件
*
* @param mailMsg 邮件消息对象
* @return ApiResponseBody
*/
@PostMapping("/sendMail")
ApiResponseBody sendMail(@RequestBody MailMsg mailMsg);
@ApiOperation("发送短信")
@PostMapping(path = "/sendMsg", consumes = "application/json")
ApiResponseBody sendMsg(String msg);
}
三、Gateway 网关统一入口
pom.xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
application.yml
spring:
application:
name: gateway-service
cloud:
nacos:
discovery:
server-addr: ip:8848
gateway:
routes:
- id: user
uri: lb://user-service
predicates:
- Path=/user/**
- id: order
uri: lb://order-service
predicates:
- Path=/order/**
server:
port: 9000
更多推荐


所有评论(0)