ServiceComb 笔记(一):HelloWorld应用

ServiceComb官方的示例还是太复杂了,本文创建一个更简单的ServiceComb restful项目。

一、创建项目

创建一个Maven项目,编辑pom.xml文件,添加如下依赖:

    
        
            org.apache.servicecomb
            java-chassis-spring-boot-starter-servlet
        
    

applicaton.properties 文件

server.port=8080
APPLICATION_ID=hello
service_description.name=helloworld
service_description.version=0.1
servicecomb.service.registry.address=http://127.0.0.1:30100
servicecomb.rest.address=0.0.0.0:${server.port}

service_description.environment=development

除了最后一行service_description.environment=development,每一行都是必须的。最后一行的作用是:在开发阶段,可以不太关注服务的版本号,否者可能会提示服务名及版本号的问题。

其中服务注册中心是:http://127.0.0.1:30100,先不使用,等到文末再介绍。

Java代码

程序入口代码添加@EnableServiceComb

@SpringBootApplication
@EnableServiceComb
public class HelloApplication {
  public static void main(String[] args) {
    SpringApplication.run(HelloApplication.class, args);
  }
}

创建hello服务,新建HelloEndpoint.java,内容如下:

@RestSchema(schemaId = "hello")
@RequestMapping(path = "/")
public class HelloEndpoint {
    @GetMapping(path = "/hello")
    public String hello() {
        return "Hello World!";
    }
}

注意:@RequestMapping(path = "/") 不可省略,这和Spring Boot 的@RestController不同。

运行应用:

mvn spring-boot:run

使用curl localhost:8080/hello访问站点

$ curl localhost:8080/hello
"Hello World!"

注意:返回值是带双引号的,这与Spring Boot web项目不同。

返回的结果是带引号的字符串,而一般情况返回字符串,我们不希望带引号,可以修改HelloEndpoint.java

@RequestMapping(path = "/", produces = MediaType.TEXT_PLAIN_VALUE)

再次访问,返回值就不带引号了。

$ curl localhost:8080/hello
Hello World!

添加依赖:


    org.hibernate
    hibernate-validator

添加本依赖后可以使用IDE运行程序了。

完整代码请访问:https://github.com/redexpress/servicecomb-tutorial/tree/main/hello

重构代码

新增加一个Hello接口

public interface Hello {
    String hello();
}

让HelloEndpoint 实现 Hello接口

public class HelloEndpoint implements Hello {
省略其它代码

二、启用注册中心

从https://servicecomb.apache.org/release/service-center-downloads/下载ServiceComb Service-Center
我下载的是Mac系统使用的Apache ServiceComb Service-Center 1.3.0 (LATEST) Darwin版。

start-service-center.sh启动注册中心服务,端口30100。

start-frontend.sh启动注册中心前端页面,端口是30103。

servicecombo

从图上可以看到我们部署的helloworld服务。

你可能感兴趣的:(ServiceComb 笔记(一):HelloWorld应用)