presto(四)——服务的启动

接上一篇博文,遗留了三个问题。第一个问题客户端请求的http://localhost:8080/v1/statement
地址的服务是什么时候起来的

1、寻找服务器代码

只有xml文件

一开始以为在这个项目内。打开看了下,只有presto.xml文件

  <!-- Server -->
    <artifactSet to="lib">
        <artifact id="${project.groupId}:presto-main:${project.version}" />
    </artifactSet>

    <!-- Plugins -->
    <artifactSet to="plugin/resource-group-managers">
        <artifact id="${project.groupId}:presto-resource-group-managers:zip:${project.version}">
            <unpack />
        </artifact>
    </artifactSet>

从xml文件中看到俩个注释:<sever>和<plugins>

2、presto-main模块入口

1、在这个模块中找到了(/v1/statement),这个应该是restful api接收上一cli的请求。

package com.facebook.presto.server;

@Path("/v1/statement")
public class StatementResource

问题:是谁加载了这个类,让http可以找到这个类?

2、CoordinatorModule协调器模块加载各个资源,并对外服务

package com.facebook.presto.server;

public class CoordinatorModule
        extends AbstractConfigurationAwareModule
{
    @Override
    protected void setup(Binder binder)
    {
        httpServerBinder(binder).bindResource("/", "webapp").withWelcomeFile("index.html");

        // presto coordinator announcement
        discoveryBinder(binder).bindHttpAnnouncement("presto-coordinator");

        // statement resource
        jaxrsBinder(binder).bind(StatementResource.class);

这里涉及到google的inject项目——注入框架
和 airlift的restful服务框架

3、最开始的地方

public class PrestoServer
        implements Runnable
{
    public static void main(String[] args)
    {
        new PrestoServer().run();
    }

3、PrestoServer启动

问题:

1、为什么在presto-server项目内使用xml这种方式。
2、注解的两个<server>和<plugins>什么意思?作用是干嘛的呢?

待续~~~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,297评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,374评论 19 139
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,204评论 4 61
  • (读完约3分钟) Curiosity killed the cat 英文中一句有名的谚语,西方传说猫有九条命,怎么...
    Jerry赵化雨阅读 4,290评论 0 1
  • 此文甚是详细,刚接触Linux的人也可以操作。 安装LAME 这些是最基本的开发Php需要的软件 1. 安装前先更...
    MiMiGoGo阅读 5,661评论 1 3