学习主题:ELK&Zipjin

学习目标:

对应视频:

http://www.itbaizhan.cn/course/id/85.html

对应文档:

对应作业

1. 安装Logstash

(1) Logstash的作用是什么?

主要是用来日志的搜集,分析.过滤日志的工具.支持大量的数据获取方式(支持以TCP/UDP/HTTP多种方式收集数据) . 一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的个节点日志进行过滤,修改等操作,再一并发往elasticsearch上去

2. 安装Kibana

(1) Kibana的作用是什么

Kibana 可以为Logstash 和ElasticSearch 提供的日志分析友好的web界面,可以帮助汇总,分析和搜索重要数据日志

3. Spring_Cloud与ELK的集成-创建项目

(1) 创建Provider接口。

(2) 创建Provider服务。

(3) 修改POM文件,添加服务相关坐标。

<!-- 添加 product-service 坐标 -->

<dependency>

<groupId>com.bjsxt</groupId>

<artifactId>sleuth-product-service</artifactId>

<version>0.0.1-SNAPSHOT</version>

</dependency>

<dependency>

<groupId>org.mybatis.spring.boot</groupId>

<artifactId>mybatis-spring-boot-starter</artifactId>

<version>1.3.0</version>

</dependency>

<dependency>

(4) 修改POM文件,添加sleuth启动器坐标、添加logstash坐标。

<dependency>

<groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-sleuth</artifactId>

</dependency>

<dependency>

<groupId>net.logstash.logback</groupId>

<artifactId>logstash-logback-encoder</artifactId>

<version>5.0</version>

</dependency>

(5) 修改配置文件,添加服务相关配置。

spring.application.name=sleuth-elk-product-provider

server.port=9001

#设置服务注册中心地址,指向另一个注册中心

eureka.client.serviceUrl.defaultZone=http://user:123456@eur

eka1:8761/eureka/,http://user:123456@eureka2:8761/eureka/

#--------------db----------------

mybatis.type-aliases-package=com.book.product.pojo

mybatis.mapper-locations=classpath:com/book/product/mapper/

*.xml

spring.datasource.driverClassName=com.mysql.jdbc.Driver

spring.datasource.url=jdbc:mysql://localhost:3306/book-prod

uct?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavi

or=convertToNull

spring.datasource.username=root

spring.datasource.password=root

(6) 创建Consumer服务。

(7) 修改POM文件,添加服务相关坐标。

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-eureka</artifactId>

</dependency>

<!-- 添加 Feign 坐标 -->

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-feign</artifactId>

</dependency>

<!-- 添加 e-book-product-service 坐标 -->

<dependency>

<groupId>com.bjsxt</groupId>

<artifactId>e-book-product-service</artifactId>

<version>0.0.1-SNAPSHOT</version>

</dependency>

(8) 修改POM文件,添加sleuth启动器坐标、添加logstash坐标。

<dependency>

<groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-sleuth</artifactId>

</dependency>

<dependency>

<groupId>net.logstash.logback</groupId>

<artifactId>logstash-logback-encoder</artifactId>

<version>5.0</vers

(9) 修改配置文件,添加服务相关配置。

spring.application.name=sleuth-elk-consumer

server.port=9010

eureka.client.serviceUrl.defaultZone=http://user:123456@eur

eka1:8761/eureka/,http://user:123456@eureka2:8761/eureka/

4. Spring_Cloud与ELK的集成-操作ELK

(1) Kibana操作界面中的Discover的作用是什么?

Discover主要是做索引查询 ,

(2) Kibana操作界面中的Visualize的作用是什么?

视图展示,

(3) Kibana操作界面中的Timelion的作用是什么?

是一个时间序列数据的可视化功能,可以结合在一个单一的可视化完全独立的数据源

它是由一个简单的表达式语言驱动的,你用来检索时间序列数据,,进行计算,找出复杂问题的答案,并可视化的结果

(4) Kibana操作界面中的DevTools的作用是什么?

可以直接操作es中的数据,使用户方便的通过浏览器直接与ElasticSearch进行交互

(5) Kibana操作界面中的Management的作用是什么?

管理中的应用是在你执行你的运行时配置kibana,包括初始设置和指标进行配置模式,高级设置,调整自己的行为和Kibana,各种”对象”,你可以查看保存在整个Kibana的内容,如 发现页 ,可视化和仪表板

5. 什么是Zipkin

(1) 什么是Zipkin?

(2) Zipkin和ELK有什么区别?

分享/讲解/扩展思考

点名提问从第一节课到最后一节课分别学到了什么,直到同学们把所有的知识点都说出来并且保证无误。

第254次(Zipkin&分布式事务)

学习主题:Zipkin&分布式事务

学习目标:

对应视频:

http://www.itbaizhan.cn/course/id/85.html

对应文档:

对应作业

6. 创建Zipkin服务端

(1) @EnableZipkinServer注解的作用是什么?

开启Zipkin服务

7. Spring Cloud与Zipkin的集成

(1) 创建Provider服务接口项目。

(2) 创建Provider服务。

(3) 修改POM文件,添加相关坐标。

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-eureka</artifactId>

</dependency>

<!-- 添加 product-service 坐标 -->

<dependency>

<groupId>com.bjsxt</groupId>

<artifactId>sleuth-zipkin-product-service</artifactId>

<version>0.0.1-SNAPSHOT</version>

</dependency>

<dependency>

<groupId>org.mybatis.spring.boot</groupId>

<artifactId>mybatis-spring-boot-starter</artifactId>

<version>1.3.0</version>

</dependency>

<dependency><groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-sleuth</artifactId>

</dependency>

(4) 修改POM文件,添加Zipkin坐标。

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-sleuth-zipkin</artifactId>

</dependency>

(5) 修改配置文件,添加服务相关配置。

spring.application.name=sleuth-zipkin-product-provider

server.port=9001

#设置服务注册中心地址,指向另一个注册中心

eureka.client.serviceUrl.defaultZone=http://user:123456@eur

eka1:8761/eureka/,http://user:123456@eureka2:8761/eureka/

spring.zipkin.base-url=http://127.0.0.1:9411

#--------------db----------------

mybatis.type-aliases-package=com.book.product.pojo

mybatis.mapper-locations=classpath:com/book/product/mapper/

*.xml

spring.datasource.driverClassName=com.mysql.jdbc.Driver

spring.datasource.url=jdbc:mysql://localhost:3306/book-prod

uct?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull

spring.datasource.username=root

spring.datasource.password=root

(6) 修改配置文件,添加Zipkin URL配置。

spring.zipkin.base-url=http://127.0.0.1:9411

(7) 创建Consumer服务。

(8) 修改POM文件,添加相关坐标。

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-eureka</artifactId>

</dependency>

<!-- 添加 Feign 坐标 -->

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-feign</artifactId>

</dependency>

<!-- 添加 e-book-product-service 坐标 -->

<dependency>

<groupId>com.bjsxt</groupId>

<artifactId>sleuth-zipkin-product-service</artifactId>

<version>0.0.1-SNAPSHOT</version>

</dependency><dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-sleuth</artifactId>

</dependency>

(9) 修改POM文件,添加Zipkin坐标。

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-sleuth-zipkin</artifactId>

</dependency>

(10) 修改配置文件,添加服务相关配置。

ring.application.name=sleuth-zipkin-consumer

server.port=9010

spring.zipkin.base-url=http://127.0.0.1:9411

eureka.client.serviceUrl.defaultZone=http://user:123456@eur

eka1:8761/eureka/,http://user:123456@eureka2:8761/eureka/

(11) 修改配置文件,添加Zipkin URL配置。

spring.zipkin.base-url=http://127.0.0.1:9411

8. Zipkin的原理剖析

(1) Zipkin有哪些时间类型?每种事件类型表示什么含义?

(2) Zipkin的执行原理是什么?

9. 采用RabbitMQ收集Zipkin的跟踪数据-创建服务端

(1) @EnableZipkinStreamServer注解的作用是什么?

开启消息代理收集

10. 采用RabbitMQ收集Zipkin的跟踪数据-创建客户端

(1) 创建Provider服务。

(2) 需改POM文件,添加服务相关坐标。

<dependencies>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-dependencies</artifactId>

<version>Dalston.SR5</version>

<type>pom</type>

<scope>import</scope>

</dependency>

</dependencies>

</dependencyManagement>

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-eureka</artifactId>

</dependency>

<!-- 添加 product-service 坐标 -->

<dependency>

<groupId>com.bjsxt</groupId>

<artifactId>sleuth-zipkin-mq-product-service</artifactId>

<version>0.0.1-SNAPSHOT</version>

</dependency>

<dependency>

<groupId>org.mybatis.spring.boot</groupId>

<artifactId>mybatis-spring-boot-starter</artifactId>

<version>1.3.0</version>

</dependency>

<dependency>

<groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-sleuth</artifactId>

</dependency>

(3) 修改POM文件,添加Zipkin Stream、Binder Rabbit坐标。

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-sleuth-stream</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-stream-binder-rabbit</artifactId>

</dependency>

(4) 修改配置文件,添加服务相关配置。

spring.application.name=sleuth-zipkin-mq-product-provider

server.port=9001

#设置服务注册中心地址,指向另一个注册中心

eureka.client.serviceUrl.defaultZone=http://user:123456@eur

eka1:8761/eureka/,http://user:123456@eureka2:8761/eureka/

(5) 修改配置文件,添加RabbitMQ连接配置。

spring.rabbitmq.port=5672

spring.rabbitmq.username=oldlu

spring.rabbitmq.password=123456

#--------------db----------------

mybatis.type-aliases-package=com.book.product.pojo

mybatis.mapper-locations=classpath:com/book/product/mapper/*.xml

spring.datasource.driverClassName=com.mysql.jdbc.Driver

spring.datasource.url=jdbc:mysql://localhost:3306/book-prod

uct?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavi

or=convertToNull

spring.datasource.username=root

spring.datasource.password=root

(6) 创建Consumer服务。

(7) 需改POM文件,添加服务相关坐标。

<dependencies>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-dependencies</artifactId>

<version>Dalston.SR5</version>

<type>pom</type>

<scope>import</scope>

</dependency>

</dependencies>

</dependencyManagement>

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-eureka</artifactId>

</dependency>

<!-- 添加 Feign 坐标 -->

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-feign</artifactId>

</dependency>

<!-- 添加 e-book-product-service 坐标 -->

<dependency>

<groupId>com.bjsxt</groupId>

<artifactId>sleuth-zipkin-mq-product-service</artifactId><version>0.0.1-SNAPSHOT</version>

</dependency>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-sleuth</artifactId>

</dependency>

(8) 修改POM文件,添加Zipkin Stream、Binder Rabbit坐标。

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-sleuth-stream</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-stream-binder-rabbit</artifactId>

</dependency>

(9) 修改配置文件,添加服务相关配置。

spring.application.name=sleuth-zipkin-consumer

server.port=9010

(10) 修改配置文件,添加RabbitMQ连接配置。

spring.rabbitmq.host=192.168.70.139

spring.rabbitmq.port=5672

spring.rabbitmq.username=oldlu

spring.rabbitmq.password=123456

eureka.client.serviceUrl.defaultZone=http://user:123456@eur

eka1:8761/eureka/,http://user:123456@eureka2:8761/eureka/

(11) 访问Zipkin服务端查看结果。

11. 跟踪数据持久化到MySQL

(1) 创建Zipkin服务端。

(2) 修改POM文件,添加服务相关坐标。

<dependencies>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-dependencies</artifactId>

<version>Dalston.SR5</version>

<type>pom</type>

<scope>import</scope>

</dependency>

</dependencies>

</dependencyManagement>

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

<dependency>

<groupId>io.zipkin.java</groupId>

<artifactId>zipkin-autoconfigure-ui</artifactId>

</dependency>

<dependency><groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-stream-binder-rabbit</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-sleuth-zipkin-stream</artifactId>

</dependency>

(3) 修改POM文件,添加MySQL数据库驱动坐标,添加jdbc启动器。

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-jdbc</artifactId>

</dependency>

(4) 修改配置文件,添加服务相关配置

spring.application.name=sleuth-zipkin-server

server.port=9411

spring.rabbitmq.host=192.168.70.139

spring.rabbitmq.port=5672

spring.rabbitmq.username=oldlu

spring.rabbitmq.password=123456

(5) 修改配置文件,添加Zipkin储存类型。

#zipkin 数据保存到数据库中需要进行如下配置

#表示当前程序不使用 sleuth

spring.sleuth.enabled=false

#表示 zipkin 数据存储方式是 mysqlzipkin.storage.type=mysql

#数据库脚本创建地址

spring.datasource.schema=classpath:/mysql.sql

#spring boot 数据源配置

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

spring.datasource.url=jdbc:mysql://localhost:3306/zipkin?au

toReconnect=true&useUnicode=true&characterEncoding=UTF-

8&zeroDateTimeBehavior=convertToNull&useSSL=false

spring.datasource.username=root

spring.datasource.password=root

spring.datasource.initialize=true

spring.datasrouce.continueOnError=true

(6) 执行MySQL脚本。

(7) 访问Zipkin服务端,查看MySQL数据库中数据。

12. 什么是分布式事务

(1) 什么是分布式事务?

分布式事务是指事务的参与者,支持事务的服务器,资源管理器以及事务管理器分别位于不同的分布式系统的不同节点之上

13. XA的两阶段提交方案

(1) 什么是XA协议?

XA 协议由 Oracle Tuxedo 首先提出的,并交给 X/Open 组织,作为资源管理器(数据库)

与事务管理器的接口标准。目前,Oracle、Informix、DB2 和 Sybase 等各大数据库厂家都提

供对 XA 的支持。XA 协议采用两阶段提交方式来管理分布式事务。XA 接口提供资源管理

器与事务管理器之间进行通信的标准接口。

XA 就是 X/Open DTP 定义的交易中间件与数据库之间的接口规范(即接口函数),交

易中间件用它来通知数据库事务的开始、结束以及提交、回滚等。XA 接口函数由数据库厂

商提供。

(2) 什么是XA一阶段提交?

如果在程序中开启了事务,那么在应用程序发出提交/回滚请求后,数据库执行操作,

而后将成功/失败返回给应用程序,程序继续执行。

(3) 什么是XA二阶段提交?

事务管理器在接受各个消息后,开始分析,如果有任意其一失败,则发送回滚命令,否

则发送提交命令。

各个资源管理器接收到命令后,执行(耗时很少),并将提交消息返回给事务管理器。

事务管理器接受消息后,事务结束,应用程序继续执行。

14. TCC分布式事务解决方案

(1) 什么是TCC解决方案?

(2) TCC原理是什么?

事务开始时,业务应用会向事务协调器注册启动事务。之后业务应用会调用所有服务

try 接口,完成一阶段准备。之后事务协调器会根据 try 接口返回情况,决定调用 confirm

接口或者 cancel 接口。如果接口调用失败,会进行重试。

(3) TC优点是什么?

让应用自己定义数据库操作的粒度,使得降低锁冲突,提高吞吐量成为可能

(4) TCC的缺点是什么?

对应用的侵入性强,业务逻辑的每个分支都需要实现try,confirm , cancel三个操作,应用侵入性较强,改造成本高

实现难度较大,需要按照网络状态,系统故障等不同的失败原因实现不同的回滚策略,为了满足一致性的要求 , confirm 和cancel接口必须实现幂等

15. 分布式事务中间件解决方案

(1) 什么是分布式事务中间件解决方案?

分布式事务中间件其本身并不创建事务,而是基于对本地事务的协调从而达到事务一致性

的效果。典型代表有:阿里的 GTS(https://www.aliyun.com/aliware/txc)、开源应用 LCN。

16. 什么是LCN框架

(1) 什么事LCN分布式事务处理框架?

LCN 并不生产事务,LCN 只是本地事务的协调工

分享/讲解/扩展思考

点名提问从第一节课到最后一节课分别学到了什么,直到同学们把所有的知识点都说出来并且保证无误。

elk日志分析系统_ELK 日志分析系统相关推荐

  1. ulimit限制 新系统_graylog日志分析系统上手教程

    日志分析系统可以实时收集.分析.监控日志并报警,当然也可以非实时的分析日志.splunk是功能强大且用起来最省心的,但是要收费,免费版有每天500M的限制,超过500M的日志就没法处理了.ELK系统是 ...

  2. 分析linux相关日志文件,Linux日志系统与分析.pdf

    Linux日志系统与分析 1 目录  Linux日志系统简介  Linux日志分析  案例介绍: Linux日志入侵发现 Linux日志系统简介  日志的主要用途是系统审计.监测追踪和分析统计 ...

  3. linux流式访问日志,流式实时日志分析系统的实现原理

    我们知道网站用户访问流量是不间断的,基于网站的访问日志,即 Web log 分析是典型的流式实时计算应用场景.比如百度统计,它可以做流量分析.来源分析.网站分析.转化分析.另外还有特定场景分析,比如安 ...

  4. window计算机日志分析详解,系统基础知识:筛选Windows日志与借助Windows日志分析故障...

    系统基础知识:筛选Windows日志与借助Windows日志分析故障 我们最关心的事情,一定是我们Windows 7系统的安全,我们学习Windows事件查看器的最终目的,也是希望通过WIndows事 ...

  5. Windows2008系统安全日志分析

    Windows2008系统安全日志分析 1.IPC连接成功后会生成一个事件ID为4624的安全事件,示例如下: 已成功登录帐户. 主题:     安全 ID:        NULL SID      ...

  6. linux nginx 日志查看,查看nginx日志_Linux系统怎么分析Nginx日志

    摘要 腾兴网为您分享:Linux系统怎么分析Nginx日志,追书神器,有信,虚拟机,天气预报等软件知识,以及云软件,东方财富股票软件,扑飞,名片扫描王,微信加人软件安卓,微主题,每日金股,电脑硬盘检测 ...

  7. 如何查看linux系统下的各种日志文件 linux 系统日志的分析大全

    如何查看linux系统下的各种日志文件 linux 系统日志的分析大全 日志分类: 1. 连接时间的日志 连接时间日志一般由/var/log/wtmp和/var/run/utmp这两个文件记录,不过这 ...

  8. linux 系统 centOS7 日志分析

    linux 系统 centOS 7日志分析 日志文件分析 日志文件用于记录linux系统运行中发生的各种类型的消息文件,包括 linux内核消息.用户登录消息.程序运行信息等. linux系统中日志文 ...

  9. 降本增效工具系列(二):IOS 系统 Crash 日志分析实战

    文章目录 一.前言 二.Crash 崩溃报告分析实战 三.常见 Exception Type 四.拓展阅读 一.前言 当应用程序在IOS 设备上崩溃(例如,闪退)时,一份"Crash崩溃报告 ...

  10. ELK 搭建 TB 级海量日志监控系统,这个太强了!

    欢迎关注方志朋的博客,回复"666"获面试宝典 作者:非洲羚羊 来源:cnblogs.com/dengbangpang/p/12961593.html 本文主要介绍怎么使用 ELK ...

最新文章

  1. Serializable Clonable
  2. 一文让你秒懂AQS,附带源码剖析!
  3. IE6的又一条罪 javascript:void(0)
  4. Android新闻类导航栏
  5. 【推导】【NTT】hdu6061 RXD and functions(NTT)
  6. 三面求对称二叉树_字节跳动后端实习面经,一面+二面+三面(已收到offer)
  7. Java基类共同属性设置_多选择基类的访问属性-Java初学笔记
  8. 要来吗,不错的WPF技术交流群!(大批干货今日自取)
  9. module.exports与exports
  10. 跨年照片墙php源码,简单效果照片墙
  11. 如何将txt格式转epub格式
  12. 以存储为例说明设备busy的解决方法
  13. 求2+22+222+2222+.....的N项之和
  14. 教你实现微信公众号效果:长按图片保存到相册
  15. deepin更新失败_更新失败
  16. 前端下载本地excel模板
  17. ubuntu系统chrome代理问题
  18. 2.Maven创建以及依赖、继承、聚合
  19. 回溯法实例----著名医生的药方
  20. 管理会计报告和财务报告的区别

热门文章

  1. 【PID优化】基于matlab粒子群算法PID控制器优化设计【含Matlab源码 1122期】
  2. 【图像隐写】基于matlab GUI DWT+SVD数字水印【含Matlab源码 606期】
  3. 【图像几何】基于matlab投影法测距【含Matlab源码 405期】
  4. 前端怎么做接口签名验证 -baijiahao_阿里一面:如何保证API接口数据安全?
  5. html自定义表格插件,简单实用的jQuery响应式表格插件
  6. 在程序中表示什么_程序开发中:什么是前后端分离?你搞清楚了吗?
  7. merge()函数--R语言
  8. 【Clojure 基本知识】 关于函数参数的各种高级用法
  9. Gradle下载 Jar 包
  10. Chrome 52 将支持 ES7:Canary 通道已上线