Skip to content

Commit c3956e6

Browse files
author
YunaiV
committed
增加 cloud + grpc 入门
1 parent 211fab1 commit c3956e6

File tree

6 files changed

+84
-6
lines changed

6 files changed

+84
-6
lines changed

labx-30/labx-30-grpc-cloud/labx-30-grpc-cloud-application/pom.xml

+26
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,17 @@
1414
<properties>
1515
<!-- 依赖相关配置 -->
1616
<spring.boot.version>2.2.4.RELEASE</spring.boot.version>
17+
<spring.cloud.version>Hoxton.SR1</spring.cloud.version>
18+
<spring.cloud.alibaba.version>2.2.0.RELEASE</spring.cloud.alibaba.version>
1719
<!-- 插件相关配置 -->
1820
<maven.compiler.target>1.8</maven.compiler.target>
1921
<maven.compiler.source>1.8</maven.compiler.source>
2022
</properties>
2123

24+
<!--
25+
引入 Spring Boot、Spring Cloud、Spring Cloud Alibaba 三者 BOM 文件,进行依赖版本的管理,防止不兼容。
26+
在 https://dwz.cn/mcLIfNKt 文章中,Spring Cloud Alibaba 开发团队推荐了三者的依赖关系
27+
-->
2228
<dependencyManagement>
2329
<dependencies>
2430
<dependency>
@@ -28,6 +34,20 @@
2834
<type>pom</type>
2935
<scope>import</scope>
3036
</dependency>
37+
<dependency>
38+
<groupId>org.springframework.cloud</groupId>
39+
<artifactId>spring-cloud-dependencies</artifactId>
40+
<version>${spring.cloud.version}</version>
41+
<type>pom</type>
42+
<scope>import</scope>
43+
</dependency>
44+
<dependency>
45+
<groupId>com.alibaba.cloud</groupId>
46+
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
47+
<version>${spring.cloud.alibaba.version}</version>
48+
<type>pom</type>
49+
<scope>import</scope>
50+
</dependency>
3151
</dependencies>
3252
</dependencyManagement>
3353

@@ -51,6 +71,12 @@
5171
<artifactId>grpc-client-spring-boot-starter</artifactId>
5272
<version>2.8.0.RELEASE</version>
5373
</dependency>
74+
75+
<!-- 引入 Spring Cloud Alibaba Nacos Discovery 相关依赖,将 Nacos 作为注册中心,并实现对其的自动配置 -->
76+
<dependency>
77+
<groupId>com.alibaba.cloud</groupId>
78+
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
79+
</dependency>
5480
</dependencies>
5581

5682
</project>

labx-30/labx-30-grpc-cloud/labx-30-grpc-cloud-application/src/main/java/cn/iocoder/springcloud/labx30/demo/controller/DemoController.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
@RequestMapping("/demo")
1212
public class DemoController {
1313

14-
@GrpcClient("userService")
14+
@GrpcClient("user-service")
1515
private UserServiceGrpc.UserServiceBlockingStub userServiceGrpc;
1616

1717
@GetMapping("/get")
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
1+
spring:
2+
application:
3+
name: demo-application # 应用名
4+
cloud:
5+
nacos:
6+
# Nacos 作为注册中心的配置项,对应 NacosDiscoveryProperties 配置类
7+
discovery:
8+
server-addr: 127.0.0.1:8848 # Nacos 服务器地址
9+
110
grpc:
211
# gRPC 客户端配置,对应 GrpcChannelsProperties 配置类的映射
312
client:
4-
userService:
5-
address: 'static://127.0.0.1:8888' # 用户服务的地址
13+
user-service:
614
negotiation-type: plaintext

labx-30/labx-30-grpc-cloud/labx-30-grpc-cloud-user-service/pom.xml

+28-2
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,17 @@
1414
<properties>
1515
<!-- 依赖相关配置 -->
1616
<spring.boot.version>2.2.4.RELEASE</spring.boot.version>
17+
<spring.cloud.version>Hoxton.SR1</spring.cloud.version>
18+
<spring.cloud.alibaba.version>2.2.0.RELEASE</spring.cloud.alibaba.version>
1719
<!-- 插件相关配置 -->
1820
<maven.compiler.target>1.8</maven.compiler.target>
1921
<maven.compiler.source>1.8</maven.compiler.source>
2022
</properties>
2123

24+
<!--
25+
引入 Spring Boot、Spring Cloud、Spring Cloud Alibaba 三者 BOM 文件,进行依赖版本的管理,防止不兼容。
26+
在 https://dwz.cn/mcLIfNKt 文章中,Spring Cloud Alibaba 开发团队推荐了三者的依赖关系
27+
-->
2228
<dependencyManagement>
2329
<dependencies>
2430
<dependency>
@@ -28,6 +34,20 @@
2834
<type>pom</type>
2935
<scope>import</scope>
3036
</dependency>
37+
<dependency>
38+
<groupId>org.springframework.cloud</groupId>
39+
<artifactId>spring-cloud-dependencies</artifactId>
40+
<version>${spring.cloud.version}</version>
41+
<type>pom</type>
42+
<scope>import</scope>
43+
</dependency>
44+
<dependency>
45+
<groupId>com.alibaba.cloud</groupId>
46+
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
47+
<version>${spring.cloud.alibaba.version}</version>
48+
<type>pom</type>
49+
<scope>import</scope>
50+
</dependency>
3151
</dependencies>
3252
</dependencyManagement>
3353

@@ -39,10 +59,10 @@
3959
<version>1.0-SNAPSHOT</version>
4060
</dependency>
4161

42-
<!-- 引入 Spring Boot 基础 Starter 依赖 -->
62+
<!-- 实现对 SpringMVC 的自动化配置 -->
4363
<dependency>
4464
<groupId>org.springframework.boot</groupId>
45-
<artifactId>spring-boot-starter</artifactId>
65+
<artifactId>spring-boot-starter-web</artifactId>
4666
</dependency>
4767

4868
<!-- 引入 gRPC Server Starter 依赖,实现对 gRPC 的自动配置 -->
@@ -51,6 +71,12 @@
5171
<artifactId>grpc-server-spring-boot-starter</artifactId>
5272
<version>2.8.0.RELEASE</version>
5373
</dependency>
74+
75+
<!-- 引入 Spring Cloud Alibaba Nacos Discovery 相关依赖,将 Nacos 作为注册中心,并实现对其的自动配置 -->
76+
<dependency>
77+
<groupId>com.alibaba.cloud</groupId>
78+
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
79+
</dependency>
5480
</dependencies>
5581

5682
</project>

labx-30/labx-30-grpc-cloud/labx-30-grpc-cloud-user-service/src/main/java/cn/iocoder/springcloud/labx30/userservice/rpc/UserServiceGrpcImpl.java

+6
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,17 @@
33
import cn.iocoder.springcloud.labx30.userservice.api.*;
44
import io.grpc.stub.StreamObserver;
55
import net.devh.boot.grpc.server.service.GrpcService;
6+
import org.slf4j.Logger;
7+
import org.slf4j.LoggerFactory;
68

79
@GrpcService
810
public class UserServiceGrpcImpl extends UserServiceGrpc.UserServiceImplBase {
911

12+
private Logger logger = LoggerFactory.getLogger(getClass());
13+
1014
@Override
1115
public void get(UserGetRequest request, StreamObserver<UserGetResponse> responseObserver) {
16+
logger.info("[get]");
1217
// 创建响应对象
1318
UserGetResponse.Builder builder = UserGetResponse.newBuilder();
1419
builder.setId(request.getId())
@@ -21,6 +26,7 @@ public void get(UserGetRequest request, StreamObserver<UserGetResponse> response
2126

2227
@Override
2328
public void create(UserCreateRequest request, StreamObserver<UserCreateResponse> responseObserver) {
29+
logger.info("[create]");
2430
// 创建响应对象
2531
UserCreateResponse.Builder builder = UserCreateResponse.newBuilder();
2632
builder.setId((int) (System.currentTimeMillis() / 1000));
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,16 @@
1+
spring:
2+
application:
3+
name: user-service # 应用名
4+
cloud:
5+
nacos:
6+
# Nacos 作为注册中心的配置项,对应 NacosDiscoveryProperties 配置类
7+
discovery:
8+
server-addr: 127.0.0.1:8848 # Nacos 服务器地址
9+
110
grpc:
211
# gRPC 服务器配置,对应 GrpcServerProperties 配置类
312
server:
4-
port: 8888
13+
port: 0 # gRPC Server 随机端口
14+
15+
server:
16+
port: 0 # Web Server 随机端口

0 commit comments

Comments
 (0)