本实验基于 SOFAStack 快速构建一个微服务,主要包括以下几个部分:
- 使用 SOFABoot + SOFARPC 发布服务
- 使用 SOFABoot + SOFARPC 调用服务
- 通过 ZipKin 查看 SOFATracer 上报的信息
从 github 上将 demo 工程克隆到本地
git clone https://github.com/sofastack-guides/kc-sofastack-demo.git然后将工程导入到 IDEA 或者 eclipse。导入之后界面如下:
- sofastack-kubecon-service-facade : 提供接口,供 provider 和 consumer 使用
- sofastack-kubecon-service-provider : RPC 服务提供方
- sofastack-kubecon-service-consumer : RPC服务消费方
将下面的依赖引入到 sofastack-kubecon-service-consumer 和 sofastack-kubecon-service-provider 工程模块的 pom.xml 文件中。
<!--SOFARPC 依赖-->
<dependency>
<groupId>com.alipay.sofa</groupId>
<artifactId>rpc-sofa-boot-starter</artifactId>
</dependency>
<!--SOFATracer 依赖-->
<dependency>
<groupId>com.alipay.sofa</groupId>
<artifactId>tracer-sofa-boot-starter</artifactId>
</dependency>
<!--SOFARegistry 依赖-->
<dependency>
<groupId>com.alipay.sofa</groupId>
<artifactId>registry-client-all</artifactId>
</dependency>
<!--runtime 依赖-->
<dependency>
<groupId>com.alipay.sofa</groupId>
<artifactId>runtime-sofa-boot-starter</artifactId>
</dependency>将如下配置复制到 sofastack-kubecon-service-consumer 和 sofastack-kubecon-service-provider 工程模块的 application.properties 中。
# 1、添加服务注册中心地址
com.alipay.sofa.rpc.registry-address=sofa://registry-1-dev.sofastack.tech:9603
# 2、添加 tracer 数据上报的服务端 zipkin 地址
com.alipay.sofa.tracer.zipkin.base-url=http://zipkin-dev.sofastack.tech:9411如下图所示,在 HelloServiceImpl 类上加上 @SofaService 注解 和 @Service 注解,将其发布成一个 SOFARPC 服务:
注解参考:
@Service
@SofaService(interfaceType = HelloService.class,bindings = {@SofaServiceBinding(bindingType = "bolt")})增加之后的界面如下所示:
右击 ProviderApplication ,run ProviderApplication 启动应用
在 SimpleController 类中的 HelloService 变量上方加 @SofaReference 注解,用于引用 SOFARPC 服务:
注解参考:
@SofaReference(interfaceType = HelloService.class,binding = @SofaReferenceBinding(bindingType = "bolt"))增加之后的界面如下所示:
右击 ConsumerApplication ,run ConsumerApplication 启动应用。
应用启动之后,通过浏览器访问:http://localhost:8084/hello ,正常情况下返回 hello sofastack 。浏览器访问 http://zipkin-dev.sofastack.tech:9411,查看链路数据上报以链路关系图。
待建设