Tars-Spring-Cloud 使用说明

    ​ 在操作前需要满足以下条件:

    • JDK 1.8或以上
    • 如果要想使用服务发现功能,需要已运行Spring Cloud的Eureka Server实例,具体配置启动方法请参考Spring Cloud相关教程。

    下面展示如何创建并发布一个服务。

    • 首先添加创建一个maven工程,在项目的pom.xml文件中添加依赖配置:
    • 编写接口Tars文件,生成服务端接口代码,具体操作过程参考tars_java_quickstart.md文档的服务开发部分。
    1. public interface HelloServant {
    2. public String hello(int no, String name);
    3. }
    • 生成接口后需要对接口进行实现。实现接口中的方法,之后对整个实现类添加@TarsServant注解,该注解表明被修饰的类是一个Tars Servant,并需要在注解中表明该Servant名称,作为客户端调用Servant的标识,按照Tars规范,servant名称采用”Obj”结尾。
    1. @TarsServant(name="HelloObj")
    2. public class HelloServantImpl implements HelloServant {
    3. @Override
    4. public String hello(int no, String name) {
    5. return String.format("hello no=%s, name=%s, time=%s", no, name, System.currentTimeMillis());
    6. }
    7. }
    • 编写服务启动类,采用spring boot的启动方式,并且通过注解@EnableTarsConfiguration表明Tars-Java服务,并会尝试向Spring Cloud注册中心注册服务。
    • 编写Spring Cloud配置文件,需要在配置文件中注明服务注册中心的地址和服务自身的信息等,在resources目录下的添加配置文件application.yml,示例如下:
    1. client:
    2. serviceUrl:
    3. #服务注册中心的地址
    4. defaultZone: http://localhost:8761/eureka/
    5. tars:
    6. #服务端配置
    7. server:
    8. #服务端口
    9. port: 18601
    10. #应用名称,具体含义参考tars_java_quickstart.md的服务命名章节
    11. application: TestApp
    12. #服务名称,具体含义参考tars_java_quickstart.md的服务命名章节
    13. server-name: HelloJavaServer
    14. #指定服务日志路径,以实际情况为准
    15. log-path: /usr/local/tars-eureka-test/bin/log
    16. #指定数据文件路径,以实际情况为准
    17. data-path: /usr/local/tars-eureka-test/data
    18. #客户端配置
    19. client:
    20. async-invoke-timeout: 10000
    21. #服务发现中心地址,一般同注册中心地址,可不填
    22. locator: http://localhost:8761/eureka/

    至此便开发完成了一个服务。

    下面展示如何发现并访问一个服务:

    • 首先添加创建一个maven工程,在项目的pom.xml文件中添加依赖配置

      1. <groupId>com.tencent.tars</groupId>
      2. <artifactId>tars-spring-cloud-starter</artifactId>
      3. <version>1.6.1</version>
      4. </dependency>
    • 编写启动类,采用spring boot的启动方式。

      1. @SpringBootApplication
      2. public class Application {
      3. public static void main(String[] args) {
      4. SpringApplication.run(Application.class, args);
      5. //消费服务...
      6. }
      7. }
    • 编写配置文件application.yml,添加主控相关信息:

      1. eureka:
      2. client:
      3. serviceUrl:
      4. #服务注册中心的地址
      5. defaultZone: http://localhost:8761/eureka/
      6. #客户端不需要向spring cloud主控注册
      7. register-with-eureka: false