实战项目中整合 Sentinel 编码实践

在微服务架构项目中整合 Sentinel 的步骤如下。

第一步,引入 Sentinel 依赖。

依次打开 newbee-mall-cloud-user-webnewbee-mall-cloud-recommend-webnewbee-mall-cloud-order-webnewbee-mall-cloud-shop-cart-webnewbee-mall-cloud-goods-web 5 个微服务实例工程中的 pom.xml 文件,在 dependencies 节点下新增 Sentinel 的依赖项,配置代码如下:

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>

第二步,新增 Sentinel 配置项。

依次打开 newbee-mall-cloud-user-webnewbee-mall-cloud-recommend-webnewbee-mall-cloud-order-webnewbee-mall-cloud-shop-cart-webnewbee-mall-cloud-goods-web 5 个微服务实例工程中的 application.properties 配置文件,新增 Sentinel 配置项。

newbee-mall-cloud-user-web 工程:

# sentinel config
spring.cloud.sentinel.transport.port=8900
spring.cloud.sentinel.transport.clientIp=127.0.0.1
# 指定 Sentinel 控制台 IP 地址
spring.cloud.sentinel.transport.dashboard=127.0.0.1:9113

newbee-mall-cloud-recommend-web 工程:

# sentinel config
spring.cloud.sentinel.transport.port=8920
spring.cloud.sentinel.transport.clientIp=127.0.0.1
# 指定 Sentinel 控制台 IP 地址
spring.cloud.sentinel.transport.dashboard=127.0.0.1:9113

newbee-mall-cloud-order-web 工程:

# sentinel config
spring.cloud.sentinel.transport.port=8940
spring.cloud.sentinel.transport.clientIp=127.0.0.1
# 指定 Sentinel 控制台 IP 地址
spring.cloud.sentinel.transport.dashboard=127.0.0.1:9113

newbee-mall-cloud-shop-cart-web 工程:

# sentinel config
spring.cloud.sentinel.transport.port=8930
spring.cloud.sentinel.transport.clientIp=127.0.0.1
# 指定 Sentinel 控制台 IP 地址
spring.cloud.sentinel.transport.dashboard=127.0.0.1:9113

newbee-mall-cloud-goods-web 工程:

# sentinel config
spring.cloud.sentinel.transport.port=8910
spring.cloud.sentinel.transport.clientIp=127.0.0.1
# 指定 Sentinel 控制台 IP 地址
spring.cloud.sentinel.transport.dashboard=127.0.0.1:9113

到这里就完成了在实战项目中对 Sentinel 初步的整合和配置,非常简单。接下来,依次启动 5 个微服务实例(需保证 Nacos ServerSentinel 控制台已经正常运行)。

启动后,登录 Sentinel 控制台,页面的导航栏依然是一片空白,无法看到这些微服务实例。本以为是懒加载机制导致的,只需要对微服务发起几次调用,触发服务信息等数据的上报,在客户端收集数据并传输给 Sentinel 控制台后,就会看到数据,但是访问了 5 个微服务实例中的一些请求后,页面中依然是空白的,如图 11-1 所示。

image 2025 04 28 14 26 34 043
Figure 1. 图11-1 Sentinel 控制台页面空白