美文网首页
帮助文档

帮助文档

作者: mvictor | 来源:发表于2017-10-22 20:33 被阅读291次

eureka-node-client 帮助文档

eureka-node-client 客户端和 eureka 服务器端通信示意图:

示意图

eureka-node-client 是对 eureka-js-client 做的封装,是对 Eureka 客户端的 JS 实现。

  1. 安装 eureka-node-client:

    npm install eureka-node-client --save
    
  2. 将 eureka-node-client 集成到项目中

    const os = require('os');
    
    let hostname = os.hostname();
    let port = 3000;
    
    let eureka_address = process.env.EUREKA_ADDRESS || 'localhost';
    let eureka_port = process.env.EUREKA_PORT || '8761';
    let eureka_username = process.env.EUREKA_USERNAME || 'admin';
    let eureka_password = process.env.EUREKA_PWD || 'admin';
    const eureka_client = new Eureka({
    eureka: {
        host: `${eureka_username}:${eureka_password}@${eureka_address}`,
        port: eureka_port,
        servicePath: "/eureka/apps/"
    },
    instance: {
        app: project_info.name,
        port: { '$': port, '@enabled': 'true' },
        homePageUrl: `http://${hostname}:${port}/`,
        healthCheckUrl: `http://${hostname}:${port}/health`,
        statusPageUrl: `http://${hostname}:${port}/static/index.html`,
        metadata: {
            zone: 'primary',
            env: process.env.NODE_ENV,
            version: project_info.version
            }
        }
    });
    
    /**
     * 设置日志级别
     */
    eureka_client.logger.level('debug');
    
    //********************  测试监听  ********************//
    let updatedListener = function(apps){
        console.log("更新:" + JSON.stringify(apps));
    }
    eureka_client.onUpdated(updatedListener);
    eureka_client.start(function(error){
        console.log(error || '启动成功!');
    });
    

    eureka 客户端需要一个 JSON 格式的配置信息进行初始化,配置信息分为两部分: eureka 和 instance;
    eureka 部分用来配置 eureka 服务器信息,可以指定一个服务器,也可以指定服务器列表。
    指定一个服务器:

    eureka: {
        host: `${eureka_username}:${eureka_password}@${eureka_address}`,
        port: eureka_port,
        servicePath: "/eureka/apps/"
    }
    

    指定服务器列表:

    eureka: {
    "serviceUrls": {
            "default": [
                "http://admin:admin@192.168.2.184:8761/eureka/apps/", 
                "http://admin:admin@192.168.1.107:8761/eureka/apps/", 
                "http://admin:admin@192.168.2.157:8761/eureka/apps/"
                ]
        }
    }
    

    URL中的 admin:admin 是指 eureka 服务器的账号和密码。

    instance 部分指定了服务的信息:

    字段 含义 备注
    app 服务名称 $1
    hostName 服务主机名 $1
    port 端口号 $1
    homePageUrl 主页地址 $1
    healthCheckUrl 健康检查地址 $1
    statusPageUrl 状态地址 $1
    metadata 服务的更多信息 $1

    更多参数参考:eurka-js-client

    设置服务更新的监听,服务发生变化时可以通过监听得知

    let updatedListener = function(apps){
        console.log("服务更新:" + JSON.stringify(apps));
    }
    eureka_client.onUpdated(updatedListener);
    

    解除服务更新的监听

    eureka_client.unbindUpdatedListener(updatedListener)
    

    启动 eureka 客户端服务注册和心跳

    eureka_client.start(function(error){
        console.log(error || '启动成功!');
    });
    

    停止 eureka 客户端并取消服务注册

    eureka_client.start.stop();
    

swagger ui 集成帮助文档

介绍

swagger ui 是一个 API 在线文档生成和测试的利器。支持 API 自动生成同步的在线文档,这些文档可以用于项目内部 API 审核,方便测试人员了解 API。

搭建环境

  1. 下载 swagger ui

    git clone https://github.com/swagger-api/swagger-ui.git
    
  2. 准备一个 NodeJS 项目,本文档用 express 演示。在项目中创建 public 目录,然后将下载好的 swagger ui 的 dist 目录下的文件全部复制到 public 目录下面。完整的目录结构如下:

![目录结构](https://img.haomeiwen.com/i732352/df96dc9cabc19efa.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  1. 编写代码

    let app = express();
    app.use('/static', express.static('public'));
    

编写文档并发布

  1. 使用swagger editor 编写 API 文档,swagger editor 基于 yaml 语法,需要看一下官方的 demo 学习一下。同样,swagger editor 也提供了 Docker 镜像,可以在本地搭建一个 swagger editor。
    运行下面的命令在你本地运行编辑器:

    docker pull swaggerapi/swagger-editor
    docker run -p 8080:8080 swaggerapi/swagger-editor
    

    然后访问 http://127.0.0.1:8080/

  2. 导出 JSON

image.png
  1. 将导出的 JSON 文件放入项目的 public 目录下面,并修改 public/index.html,如下;

    ```javascript
    <script>
    window.onload = function() {
      
      // Build a system
      const ui = SwaggerUIBundle({
        url: "http://localhost:3000/static/users.json",
        dom_id: '#swagger-ui',
        deepLinking: true,
        presets: [
          SwaggerUIBundle.presets.apis,
          SwaggerUIStandalonePreset
        ],
        plugins: [
          SwaggerUIBundle.plugins.DownloadUrl
        ],
        layout: "StandaloneLayout"
      })
    
      window.ui = ui
    }
    </script>
    ``` 
    
    将 url 指向刚才生成的 json 文件
    
    ```javascript
     url: "http://localhost:3000/static/users.json",
    ```
    
  2. 启动 node 服务,浏览器中打开 http://localhost:3000/static/index.html 就是你自己写的 api 文档了。

微服务打包镜像帮助文档

使用 Dockerfile 打包镜像,文件内容如下:

FROM node:latest
MAINTAINER thomas hanxuepeng001@163.com
RUN git clone https://github.com/arthas001/eureka-client-example.git
WORKDIR /micro-service-test

RUN npm i

EXPOSE 3000

CMD npm start

运行命令:

docker build -t hanxuepeng/micro-service .

命令执行完毕后即可生成名为 hanxuepeng/micro-service 的镜像。

相关文章

  • 帮助文档

  • 帮助文档

    eureka-node-client 帮助文档 eureka-node-client 客户端和 eureka 服务...

  • 帮助文档

    阿斯蒂芬 阿萨德发生地方

  • 帮助文档

    man命令 man命令介绍 这个是最常用的查看帮助文档的命令,侧重于介绍命令的使用方法, man文档存放的位置在/...

  • 帮助文档

    查看环境 卸载旧版本docker 安装 安装docker相关的额外依赖 启动docker 镜像 卸载docker ...

  • suricata的安装

    下载 查看帮助文档 本次查看的编译帮助文档

  • java——帮助文档

    注释和嵌入式文档: 文档注释/** */ 独立文档以@开头 ,行内文档标签随意 javadoc只能为publ...

  • Xcode帮助文档

    2017-03-31 iOS_Docs 变更记录 序号 | 录入时间 | 备注--- | --- | --...

  • java帮助文档

    javadoc /***题目*@author 作者@version 版本//*方法说明*@param 要传递的值...

  • Mou - 帮助文档

    刚刚学习完Markdown的基础语法,对于爱好写作的朋友们可以留意以下这这种简单的标记语言,让你再也没有排版上的烦...

网友评论

      本文标题:帮助文档

      本文链接:https://www.haomeiwen.com/subject/ezsnuxtx.html