jjzjj

FISCO BCOS从零实战(详细)(一)

青藤才子 2023-06-07 原文

FISCO BCOS从零实战(详细)(一)

一:简介说明

1.1项目架构

参考链接: FISCO BCOS 技术文档-版本和兼容性
FISCO BCOS 3.x

接入层:接入层主要负责区块链连接的能力,包括提供P2P能力的“对外网关服务”和提供给SDK访问的“对内网关服务”。在联盟链的体系中,“对外网关服务”管理了机构对外连接的出入口,负责机构级别的安全认证。“对内网关服务”则提供给机构内的客户端(应用端)访问入口。两个网关服务都可以平行扩展、多活部署、负载均衡,满足高可用要求。

调度层:调度层是区块链内核运转调度的“大脑中枢”系统,负责整个区块链系统运行调度,包括网络分发调度、交易池管理、共识机制、计算调度等模块。其中,网络分发模块主要是与接入层实现互联通信功能,处理消息分发逻辑;交易池管理主要负责交易的接收、签名验证、淘汰等功能;共识机制负责交易排序、区块打包以及对区块结果进行分布式共识,确保一致性;计算调度则完成交易验证(核心是智能合约的验证)的调度处理,实现并行验证,是整个系统吞吐量的关键。

计算层:这里主要负责交易验证,需要将交易解码放入合约虚拟机中执行,得到交易执行结果。交易验证是整个区块链的核心,尤其是基于智能合约的区块链系统,交易验证的计算可能需要花费较大的CPU开销。因此,如何实现并行化交易验证,通过集群化模式实现交易验证计算的平行扩展是非常重要的。

存储层:存储层负责落盘存储交易、区块、账本状态等数据,存储层重点关注如何支撑海量数据的存储,采用分布式存储集群的方式可实现存储容量可扩展。分布式存储业界已有许多稳定可复用的开源组件(如TiKV),这层将复用成熟组件。

管理层:管理层是为整个区块链系统各模块实现可视化管理的平台,包括部署、配置、日志、网络路由等管理功能。FISCO BCOS 3.0系统架构基于开源微服务框架Tars构建,这层的能力复用成熟的Tars-Framwork管理组件。

1.2版本信息

硬件推荐配置
CPU2.4GHz * 8核
内存8GB
存储4TB
网络带宽10Mb

本文使用硬件
CPU: Intel® CoreTMI7-10875H CPU @ 2.30GHz * 8核
内存 : 虚拟机8GB
存储 : 虚拟机100GB

本文使用软件系统

FISCO-BCOS v3.0.1推荐版本最低版本说明
Console3.0.13.0.0
Java SDK3.0.13.0.0
CPP SDK3.0.03.0.0
Solidity0.8.11最低 0.4.25,最高 0.8.11需根据合约版本下载编译器(控制台)
WBC-Liquid1.0.0-rc31.0.0-rc3

二:快速搭建

参考链接: 搭建第一个区块链网络
搭建Air版本FISCO BCOS联盟链

安装centos依赖

sudo yum install -y curl openssl openssl-devel wget

输出结果:

已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.ustc.edu.cn
 * extras: mirrors.ustc.edu.cn
 * updates: mirrors.ustc.edu.cn
软件包 wget-1.14-18.el7_6.1.x86_64 已安装并且是最新版本
正在解决依赖关系
--> 正在检查事务
---> 软件包 curl.x86_64.0.7.29.0-59.el7 将被 升级
---> 软件包 curl.x86_64.0.7.29.0-59.el7_9.1 将被 更新
--> 正在处理依赖关系 libcurl = 7.29.0-59.el7_9.1,它被软件包 curl-7.29.0-59.el7_9.1.x86_64 需要
---> 软件包 openssl.x86_64.1.1.0.2k-19.el7 将被 升级
---> 软件包 openssl.x86_64.1.1.0.2k-25.el7_9 将被 更新
--> 正在处理依赖关系 openssl-libs(x86-64) = 1:1.0.2k-25.el7_9,它被软件包 1:openssl-1.0.2k-25.el7_9.x86_64 需要
---> 软件包 openssl-devel.x86_64.1.1.0.2k-25.el7_9 将被 安装
--> 正在处理依赖关系 zlib-devel(x86-64),它被软件包 1:openssl-devel-1.0.2k-25.el7_9.x86_64 需要
--> 正在处理依赖关系 krb5-devel(x86-64),它被软件包 1:openssl-devel-1.0.2k-25.el7_9.x86_64 需要
--> 正在检查事务
---> 软件包 krb5-devel.x86_64.0.1.15.1-54.el7_9 将被 安装
--> 正在处理依赖关系 libkadm5(x86-64) = 1.15.1-54.el7_9,它被软件包 krb5-devel-1.15.1-54.el7_9.x86_64 需要
--> 正在处理依赖关系 krb5-libs(x86-64) = 1.15.1-54.el7_9,它被软件包 krb5-devel-1.15.1-54.el7_9.x86_64 需要
--> 正在处理依赖关系 libverto-devel,它被软件包 krb5-devel-1.15.1-54.el7_9.x86_64 需要
--> 正在处理依赖关系 libselinux-devel,它被软件包 krb5-devel-1.15.1-54.el7_9.x86_64 需要
--> 正在处理依赖关系 libcom_err-devel,它被软件包 krb5-devel-1.15.1-54.el7_9.x86_64 需要
--> 正在处理依赖关系 keyutils-libs-devel,它被软件包 krb5-devel-1.15.1-54.el7_9.x86_64 需要
---> 软件包 libcurl.x86_64.0.7.29.0-59.el7 将被 升级
---> 软件包 libcurl.x86_64.0.7.29.0-59.el7_9.1 将被 更新
---> 软件包 openssl-libs.x86_64.1.1.0.2k-19.el7 将被 升级
---> 软件包 openssl-libs.x86_64.1.1.0.2k-25.el7_9 将被 更新
---> 软件包 zlib-devel.x86_64.0.1.2.7-20.el7_9 将被 安装
--> 正在处理依赖关系 zlib = 1.2.7-20.el7_9,它被软件包 zlib-devel-1.2.7-20.el7_9.x86_64 需要
--> 正在检查事务
---> 软件包 keyutils-libs-devel.x86_64.0.1.5.8-3.el7 将被 安装
---> 软件包 krb5-libs.x86_64.0.1.15.1-50.el7 将被 升级
--> 正在处理依赖关系 krb5-libs(x86-64) = 1.15.1-50.el7,它被软件包 krb5-workstation-1.15.1-50.el7.x86_64 需要
---> 软件包 krb5-libs.x86_64.0.1.15.1-54.el7_9 将被 更新
---> 软件包 libcom_err-devel.x86_64.0.1.42.9-19.el7 将被 安装
---> 软件包 libkadm5.x86_64.0.1.15.1-50.el7 将被 升级
---> 软件包 libkadm5.x86_64.0.1.15.1-54.el7_9 将被 更新
---> 软件包 libselinux-devel.x86_64.0.2.5-15.el7 将被 安装
--> 正在处理依赖关系 libsepol-devel(x86-64) >= 2.5-10,它被软件包 libselinux-devel-2.5-15.el7.x86_64 需要
--> 正在处理依赖关系 pkgconfig(libsepol),它被软件包 libselinux-devel-2.5-15.el7.x86_64 需要
--> 正在处理依赖关系 pkgconfig(libpcre),它被软件包 libselinux-devel-2.5-15.el7.x86_64 需要
---> 软件包 libverto-devel.x86_64.0.0.2.5-4.el7 将被 安装
---> 软件包 zlib.x86_64.0.1.2.7-18.el7 将被 升级
---> 软件包 zlib.x86_64.0.1.2.7-20.el7_9 将被 更新
--> 正在检查事务
---> 软件包 krb5-workstation.x86_64.0.1.15.1-50.el7 将被 升级
---> 软件包 krb5-workstation.x86_64.0.1.15.1-54.el7_9 将被 更新
---> 软件包 libsepol-devel.x86_64.0.2.5-10.el7 将被 安装
---> 软件包 pcre-devel.x86_64.0.8.32-17.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

============================================================================================
 Package                     架构           版本                      源               大小
============================================================================================
正在安装:
 openssl-devel               x86_64         1:1.0.2k-25.el7_9         updates         1.5 M
正在更新:
 curl                        x86_64         7.29.0-59.el7_9.1         updates         271 k
 openssl                     x86_64         1:1.0.2k-25.el7_9         updates         494 k
为依赖而安装:
 keyutils-libs-devel         x86_64         1.5.8-3.el7               base             37 k
 krb5-devel                  x86_64         1.15.1-54.el7_9           updates         273 k
 libcom_err-devel            x86_64         1.42.9-19.el7             base             32 k
 libselinux-devel            x86_64         2.5-15.el7                base            187 k
 libsepol-devel              x86_64         2.5-10.el7                base             77 k
 libverto-devel              x86_64         0.2.5-4.el7               base             12 k
 pcre-devel                  x86_64         8.32-17.el7               base            480 k
 zlib-devel                  x86_64         1.2.7-20.el7_9            updates          50 k
为依赖而更新:
 krb5-libs                   x86_64         1.15.1-54.el7_9           updates         810 k
 krb5-workstation            x86_64         1.15.1-54.el7_9           updates         821 k
 libcurl                     x86_64         7.29.0-59.el7_9.1         updates         223 k
 libkadm5                    x86_64         1.15.1-54.el7_9           updates         179 k
 openssl-libs                x86_64         1:1.0.2k-25.el7_9         updates         1.2 M
 zlib                        x86_64         1.2.7-20.el7_9            updates          90 k

事务概要
============================================================================================
安装  1 软件包 (+8 依赖软件包)
升级  2 软件包 (+6 依赖软件包)

总下载量:6.6 M
Downloading packages:
No Presto metadata available for updates
警告:/var/cache/yum/x86_64/7/base/packages/keyutils-libs-devel-1.5.8-3.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
keyutils-libs-devel-1.5.8-3.el7.x86_64.rpm 的公钥尚未安装
(1/17): keyutils-libs-devel-1.5.8-3.el7.x86_64.rpm                   |  37 kB  00:00:00     
curl-7.29.0-59.el7_9.1.x86_64.rpm 的公钥尚未安装
(2/17): curl-7.29.0-59.el7_9.1.x86_64.rpm                            | 271 kB  00:00:00     
(3/17): krb5-libs-1.15.1-54.el7_9.x86_64.rpm                         | 810 kB  00:00:00     
(4/17): krb5-devel-1.15.1-54.el7_9.x86_64.rpm                        | 273 kB  00:00:00     
(5/17): krb5-workstation-1.15.1-54.el7_9.x86_64.rpm                  | 821 kB  00:00:00     
(6/17): libcurl-7.29.0-59.el7_9.1.x86_64.rpm                         | 223 kB  00:00:00     
(7/17): libkadm5-1.15.1-54.el7_9.x86_64.rpm                          | 179 kB  00:00:00     
(8/17): libcom_err-devel-1.42.9-19.el7.x86_64.rpm                    |  32 kB  00:00:00     
(9/17): libsepol-devel-2.5-10.el7.x86_64.rpm                         |  77 kB  00:00:00     
(10/17): libselinux-devel-2.5-15.el7.x86_64.rpm                      | 187 kB  00:00:00     
(11/17): libverto-devel-0.2.5-4.el7.x86_64.rpm                       |  12 kB  00:00:00     
(12/17): openssl-1.0.2k-25.el7_9.x86_64.rpm                          | 494 kB  00:00:00     
(13/17): openssl-libs-1.0.2k-25.el7_9.x86_64.rpm                     | 1.2 MB  00:00:00     
(14/17): zlib-1.2.7-20.el7_9.x86_64.rpm                              |  90 kB  00:00:00     
(15/17): zlib-devel-1.2.7-20.el7_9.x86_64.rpm                        |  50 kB  00:00:00     
(16/17): pcre-devel-8.32-17.el7.x86_64.rpm                           | 480 kB  00:00:00     
(17/17): openssl-devel-1.0.2k-25.el7_9.x86_64.rpm                    | 1.5 MB  00:00:00     
--------------------------------------------------------------------------------------------
总计                                                        4.8 MB/s | 6.6 MB  00:00:01     
从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 检索密钥
导入 GPG key 0xF4A80EB5:
 用户ID     : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
 指纹       : 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 软件包     : centos-release-7-9.2009.0.el7.centos.x86_64 (@anaconda)
 来自       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在更新    : zlib-1.2.7-20.el7_9.x86_64                                             1/25 
  正在更新    : krb5-libs-1.15.1-54.el7_9.x86_64                                       2/25 
  正在更新    : 1:openssl-libs-1.0.2k-25.el7_9.x86_64                                  3/25 
  正在更新    : libkadm5-1.15.1-54.el7_9.x86_64                                        4/25 
  正在更新    : libcurl-7.29.0-59.el7_9.1.x86_64                                       5/25 
  正在安装    : zlib-devel-1.2.7-20.el7_9.x86_64                                       6/25 
  正在安装    : libcom_err-devel-1.42.9-19.el7.x86_64                                  7/25 
  正在安装    : libverto-devel-0.2.5-4.el7.x86_64                                      8/25 
  正在安装    : libsepol-devel-2.5-10.el7.x86_64                                       9/25 
  正在安装    : pcre-devel-8.32-17.el7.x86_64                                         10/25 
  正在安装    : libselinux-devel-2.5-15.el7.x86_64                                    11/25 
  正在安装    : keyutils-libs-devel-1.5.8-3.el7.x86_64                                12/25 
  正在安装    : krb5-devel-1.15.1-54.el7_9.x86_64                                     13/25 
  正在安装    : 1:openssl-devel-1.0.2k-25.el7_9.x86_64                                14/25 
  正在更新    : curl-7.29.0-59.el7_9.1.x86_64                                         15/25 
  正在更新    : krb5-workstation-1.15.1-54.el7_9.x86_64                               16/25 
  正在更新    : 1:openssl-1.0.2k-25.el7_9.x86_64                                      17/25 
  清理        : 1:openssl-1.0.2k-19.el7.x86_64                                        18/25 
  清理        : krb5-workstation-1.15.1-50.el7.x86_64                                 19/25 
  清理        : curl-7.29.0-59.el7.x86_64                                             20/25 
  清理        : libcurl-7.29.0-59.el7.x86_64                                          21/25 
  清理        : libkadm5-1.15.1-50.el7.x86_64                                         22/25 
  清理        : krb5-libs-1.15.1-50.el7.x86_64                                        23/25 
  清理        : 1:openssl-libs-1.0.2k-19.el7.x86_64                                   24/25 
  清理        : zlib-1.2.7-18.el7.x86_64                                              25/25 
  验证中      : libselinux-devel-2.5-15.el7.x86_64                                     1/25 
  验证中      : keyutils-libs-devel-1.5.8-3.el7.x86_64                                 2/25 
  验证中      : zlib-1.2.7-20.el7_9.x86_64                                             3/25 
  验证中      : 1:openssl-1.0.2k-25.el7_9.x86_64                                       4/25 
  验证中      : pcre-devel-8.32-17.el7.x86_64                                          5/25 
  验证中      : libsepol-devel-2.5-10.el7.x86_64                                       6/25 
  验证中      : libverto-devel-0.2.5-4.el7.x86_64                                      7/25 
  验证中      : libkadm5-1.15.1-54.el7_9.x86_64                                        8/25 
  验证中      : 1:openssl-libs-1.0.2k-25.el7_9.x86_64                                  9/25 
  验证中      : 1:openssl-devel-1.0.2k-25.el7_9.x86_64                                10/25 
  验证中      : zlib-devel-1.2.7-20.el7_9.x86_64                                      11/25 
  验证中      : krb5-devel-1.15.1-54.el7_9.x86_64                                     12/25 
  验证中      : curl-7.29.0-59.el7_9.1.x86_64                                         13/25 
  验证中      : krb5-workstation-1.15.1-54.el7_9.x86_64                               14/25 
  验证中      : libcom_err-devel-1.42.9-19.el7.x86_64                                 15/25 
  验证中      : krb5-libs-1.15.1-54.el7_9.x86_64                                      16/25 
  验证中      : libcurl-7.29.0-59.el7_9.1.x86_64                                      17/25 
  验证中      : libkadm5-1.15.1-50.el7.x86_64                                         18/25 
  验证中      : 1:openssl-libs-1.0.2k-19.el7.x86_64                                   19/25 
  验证中      : zlib-1.2.7-18.el7.x86_64                                              20/25 
  验证中      : krb5-workstation-1.15.1-50.el7.x86_64                                 21/25 
  验证中      : 1:openssl-1.0.2k-19.el7.x86_64                                        22/25 
  验证中      : libcurl-7.29.0-59.el7.x86_64                                          23/25 
  验证中      : curl-7.29.0-59.el7.x86_64                                             24/25 
  验证中      : krb5-libs-1.15.1-50.el7.x86_64                                        25/25 

已安装:
  openssl-devel.x86_64 1:1.0.2k-25.el7_9                                                    

作为依赖被安装:
  keyutils-libs-devel.x86_64 0:1.5.8-3.el7       krb5-devel.x86_64 0:1.15.1-54.el7_9       
  libcom_err-devel.x86_64 0:1.42.9-19.el7        libselinux-devel.x86_64 0:2.5-15.el7      
  libsepol-devel.x86_64 0:2.5-10.el7             libverto-devel.x86_64 0:0.2.5-4.el7       
  pcre-devel.x86_64 0:8.32-17.el7                zlib-devel.x86_64 0:1.2.7-20.el7_9        

更新完毕:
  curl.x86_64 0:7.29.0-59.el7_9.1              openssl.x86_64 1:1.0.2k-25.el7_9             

作为依赖被升级:
  krb5-libs.x86_64 0:1.15.1-54.el7_9         krb5-workstation.x86_64 0:1.15.1-54.el7_9     
  libcurl.x86_64 0:7.29.0-59.el7_9.1         libkadm5.x86_64 0:1.15.1-54.el7_9             
  openssl-libs.x86_64 1:1.0.2k-25.el7_9      zlib.x86_64 0:1.2.7-20.el7_9                  

完毕!

“sudo” : 意为以管理员身份运行

参考链接: sudo 命令

“yum” : 是一个在CentOS中的Shell前端软件包管理器。能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

参考链接: yum 命令

“install” : 安装命令

参考链接: install命令

“-y” : 当安装过程提示选择全部为"yes"

“curl”

“openssl”

“openssl-devel”

“wget”

创建操作目录

cd ~ && mkdir -p fisco && cd fisco

下载安装脚本

curl -#LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v3.0.1/build_chain.sh && chmod u+x build_chain.sh

输出结果:

######################################################################## 100.0%

搭建4节点非国密联盟链

请确保机器的30300-30303,20200-20203,8545-8548端口没有被占用。

在fisco目录下执行下面的指令,生成一条单群组4节点的FISCO链:

bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200

其中-p选项指定起始端口,分别是p2p监听端口、rpc监听端口

输出结果:

[INFO] Downloading tassl binary from https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/FISCO-BCOS/FISCO-BCOS/tools/tassl-1.1.1b/tassl-1.1.1b-linux-x86_64.tar.gz...
--2022-10-06 15:31:40--  https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/FISCO-BCOS/FISCO-BCOS/tools/tassl-1.1.1b/tassl-1.1.1b-linux-x86_64.tar.gz
正在解析主机 osp-1257653870.cos.ap-guangzhou.myqcloud.com (osp-1257653870.cos.ap-guangzhou.myqcloud.com)... 112.49.57.187, 112.49.57.178, 112.49.57.151, ...
正在连接 osp-1257653870.cos.ap-guangzhou.myqcloud.com (osp-1257653870.cos.ap-guangzhou.myqcloud.com)|112.49.57.187|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:1780655 (1.7M) [application/x-gzip]
正在保存至: “tassl-1.1.1b-linux-x86_64.tar.gz”

100%[==================================================>] 1,780,655   3.29MB/s 用时 0.5s   

2022-10-06 15:31:41 (3.29 MB/s) - 已保存 “tassl-1.1.1b-linux-x86_64.tar.gz” [1780655/1780655])

._tassl-1.1.1b-linux-x86_64
tar: 忽略未知的扩展头关键字‘LIBARCHIVE.xattr.com.apple.quarantine’
tassl-1.1.1b-linux-x86_64
[INFO] Downloading fisco-bcos binary from https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/FISCO-BCOS/FISCO-BCOS/releases/v3.0.1/fisco-bcos-linux-x86_64.tar.gz ...
######################################################################## 100.0%
[INFO] Generate ca cert successfully!
Processing IP:127.0.0.1 Total:4
[INFO] Generate ./nodes/127.0.0.1/sdk cert successful!
[INFO] Generate ./nodes/127.0.0.1/node0/conf cert successful!
[INFO] Generate ./nodes/127.0.0.1/node1/conf cert successful!
[INFO] Generate ./nodes/127.0.0.1/node2/conf cert successful!
[INFO] Generate ./nodes/127.0.0.1/node3/conf cert successful!
[INFO] Generate uuid success: a710aa05-ecd6-49c9-909b-7bad5296e0d5
[INFO] Generate uuid success: 573df05f-c6c0-4031-9c47-2e055adc0347
[INFO] Generate uuid success: 40abbb61-3e0c-4a88-9280-94892a707328
[INFO] Generate uuid success: c39ae3d8-7a37-4abb-bc84-857fa210b028
==============================================================
[INFO] GroupID               : group0
[INFO] ChainID               : chain0
[INFO] fisco-bcos path      : bin/fisco-bcos
[INFO] Auth mode            : false
[INFO] Start port           : 30300 20200
[INFO] Server IP            : 127.0.0.1:4
[INFO] SM model             : false
[INFO] Output dir           : ./nodes
[INFO] All completed. Files in ./nodes

启动所有节点

bash nodes/127.0.0.1/start_all.sh

输出结果:

try to start node0
try to start node1
try to start node2
try to start node3
 node0 start successfully pid=56970
 node1 start successfully pid=56972
 node2 start successfully pid=56974
 node3 start successfully pid=56968

检查进程是否启动

ps aux |grep -v grep |grep fisco-bcos

输出结果:

root      56968 10.2  0.3 1136916 25376 pts/0   Sl   15:33   0:03 /root/fisco/nodes/127.0.0.1/node3/../fisco-bcos -c config.ini -g config.genesis
root      56970  9.5  0.2 1132816 20340 pts/0   Sl   15:33   0:03 /root/fisco/nodes/127.0.0.1/node0/../fisco-bcos -c config.ini -g config.genesis
root      56972  9.3  0.2 1136916 20304 pts/0   Sl   15:33   0:03 /root/fisco/nodes/127.0.0.1/node1/../fisco-bcos -c config.ini -g config.genesis
root      56974  9.4  0.2 1145108 22472 pts/0   Sl   15:33   0:03 /root/fisco/nodes/127.0.0.1/node2/../fisco-bcos -c config.ini -g config.genesis

查看每个节点的网络连接数目
以node0为例:

tail -f nodes/127.0.0.1/node0/log/* |grep -i "heartBeat,connected count"

正常情况下会每间隔10秒输出连接信息,从输出日志可看出node0与另外3个节点均有连接,网络连接正常:

info|2022-10-06 15:33:45.671633|[P2PService][Service][METRIC]heartBeat,connected count=3
info|2022-10-06 15:33:55.672023|[P2PService][Service][METRIC]heartBeat,connected count=3
info|2022-10-06 15:34:05.672172|[P2PService][Service][METRIC]heartBeat,connected count=3
info|2022-10-06 15:34:15.672484|[P2PService][Service][METRIC]heartBeat,connected count=3

有关FISCO BCOS从零实战(详细)(一)的更多相关文章

  1. Observability:从零开始创建 Java 微服务并监控它 (二) - 2

    这篇文章是继上一篇文章“Observability:从零开始创建Java微服务并监控它(一)”的续篇。在上一篇文章中,我们讲述了如何创建一个Javaweb应用,并使用Filebeat来收集应用所生成的日志。在今天的文章中,我来详述如何收集应用的指标,使用APM来监控应用并监督web服务的在线情况。源码可以在地址 https://github.com/liu-xiao-guo/java_observability 进行下载。摄入指标指标被视为可以随时更改的时间点值。当前请求的数量可以改变任何毫秒。你可能有1000个请求的峰值,然后一切都回到一个请求。这也意味着这些指标可能不准确,你还想提取最小/

  2. 在VMware16虚拟机安装Ubuntu详细教程 - 2

    在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主

  3. 微信小程序开发入门与实战(Behaviors使用) - 2

    @作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors    1、什么是behaviors    2、behaviors的工作方式    3、创建behavior    4、导入并使用behavior    5、behavior中所有可用的节点    6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors    1、什么是behaviorsbehaviors是小程序中,用于实现

  4. 100个python算法超详细讲解:画直线 - 2

    1.问题描述使用Python的turtle(海龟绘图)模块提供的函数绘制直线。2.问题分析一幅复杂的图形通常都可以由点、直线、三角形、矩形、平行四边形、圆、椭圆和圆弧等基本图形组成。其中的三角形、矩形、平行四边形又可以由直线组成,而直线又是由两个点确定的。我们使用Python的turtle模块所提供的函数来绘制直线。在使用之前我们先介绍一下turtle模块的相关知识点。turtle模块提供面向对象和面向过程两种形式的海龟绘图基本组件。面向对象的接口类如下:1)TurtleScreen类:定义图形窗口作为绘图海龟的运动场。它的构造器需要一个tkinter.Canvas或ScrolledCanva

  5. H2数据库配置及相关使用方式一站式介绍(极为详细并整理官方文档) - 2

    目录H2数据库入门以及实际开发时的使用1.H2数据库的初识1.1H2数据库介绍1.2为什么要使用嵌入式数据库?1.3嵌入式数据库对比1.3.1性能对比1.4技术选型思考2.H2数据库实战2.1H2数据库下载搭建以及部署2.1.1H2数据库的下载2.1.2数据库启动2.1.2.1windows系统可以在bin目录下执行h2.bat2.1.2.2同理可以通过cmd直接使用命令进行启动:2.1.2.3启动后控制台页面:2.1.3spring整合H2数据库2.1.3.1引入依赖文件2.1.4数据库通过file模式实际保存数据的位置2.2H2数据库操作2.2.1Mysql兼容模式2.2.2Mysql模式

  6. 华为ensp详细安装包、安装教程及所遇问题 - 2

    目录一、安装包链接二、安装详细步骤1.安装Wireshark和WinPcap2.安装OracleVMVirtualBox3.安装ensp三、安装后注册四、启动路由器出现40错误怎么解决一、安装包链接二、安装详细步骤链接:https://pan.baidu.com/s/1QbUUYMOMIV2oeIKHWP1SpA?pwd=xftx提取码:xftx1.安装Wireshark和WinPcap找到Wireshark安装包所在文件夹,双击它,按照以下步骤安装。2.安装OracleVMVirtualBox找到OracleVMVirtualBox安装包所在文件夹,双击它,按照以下步骤安装。注:可自定义安装

  7. 你真正了解什么是接口测试么?接口实战一“篇”入魂 - 2

    最近在工作中,看到一些新手测试同学,对接口测试存在很多疑问,甚至包括一些从事软件测试3,5年的同学,在聊到接口时,也是一知半解;今天借着这个机会,对接口测试做个实战教学,顺便总结一下经验,分享给大家。计划拆分成4个模块跟大家做一个分享,(接口测试、接口基础知识、接口自动化、接口进阶)感兴趣的小伙伴记得关注,希望对你的日常工作和求职面试,带来一些帮助。注:文章较长有5000多字,希望小伙伴们认真看完,当然有些内容对小白同学不是太友好,如果你需要详细了解其中的一些概念或者名词,请在文章之后留言,后续我将针对大家的疑问,整理输出一些大家感兴趣的文章。随着开发模式的迭代更新,前后端分离已不是新的概念,

  8. Linux操作系统CentOS7安装Nginx[详细版] - 2

    Nginx安装1.官网下载Nginx2.使用XShell和Xftp将压缩包上传到Linux虚拟机中3.解压文件nginx-1.20.2.tar.gz4.配置nginx5.启动nginx6.拓展(修改端口和常用命令)(一)修改nginx端口(二)常用命令1.官网下载Nginxhttp://nginx.org/en/download.html这里我下载的是1.20.2版本,大家按需下载对应稳定版即可2.使用XShell和Xftp将压缩包上传到Linux虚拟机中没有XShell可以参考《Linux操作系统CentOS7连接XShell》3.解压文件nginx-1.20.2.tar.gz1)检查是否存

  9. 从零开始学习Linux运维,成为IT领域翘楚(二) - 2

    文章目录🔥Linux系统目录结构🔥Linux用户和用户组🔥Linux用户管理🔥Linux系统目录结构文件系统组织结构⭐ /lib系统开机所需要最基本的动态链接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。⭐ /lost+found一般情况下是空的,当系统非法关机后,这里就存放了一些文件。⭐ /etc所有系统管理所需要的配置文件和子目录my.conf⭐ /usr用户的很多应用程序和文件都放在这个目录下。⭐ /bin是Binary的缩写,这个目录存放着经常使用的命令⭐ /sbin(usr/sbin、/usr/local/sbin)sbin就是peruse

  10. Anaconda3、TensorFlow和keras简单安装方法(较详细) - 2

    因学习需要用到keras,通过查找较多资料最终完成Anaconda、TensorFlow和Keras的简单安装。因为网上的相关资料较多但大部分不够全面,查找起来不太方便,因此自己记录一下成功下载安装的详细过程,顺便推荐一下借鉴的写的很好的相关教程文章。keras需要在TensorFlow之上才能运行,所以要先安装TensorFlow,而TensorFlow只能在3.7以前的python版本中运行,所以需要先创建一个基于python3.6的虚拟环境,因此便需要先下载Anaconda。一、Anaconda3下载和安装Anaconda下载安装教程原文链接:https://blog.csdn.net/

随机推荐