skywalking单节点部署

skywalking服务部署

下载skywalking服务文件

下载地址:http://skywalking.apache.org/downloads/
我使用的是Binary Distribution for ElasticSearch 7这个版本

收集器配置文件

路径 config/application.yml

cluster:selector: ${SW_CLUSTER:standalone}standalone:# Please check your ZooKeeper is 3.5+, However, it is also compatible with ZooKeeper 3.4.x. Replace the ZooKeeper 3.5+# library the oap-libs folder with your ZooKeeper 3.4.x library.zookeeper:nameSpace: ${SW_NAMESPACE:""}hostPort: ${SW_CLUSTER_ZK_HOST_PORT:172.31.146.200:2281,172.31.146.200:2282,172.31.146.200:2283}# Retry PolicybaseSleepTimeMs: ${SW_CLUSTER_ZK_SLEEP_TIME:1000} # initial amount of time to wait between retriesmaxRetries: ${SW_CLUSTER_ZK_MAX_RETRIES:3} # max number of times to retry# Enable ACLenableACL: ${SW_ZK_ENABLE_ACL:false} # disable ACL in defaultschema: ${SW_ZK_SCHEMA:digest} # only support digest schemaexpression: ${SW_ZK_EXPRESSION:skywalking:skywalking}kubernetes:watchTimeoutSeconds: ${SW_CLUSTER_K8S_WATCH_TIMEOUT:60}namespace: ${SW_CLUSTER_K8S_NAMESPACE:default}labelSelector: ${SW_CLUSTER_K8S_LABEL:app=collector,release=skywalking}uidEnvName: ${SW_CLUSTER_K8S_UID:SKYWALKING_COLLECTOR_UID}consul:serviceName: ${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"}# Consul cluster nodes, example: 10.0.0.1:8500,10.0.0.2:8500,10.0.0.3:8500hostPort: ${SW_CLUSTER_CONSUL_HOST_PORT:localhost:8500}aclToken: ${SW_CLUSTER_CONSUL_ACLTOKEN:""}etcd:serviceName: ${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"}# etcd cluster nodes, example: 10.0.0.1:2379,10.0.0.2:2379,10.0.0.3:2379hostPort: ${SW_CLUSTER_ETCD_HOST_PORT:localhost:2379}core:selector: ${SW_CORE:default}default:# Mixed: Receive agent data, Level 1 aggregate, Level 2 aggregate# Receiver: Receive agent data, Level 1 aggregate# Aggregator: Level 2 aggregaterole: ${SW_CORE_ROLE:Mixed} # Mixed/Receiver/AggregatorrestHost: ${SW_CORE_REST_HOST:0.0.0.0}restPort: ${SW_CORE_REST_PORT:12800}restContextPath: ${SW_CORE_REST_CONTEXT_PATH:/}gRPCHost: ${SW_CORE_GRPC_HOST:0.0.0.0}gRPCPort: ${SW_CORE_GRPC_PORT:11800}gRPCSslEnabled: ${SW_CORE_GRPC_SSL_ENABLED:false}gRPCSslKeyPath: ${SW_CORE_GRPC_SSL_KEY_PATH:""}gRPCSslCertChainPath: ${SW_CORE_GRPC_SSL_CERT_CHAIN_PATH:""}gRPCSslTrustedCAPath: ${SW_CORE_GRPC_SSL_TRUSTED_CA_PATH:""}downsampling:- Hour- Day- Month# Set a timeout on metrics data. After the timeout has expired, the metrics data will automatically be deleted.enableDataKeeperExecutor: ${SW_CORE_ENABLE_DATA_KEEPER_EXECUTOR:true} # Turn it off then automatically metrics data delete will be close.dataKeeperExecutePeriod: ${SW_CORE_DATA_KEEPER_EXECUTE_PERIOD:5} # How often the data keeper executor runs periodically, unit is minuterecordDataTTL: ${SW_CORE_RECORD_DATA_TTL:3} # Unit is daymetricsDataTTL: ${SW_CORE_RECORD_DATA_TTL:7} # Unit is day# Cache metric data for 1 minute to reduce database queries, and if the OAP cluster changes within that minute,# the metrics may not be accurate within that minute.enableDatabaseSession: ${SW_CORE_ENABLE_DATABASE_SESSION:true}topNReportPeriod: ${SW_CORE_TOPN_REPORT_PERIOD:10} # top_n record worker report cycle, unit is minute# Extra model column are the column defined by in the codes, These columns of model are not required logically in aggregation or further query,# and it will cause more load for memory, network of OAP and storage.# But, being activated, user could see the name in the storage entities, which make users easier to use 3rd party tool, such as Kibana->ES, to query the data by themselves.activeExtraModelColumns: ${SW_CORE_ACTIVE_EXTRA_MODEL_COLUMNS:false}# The max length of service + instance names should be less than 200serviceNameMaxLength: ${SW_SERVICE_NAME_MAX_LENGTH:70}instanceNameMaxLength: ${SW_INSTANCE_NAME_MAX_LENGTH:70}# The max length of service + endpoint names should be less than 240endpointNameMaxLength: ${SW_ENDPOINT_NAME_MAX_LENGTH:150}
storage:selector: ${SW_STORAGE:elasticsearch7}elasticsearch:nameSpace: ${SW_NAMESPACE:""}clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}trustStorePath: ${SW_STORAGE_ES_SSL_JKS_PATH:""}trustStorePass: ${SW_STORAGE_ES_SSL_JKS_PASS:""}user: ${SW_ES_USER:""}password: ${SW_ES_PASSWORD:""}secretsManagementFile: ${SW_ES_SECRETS_MANAGEMENT_FILE:""} # Secrets management file in the properties format includes the username, password, which are managed by 3rd party tool.dayStep: ${SW_STORAGE_DAY_STEP:1} # Represent the number of days in the one minute/hour/day index.indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:1} # The index shards number is for store metrics data rather than basic segment recordsuperDatasetIndexShardsFactor: ${SW_STORAGE_ES_SUPER_DATASET_INDEX_SHARDS_FACTOR:5} # Super data set has been defined in the codes, such as trace segments. This factor provides more shards for the super data set, shards number = indexShardsNumber * superDatasetIndexShardsFactor. Also, this factor effects Zipkin and Jaeger traces.indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0}# Batch process setting, refer to https://www.elastic.co/guide/en/elasticsearch/client/java-api/5.5/java-docs-bulk-processor.htmlbulkActions: ${SW_STORAGE_ES_BULK_ACTIONS:1000} # Execute the bulk every 1000 requestsflushInterval: ${SW_STORAGE_ES_FLUSH_INTERVAL:10} # flush the bulk every 10 seconds whatever the number of requestsconcurrentRequests: ${SW_STORAGE_ES_CONCURRENT_REQUESTS:2} # the number of concurrent requestsresultWindowMaxSize: ${SW_STORAGE_ES_QUERY_MAX_WINDOW_SIZE:10000}metadataQueryMaxSize: ${SW_STORAGE_ES_QUERY_MAX_SIZE:5000}segmentQueryMaxSize: ${SW_STORAGE_ES_QUERY_SEGMENT_SIZE:200}profileTaskQueryMaxSize: ${SW_STORAGE_ES_QUERY_PROFILE_TASK_SIZE:200}advanced: ${SW_STORAGE_ES_ADVANCED:""}elasticsearch7:nameSpace: ${SW_NAMESPACE:"sw"}clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200,localhost:9201}protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}trustStorePath: ${SW_STORAGE_ES_SSL_JKS_PATH:""}trustStorePass: ${SW_STORAGE_ES_SSL_JKS_PASS:""}dayStep: ${SW_STORAGE_DAY_STEP:1} # Represent the number of days in the one minute/hour/day index.user: ${SW_ES_USER:""}password: ${SW_ES_PASSWORD:""}secretsManagementFile: ${SW_ES_SECRETS_MANAGEMENT_FILE:""} # Secrets management file in the properties format includes the username, password, which are managed by 3rd party tool.indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:1} # The index shards number is for store metrics data rather than basic segment recordsuperDatasetIndexShardsFactor: ${SW_STORAGE_ES_SUPER_DATASET_INDEX_SHARDS_FACTOR:5} # Super data set has been defined in the codes, such as trace segments. This factor provides more shards for the super data set, shards number = indexShardsNumber * superDatasetIndexShardsFactor. Also, this factor effects Zipkin and Jaeger traces.indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0}# Batch process setting, refer to https://www.elastic.co/guide/en/elasticsearch/client/java-api/5.5/java-docs-bulk-processor.htmlbulkActions: ${SW_STORAGE_ES_BULK_ACTIONS:1000} # Execute the bulk every 1000 requestsflushInterval: ${SW_STORAGE_ES_FLUSH_INTERVAL:10} # flush the bulk every 10 seconds whatever the number of requestsconcurrentRequests: ${SW_STORAGE_ES_CONCURRENT_REQUESTS:2} # the number of concurrent requestsresultWindowMaxSize: ${SW_STORAGE_ES_QUERY_MAX_WINDOW_SIZE:10000}metadataQueryMaxSize: ${SW_STORAGE_ES_QUERY_MAX_SIZE:5000}segmentQueryMaxSize: ${SW_STORAGE_ES_QUERY_SEGMENT_SIZE:200}profileTaskQueryMaxSize: ${SW_STORAGE_ES_QUERY_PROFILE_TASK_SIZE:200}advanced: ${SW_STORAGE_ES_ADVANCED:""}h2:driver: ${SW_STORAGE_H2_DRIVER:org.h2.jdbcx.JdbcDataSource}url: ${SW_STORAGE_H2_URL:jdbc:h2:mem:skywalking-oap-db}user: ${SW_STORAGE_H2_USER:sa}metadataQueryMaxSize: ${SW_STORAGE_H2_QUERY_MAX_SIZE:5000}mysql:properties:jdbcUrl: ${SW_JDBC_URL:"jdbc:mysql://localhost:3306/swtest"}dataSource.user: ${SW_DATA_SOURCE_USER:root}dataSource.password: ${SW_DATA_SOURCE_PASSWORD:root@1234}dataSource.cachePrepStmts: ${SW_DATA_SOURCE_CACHE_PREP_STMTS:true}dataSource.prepStmtCacheSize: ${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_SIZE:250}dataSource.prepStmtCacheSqlLimit: ${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_LIMIT:2048}dataSource.useServerPrepStmts: ${SW_DATA_SOURCE_USE_SERVER_PREP_STMTS:true}metadataQueryMaxSize: ${SW_STORAGE_MYSQL_QUERY_MAX_SIZE:5000}influxdb:# InfluxDB configurationurl: ${SW_STORAGE_INFLUXDB_URL:http://localhost:8086}user: ${SW_STORAGE_INFLUXDB_USER:root}password: ${SW_STORAGE_INFLUXDB_PASSWORD:}database: ${SW_STORAGE_INFLUXDB_DATABASE:skywalking}actions: ${SW_STORAGE_INFLUXDB_ACTIONS:1000} # the number of actions to collectduration: ${SW_STORAGE_INFLUXDB_DURATION:1000} # the time to wait at most (milliseconds)fetchTaskLogMaxSize: ${SW_STORAGE_INFLUXDB_FETCH_TASK_LOG_MAX_SIZE:5000} # the max number of fetch task log in a requestreceiver-sharing-server:selector: ${SW_RECEIVER_SHARING_SERVER:default}default:authentication: ${SW_AUTHENTICATION:""}
receiver-register:selector: ${SW_RECEIVER_REGISTER:default}default:receiver-trace:selector: ${SW_RECEIVER_TRACE:default}default:sampleRate: ${SW_TRACE_SAMPLE_RATE:10000} # The sample rate precision is 1/10000. 10000 means 100% sample in default.slowDBAccessThreshold: ${SW_SLOW_DB_THRESHOLD:default:200,mongodb:100} # The slow database access thresholds. Unit ms.receiver-jvm:selector: ${SW_RECEIVER_JVM:default}default:receiver-clr:selector: ${SW_RECEIVER_CLR:default}default:receiver-profile:selector: ${SW_RECEIVER_PROFILE:default}default:service-mesh:selector: ${SW_SERVICE_MESH:default}default:istio-telemetry:selector: ${SW_ISTIO_TELEMETRY:default}default:envoy-metric:selector: ${SW_ENVOY_METRIC:default}default:acceptMetricsService: ${SW_ENVOY_METRIC_SERVICE:true}alsHTTPAnalysis: ${SW_ENVOY_METRIC_ALS_HTTP_ANALYSIS:""}prometheus-fetcher:selector: ${SW_PROMETHEUS_FETCHER:default}default:active: ${SW_PROMETHEUS_FETCHER_ACTIVE:false}receiver_zipkin:selector: ${SW_RECEIVER_ZIPKIN:-}default:host: ${SW_RECEIVER_ZIPKIN_HOST:0.0.0.0}port: ${SW_RECEIVER_ZIPKIN_PORT:9411}contextPath: ${SW_RECEIVER_ZIPKIN_CONTEXT_PATH:/}receiver_jaeger:selector: ${SW_RECEIVER_JAEGER:-}default:gRPCHost: ${SW_RECEIVER_JAEGER_HOST:0.0.0.0}gRPCPort: ${SW_RECEIVER_JAEGER_PORT:14250}query:selector: ${SW_QUERY:graphql}graphql:path: ${SW_QUERY_GRAPHQL_PATH:/graphql}alarm:selector: ${SW_ALARM:default}default:telemetry:selector: ${SW_TELEMETRY:none}none:prometheus:host: ${SW_TELEMETRY_PROMETHEUS_HOST:0.0.0.0}port: ${SW_TELEMETRY_PROMETHEUS_PORT:1234}configuration:selector: ${SW_CONFIGURATION:none}none:grpc:host: ${SW_DCS_SERVER_HOST:""}port: ${SW_DCS_SERVER_PORT:80}clusterName: ${SW_DCS_CLUSTER_NAME:SkyWalking}period: ${SW_DCS_PERIOD:20}apollo:apolloMeta: ${SW_CONFIG_APOLLO:http://106.12.25.204:8080}apolloCluster: ${SW_CONFIG_APOLLO_CLUSTER:default}apolloEnv: ${SW_CONFIG_APOLLO_ENV:""}appId: ${SW_CONFIG_APOLLO_APP_ID:skywalking}period: ${SW_CONFIG_APOLLO_PERIOD:5}zookeeper:period: ${SW_CONFIG_ZK_PERIOD:60} # Unit seconds, sync period. Default fetch every 60 seconds.nameSpace: ${SW_CONFIG_ZK_NAMESPACE:/default}hostPort: ${SW_CONFIG_ZK_HOST_PORT:localhost:2181}# Retry PolicybaseSleepTimeMs: ${SW_CONFIG_ZK_BASE_SLEEP_TIME_MS:1000} # initial amount of time to wait between retriesmaxRetries: ${SW_CONFIG_ZK_MAX_RETRIES:3} # max number of times to retryetcd:period: ${SW_CONFIG_ETCD_PERIOD:60} # Unit seconds, sync period. Default fetch every 60 seconds.group: ${SW_CONFIG_ETCD_GROUP:skywalking}serverAddr: ${SW_CONFIG_ETCD_SERVER_ADDR:localhost:2379}clusterName: ${SW_CONFIG_ETCD_CLUSTER_NAME:default}consul:# Consul host and ports, separated by comma, e.g. 1.2.3.4:8500,2.3.4.5:8500hostAndPorts: ${SW_CONFIG_CONSUL_HOST_AND_PORTS:1.2.3.4:8500}# Sync period in seconds. Defaults to 60 seconds.period: ${SW_CONFIG_CONSUL_PERIOD:1}# Consul aclTokenaclToken: ${SW_CONFIG_CONSUL_ACL_TOKEN:""}exporter:selector: ${SW_EXPORTER:-}grpc:targetHost: ${SW_EXPORTER_GRPC_HOST:127.0.0.1}targetPort: ${SW_EXPORTER_GRPC_PORT:9870}

选择单节点模式

cluster:selector: ${SW_CLUSTER:standalone}

配置elasticsearch
${SW_NAMESPACE:“sw”} 为在es中建立索引的前缀

elasticsearch7:nameSpace: ${SW_NAMESPACE:"sw"}clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200,localhost:9201}protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}trustStorePath: ${SW_STORAGE_ES_SSL_JKS_PATH:""}trustStorePass: ${SW_STORAGE_ES_SSL_JKS_PASS:""}dayStep: ${SW_STORAGE_DAY_STEP:1} # Represent the number of days in the one minute/hour/day index.user: ${SW_ES_USER:""}password: ${SW_ES_PASSWORD:""}secretsManagementFile: ${SW_ES_SECRETS_MANAGEMENT_FILE:""} # Secrets management file in the properties format includes the username, password, which are managed by 3rd party tool.indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:1} # The index shards number is for store metrics data rather than basic segment recordsuperDatasetIndexShardsFactor: ${SW_STORAGE_ES_SUPER_DATASET_INDEX_SHARDS_FACTOR:5} # Super data set has been defined in the codes, such as trace segments. This factor provides more shards for the super data set, shards number = indexShardsNumber * superDatasetIndexShardsFactor. Also, this factor effects Zipkin and Jaeger traces.indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0}# Batch process setting, refer to https://www.elastic.co/guide/en/elasticsearch/client/java-api/5.5/java-docs-bulk-processor.htmlbulkActions: ${SW_STORAGE_ES_BULK_ACTIONS:1000} # Execute the bulk every 1000 requestsflushInterval: ${SW_STORAGE_ES_FLUSH_INTERVAL:10} # flush the bulk every 10 seconds whatever the number of requestsconcurrentRequests: ${SW_STORAGE_ES_CONCURRENT_REQUESTS:2} # the number of concurrent requestsresultWindowMaxSize: ${SW_STORAGE_ES_QUERY_MAX_WINDOW_SIZE:10000}metadataQueryMaxSize: ${SW_STORAGE_ES_QUERY_MAX_SIZE:5000}segmentQueryMaxSize: ${SW_STORAGE_ES_QUERY_SEGMENT_SIZE:200}profileTaskQueryMaxSize: ${SW_STORAGE_ES_QUERY_PROFILE_TASK_SIZE:200}advanced: ${SW_STORAGE_ES_ADVANCED:""}

web管理端配置

路径 webapp/webapp.yml

server:port: 18180collector:path: /graphqlribbon:ReadTimeout: 10000# Point to all backend's restHost:restPort, split by ,listOfServers: 127.0.0.1:12800

启动项目

启动文件位置bin目录
收集器启动

./oapService.sh

web端启动

./webappService.sh

同时启动

./startup.sh

springboot集成skywalking

启动参数

 -javaagent:/lib/sky/agent/skywalking-agent.jar -Dskywalking.agent.service_name=report_service_name -Dskywalking.collector.backend_service=127.0.0.1:11800-Dskywalking.logging.dir=/tmp/logs/ -Dskywalking.logging.file_name=report_service_name .log
参数 说明
skywalking.agent.service_name 注册skywalking的服务名
skywalking.collector.backend_service 后端ip,多个用 , 分割
skywalking.logging.dir 日志目录
skywalking.logging.file_name 日志文件名

启动时添加vm参数 指定配置文件

java -javaagent:/home/data/apache-skywalking-apm-incubating/agent/skywalking-agent.jar -Dskywalking_config=/home/data/apache-skywalking-apm-incubating/agent/config/agent-copy.config -jar my-project.jar

或者直接指定参数

java -javaagent:C:\Users\13112\Desktop\agent\skywalking-agent.jar -Dskywalking.agent.service_name=web -Dskywalking.collector.backend_service=localhost:11800 -jar my-project.jar

skywalking单节点部署相关推荐

  1. Ubuntu下用devstack单节点部署Openstack

    一.实验环境 本实验是在Vmware Workstation下创建的单台Ubuntu服务器版系统中,利用devstack部署的Openstack Pike版. 宿主机:win10 1803  8G内存 ...

  2. k8s二进制单节点部署

    k8s二进制单节点部署 常见的k8s部署方式 Kubernetes二进制部署(单节点) 环境准备 部署etcd集群(这里就不在单独的服务器上部署,直接部署在各节点上,节省资源) 下载证书制作工具 利用 ...

  3. 啃K8s之快速入门,以及哭吧S(k8s)单节点部署

    啃K8s之快速入门,以及哭吧S(k8s)单节点部署 一:Kubernets概述 1.1:Kubernets是什么? 1.2:Kubernets特性 1.3:Kubernets群集架构与组件 1.3.1 ...

  4. Elasticsearch在Linux中的单节点部署和集群部署

    目录 一.Elasticsearch简介 二.Linux单节点部署 1.软件下载解压 2.创建用户 3.修改配置文件 4.切换到刚刚创建的用户启动软件 5.测试 三.Linux集群配置 1.拷贝文件 ...

  5. openstack 系列: 基于CentOS7系统使用packstack工具单节点部署openstacktrain---Part-I安装简易命令

    1说明 本人非linux专业人士,更不是云计算专家 部署过程是从各大博客自己百度知道 各种搜索排查,硬是搭起了train环境 过程纠结,先是在win 10 vmware 上安装centos7 再基于c ...

  6. Graylog 日志服务器单节点部署

    资料 https://docs.graylog.org/docs/ 简介 Graylog项目由Lennart Koopmann在2009年左右启动.当时,最着名的日志管理软件vendor发布了他们产品 ...

  7. ElasticSearch学习(四)——Linux 单节点部署

    文章名称 地址 ElasticSearch学习(一)--概述 前往 ElasticSearch学习(二)--索引.文档简单操作 前往 ElasticSearch学习(三)--Windows 集群部署 ...

  8. 小试牛刀之Kolla单节点部署

    写在前面的话,笔者目的是为了尝试用Kolla来方便快捷的部署OpenStack,为以后多节点部署打下基础. Kola简介: kolla项目起源于TripleO项目,聚焦于使用Docker容器部署Ope ...

  9. Kunbernetes——二进制单节点部署

    常见的k8s部署方式 1.Mini kube Minikube是一个工具,可以在本地快速运行一个单节点微型K8s,仅用于学习预览K8s的一些特性使用 部署地址:  https://kubernetes ...

最新文章

  1. python tkinter设置窗口大小_Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例...
  2. java jsp js xml_jsp实现将信息放入xml中的方法
  3. iOS 7 二维码的生成
  4. Python第一天:你必须要知道的Python擅长领域以及各种重点学习框架(包含Python在世界上...
  5. 小马哥spring编程核心思想_Spring核心思想理解
  6. ResNet 残差、退化等细节解读
  7. 神经网络—pytorch60min入门教程
  8. 最简单jquery轮播图效果
  9. 角色管理与今日内容介绍
  10. “约见”面试官系列之常见面试题之第五十九篇之js中push(),pop(),unshift(),shift()的用法小结 (建议收藏)
  11. 火狐对ajax的onreadystatechange与IE的不同。
  12. jupyter 写sql_了解适用于SQL Server的Jupyter Notebooks
  13. ubuntu 環境下 bochs 的安裝
  14. 混响运行于CPU或者DSP时的部分指标对比
  15. excel怎么将英文小写转大写
  16. F 小名的回答 (奇偶) 湖南师范大学2018年大学生程序设计竞赛新生赛
  17. python打砖块游戏算法设计分析_Python打砖块
  18. 实现60fps的网易云音乐首页
  19. 12306怎样才能防止抢票?
  20. spring boot实现验证码登录

热门文章

  1. 入门C语言——逻辑运算
  2. H5 canvas基础入门到捕鱼达人小游戏实现(3)-canvas运动入门,渐变,文字渲染,阴影
  3. pythonssl双向认证_flas的双向ssl认证
  4. pysot出现的问题---AssertionError: /home/pysot-master/siamrpn_r50_l234_dwxcBasketball/img/0001.jpg
  5. mix3android auto,小米MIX3 魔趣OS 安卓10 MagiskV21版 完美ROOT 纯净完美 原生极简 纯净推荐...
  6. 公司信息系统架构建设规划
  7. 与人合伙做生意,每人出资20万,一方只出资不出力,另一方出资又出力股份如何分配??...
  8. OpenCV C++案例实战十三《人脸打马赛克》
  9. psd网站模板转换html,PSD网页模板怎么用?急将psd网页模版转换为html的详细讲解?...
  10. Android 自定义指示器NBIndicatorView