Skip to content

纯小白10分钟快速入门

Haotian Zhang edited this page Dec 16, 2024 · 16 revisions

目录

前置准备

请参考 安装北极星服务端 文档,准备一个北极星服务端环境。

快速体验,强烈建议直接使用北极星官方演示环境,无需安装。

  • 北极星管控台 : http://119.91.66.223/
    • 用户名: polaris
    • 密码: polaris
  • 服务地址: grpc://119.91.66.223:8091

步骤一:生成 Spring Cloud 脚手架项目

通过 https://start.spring.io/ 或者 idea 创建 Spring Cloud 脚手架。以 https://start.spring.io/ 为例,如下图所示:

image

下载后,通过 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>

步骤二:添加 Spring Cloud Tencent 依赖

参考 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>

步骤三:添加 SCT 配置文件

  1. 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

步骤四:启动项目

项目启动成功后,到北极星控制台查看服务注册信息。

image

至此,一个全新的 Spring Cloud Tencent 项目既以完成,是不是非常简单?

步骤五:使用 SCT 各个功能模块

5.1 使用服务注册发现

5.1.1 创建 sct-quickstart-callee 项目

上述步骤中已经成功创建了 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

image

至此,callercallee 应用都已经创建完成。接下去我们通过 RestTemplate 框架发起服务调用。

Spring Cloud 支持 RestTemplate 和 Feign 服务调用框架,本文以 RestTemplate 为例。 Fegin 的服务调用可以参考 SCT 项目中的 demo

5.1.2 sct-quickstart-callee 添加查询用户接口

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);
	}
}

5.1.3 sct-quickstart-caller 调用 sct-quickstart-callee 查询接口

// 写在 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-calleesct-quickstart-caller 应用。访问 http://localhost:8080/user-info

image

至此一笔服务调用既以完成。

5.2 使用配置中心

修改 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 配置分组。 quickstart_configuration1

新建 application.yml 配置文件,编辑配置并发布。如下图所示:

quickstart_configuration2

重启 sct-quickstart-callee 应用,并再次访问 http://localhost:8080/user-info

image

可以看到 name 是北极星上配置的最新值。可以在北极星控制台上动态修改 name ,并实时生效。

5.3 使用限流功能

在北极星控制台上,为 sct-quickstart-callee 创建一条限流规则。

image

规则为:接口 /users ,10s 只能访问 3次。

image

连续访问 http://localhost:8080/user-info 超过 3次,触发限流。

image

5.4 使用服务路由

服务路由功能稍微复杂一点,请参考 服务路由

总结

使用 SCT 开发微服务项目非常简单,各个功能模块更详细的使用方式请参考各个模块的使用文档。如使用过程中有任何问题,可以加入我们的社区群提问。

完整的 example 实例请参考:quickstart-example

Clone this wiki locally