-
Notifications
You must be signed in to change notification settings - Fork 495
纯小白10分钟快速入门
- 前置准备
- 步骤一:生成 Spring Cloud 脚手架项目
- 步骤二:添加 Spring Cloud Tencent 依赖
- 步骤三:添加 SCT 配置文件
- 步骤四:启动项目
- 步骤五:使用 SCT 各个功能模块
- 总结
请参考 安装北极星服务端 文档,准备一个北极星服务端环境。
快速体验,强烈建议直接使用北极星官方演示环境,无需安装。
- 北极星管控台 : http://119.91.66.223/
- 用户名:
polaris
- 密码:
polaris
- 用户名:
- 服务地址:
grpc://119.91.66.223:8091
通过 https://start.spring.io/ 或者 idea 创建 Spring Cloud
脚手架。以 https://start.spring.io/ 为例,如下图所示:
下载后,通过 idea 打开项目。
如果由 Spring Boot 应用改造,添加以下依赖
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>2021.0.9</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- Tomcat Web 应用添加 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 需要通过 openfeign 调用下游服务增加 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
</dependencies>
参考 SCT 版本管理 选择对应的 SCT 版本。因为步骤一使用的 Spring Boot
版本是 2.7.6
,根据 SCT 版本管理 文档,适合使用 Spring Cloud 2021
版本。
添加以下依赖:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.tencent.cloud</groupId>
<artifactId>spring-cloud-tencent-dependencies</artifactId>
<version>2.0.0.0-2021.0.9</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!-- 新项目建议使用 all 依赖,一次性引 sct 所有 starter。现有项目避免冲突可以按需引入 starter -->
<dependencies>
<dependency>
<groupId>com.tencent.cloud</groupId>
<artifactId>spring-cloud-starter-tencent-all</artifactId>
</dependency>
</dependencies>
- resources 目录下,创建 application.yml 文件
server:
port: 8080
spring:
application:
name: sct-quickstart-caller
config:
import: polaris
cloud:
polaris:
address: grpc://119.91.66.223:8091
namespace: default
项目启动成功后,到北极星控制台查看服务注册信息。
至此,一个全新的 Spring Cloud Tencent
项目既以完成,是不是非常简单?
上述步骤中已经成功创建了 sct-quickstart-caller
应用,作为服务调用的主调方。重复以上步骤,再创建一个 sct-quickstart-callee
应用模拟服务被调用方。
server:
port: 8090
spring:
application:
name: sct-quickstart-callee
config:
import: polaris
cloud:
polaris:
address: grpc://119.91.66.223:8091
namespace: default
至此,caller
和 callee
应用都已经创建完成。接下去我们通过 RestTemplate
框架发起服务调用。
Spring Cloud 支持 RestTemplate 和 Feign 服务调用框架,本文以 RestTemplate 为例。 Fegin 的服务调用可以参考 SCT 项目中的 demo
public class User {
private String name;
private int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
@RestController
public class UserController {
@GetMapping("/users")
public User getUser() {
return new User("zhangsan", 18);
}
}
// 写在 SctQuickstartCallerApplication 文件里
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
@RestController
public class CallerController {
@Autowired
private RestTemplate restTemplate;
@GetMapping("/user-info")
public String getUser() {
return restTemplate.getForEntity("http://sct-quickstart-callee/users", String.class).getBody();
}
}
重启 sct-quickstart-callee
、sct-quickstart-caller
应用。访问 http://localhost:8080/user-info
至此一笔服务调用既以完成。
修改 sct-quickstart-callee
项目,通过 @Value("${user.username:zhangsan}")
注入姓名。
@RestController
public class UserController {
@Value("${user.username:zhangsan}")
private String name;
@GetMapping("/users")
public User getUser() {
return new User(name, 18);
}
public void setName(String name) {
this.name = name;
}
}
在北极星控制台新建名为 sct-quickstart-callee
配置分组。
新建 application.yml
配置文件,编辑配置并发布。如下图所示:
重启 sct-quickstart-callee
应用,并再次访问 http://localhost:8080/user-info
可以看到 name
是北极星上配置的最新值。可以在北极星控制台上动态修改 name
,并实时生效。
在北极星控制台上,为 sct-quickstart-callee
创建一条限流规则。
规则为:接口 /users ,10s 只能访问 3次。
连续访问 http://localhost:8080/user-info 超过 3次,触发限流。
服务路由功能稍微复杂一点,请参考 服务路由
使用 SCT 开发微服务项目非常简单,各个功能模块更详细的使用方式请参考各个模块的使用文档。如使用过程中有任何问题,可以加入我们的社区群提问。
完整的 example 实例请参考:quickstart-example
- 您在使用过程中遇到任何问题,请提 Issue 或者加入我们的开发者群告诉我们,我们会在第一时间反馈
- Spring Cloud Tencent 社区期待您的加入,一个 Star、PR 都是对我们最大的支持
- 项目介绍
- 使用指南
- 最佳实践
- 开发文档
- 学习资料