安卓imtoken钱包下载|swarm

作者: 安卓imtoken钱包下载
2024-03-08 22:16:02

Swarm容器集群管理(超详细) - skyflask - 博客园

Swarm容器集群管理(超详细) - skyflask - 博客园

会员

周边

新闻

博问

AI培训

云市场

所有博客

当前博客

我的博客

我的园子

账号设置

简洁模式 ...

退出登录

注册

登录

On The Way!

博学,审问,慎思,明辨,笃行。一份属于自己心路历程!

人生如棋,我愿为卒,行动虽缓,何曾退缩!

博客园

首页

新随笔

订阅

管理

Swarm容器集群管理(超详细)

一、Swarm介绍

Swarm是Docker公司自研发的容器集群管理系统, Swarm在早期是作为一个独立服务存在, 在Docker Engine v1.12中集成了Swarm的集群管理和编排功能。可以通过初始化Swarm或加入现有Swarm来启用Docker引擎的Swarm模式。

Docker Engine CLI和API包括了管理Swarm节点命令,比如添加、删除节点,以及在Swarm中部署和编排服务。也增加了服务栈(Stack)、服务(Service)、任务(Task)概念。 

二、Swarm的亮点

参考链接(https://docs.docker.com/engine/swarm/)1. Docker Engine集成集群管理使用Docker Engine CLI 创建一个Docker Engine的Swarm模式,在集群中部署应用程序服务。2. 去中心化设计Swarm角色分为Manager和Worker节点, Manager节点故障不影响应用使用。3. 扩容缩容可以声明每个服务运行的容器数量,通过添加或删除容器数自动调整期望的状态。4. 期望状态协调Swarm Manager节点不断监视集群状态,并调整当前状态与期望状态之间的差异。5. 多主机网络可以为服务指定overlay网络。当初始化或更新应用程序时, Swarm manager会自动为overlay网络上的容器分配IP地址。6. 服务发现Swarm manager节点为集群中的每个服务分配唯一的DNS记录和负载均衡VIP。可以通过Swarm内置的DNS服务器查询集群中每个运行的容器。7. 负载均衡实现服务副本负载均衡,提供入口访问。8. 安全传输Swarm中的每个节点使用TLS相互验证和加密, 确保安全的其他节点通信。9. 滚动更新升级时,逐步将应用服务更新到节点,如果出现问题,可以将任务回滚到先前版本。

 

三、swarm关键概念

参考链接:https://docs.docker.com/engine/swarm/key-concepts/

1、什么是swarm?

集群管理和任务编排功能已经集成到了Docker引擎中,通过使用swarmkit。swarmkit是一个独立的,专门用于Docker容器编排的项目,可以直接在Docker上使用。

Swarm集群是由多个运行swarm模式的Docker主机组成,关键的是,Docker默认集成了swarm mode。swarm集群中有manager(管理成员关系和选举)、worker(运行swarm service)。

一个Docker主机可以是manager,也可以是worker角色,当然,也可以既是manager,同时也是worker。

当你创建一个service时,你定义了它的理想状态(副本数、网络、存储资源、对外暴露的端口等)。Docker会维持它的状态,例如,如果一个worker node不可用了,Docker会调度不可用node的task到其他nodes上。

运行在容器中的一个task,是swarm service的一部分,且通过swarm manager进行管理和调度,和独立的容器是截然不同的。

swarm service相比单容器的一个最大优势就是,你能够修改一个服务的配置:包括网络、数据卷,不需要手工重启服务。Docker将会更新配置,把过期配置的task停掉,重新创建一个新配置的容器。

当然,也许你会觉得docker compose也能做swarm类似的事情,某些场景下是可以。但是,swarm相比docker compose,功能更加丰富,比如说自动扩容、缩容,分配至task到不同的nodes等。

2、nodes

一个node是Swarm集群中的一个Docker引擎实例。你也可以认为这就是一个docker节点。你可以运行一个或多个节点在单台物理机或云服务器上,但是生产环境上,典型的部署方式是:Docker节点交叉分布式部署在多台物理机或云主机上。

通过swarm部署一个应用,你向manager节点提交一个service,然后manager节点分发工作(task)给worker node。

manager节点同时也会容器编排和集群管理功能,它会选举出一个leader来指挥编排任务。worker nodes接受和执行从manager分发过来的task。一般地,manager节点同时也是worker节点,但是,你也可以将manager节点配置成只进行管理的功能。

Agent则运行在每个worker节点上,时刻等待着接受任务。worker node会上报manager node,分配给他的任务当前状态,这样manager node才能维持每个worker的工作状态。

 

3、services和tasks

service就是在manager或woker节点上定义的tasks。service是swarm系统最核心的架构,同时也是和swarm最主要的交互者。当你创建一个service,你指定容器镜像以及在容器内部运行的命令。

在副本集模式下,swarm manager将会基于你需要扩容的需求,把task分发到各个节点。对于全局service,swarm会在每个可用节点上运行一个task。

task携带Docker引擎和一组命令让其运行在容器中。它是swarm的原子调度单元。manager节点在扩容的时候回交叉分配task到各个节点上,一旦一个task分配到一个node,它就不能移动到其他node。

 

4、负载均衡

 swarm manager使用 ingress负载均衡来暴露你需要让外部访问的服务。swarm manager能够自动的分配一个外部端口到service,当然,你也能够配置一个外部端口,你可以指定任意没有使用的port,如果你不指定端口,那么swarm manager会给service指定30000-32767之间任意一个端口。

swarn模式有一个内部的DNS组件,它能够自动分发每个服务在swarm里面。swarm manager使用内部负载均衡机制来接受集群中节点的请求,基于DNS名字解析来实现。

 

四、Swarm架构图

Swarm manager:

1、API:接受命令,创建一个service(API输入)

2、orchestrator:service对象创建的task进行编排工作(编排)

3、allocater:为各个task分配IP地址(分配IP)

4、dispatcher:将task分发到nodes(分发任务)

5、scheduler:安排一个worker运行task(运行任务)

 

worker node

1、连接到分发器接受指定的task

2、将task指派到对应的worker节点

 

例子:

swarm manager创建一个3个nginx副本集的service,他会将task分配到对应的node。

 

五、swarm集群部署

安装需求

1、主机安装了docker,Docker Engine 1.12+

2、关闭selinux、关闭防火墙(或者按照下面需要打开的端口开放防火墙)

3、协议端口开放

TCP port 2377 集群管理通讯

TCP and UDP port 7946 节点之间通讯

UDP port 4789 overlay网络流量

机器分布

角色

IP

Docker版本

manager

10.11.97.71

18.09.7

worker01

10.11.97.181

18.09.7

worker02

10.11.97.187

18.09.7

部署swarm

 manager节点:

docker swarm init --advertise-addr 10.11.97.71

  

日志查看:

[root@localhost ~]# docker swarm init --advertise-addr 10.11.97.71

Swarm initialized: current node (nnkbd7e2emx24ymnzyvxv7h2b) is now a manager.

To add a worker to this swarm, run the following command:

docker swarm join --token SWMTKN-1-4y22cau9ejhrppdlf2g5y7dn6ibltq67ccvoiw2xf3yoj5i5ii-69yg43tece4d5sbwl1a1ftmu9 10.11.97.71:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

[root@localhost ~]#

  

worker01节点加入集群:

[root@worker01 compose_nginx_tomcat]# docker swarm join --token SWMTKN-1-4y22cau9ejhrppdlf2g5y7dn6ibltq67ccvoiw2xf3yoj5i5ii-69yg43tece4d5sbwl1a1ftmu9 10.11.97.71:2377

This node joined a swarm as a worker.

[root@localhost compose_nginx_tomcat]#

  

worker02节点加入集群:

[root@worker02 ~]# docker swarm join --token SWMTKN-1-4y22cau9ejhrppdlf2g5y7dn6ibltq67ccvoiw2xf3yoj5i5ii-69yg43tece4d5sbwl1a1ftmu9 10.11.97.71:2377

This node joined a swarm as a worker.

[root@localhost ~]#

  

查看node状态:

 

部署一个服务

docker service create --replicas 1 --name helloworld alpine ping docker.com

--replicas 副本集数

--name  服务名称

 

查看服务

当前服务运行在manager上。

 

 

  

六、swarm集群服务管理

1、创建服务

docker service create --replicas 1 --name web01 nginx

 

2、显示服务详细信息

docker service inspect --pretty web01# 易于阅读显示

 

docker service inspect web01# json格式返回

 

3、扩容和缩容

docker service scale web01=3

 

4、查看服务任务

docker service ls(查看所有service)

 

docker service ps web01(查看web01)

 每个node上分布了1个容器。

docker service ps -f 'desired-state=running' web01(查看运行状态的service)

 

5、滚动更新服务

docker service create \--replicas 3 \--name redis \--update-delay 10s \redis:3.0.6

docker service update --image redis:3.0.7 redis

 

6、创建服务时设定更新策略

docker service create \--name my_web --replicas 10 \--update-delay 10s \--update-parallelism 2 \--update-failure-action continue \nginx:1.12

7、创建服务时设定回滚策略

docker service create \--name my_web \--replicas 10 \--rollback-parallelism 2 \--rollback-monitor 20s \--rollback-max-failure-ratio .2 \nginx:1.12

8、服务更新

docker service update --image nginx:1.13 my_web

 

9、手动回滚

docker service update --rollback my_web

10、角色切换

升级前:

 

升级:

停掉manager

systemctl stop docker

将worker02升级

docker node promote worker02   

 

 

升级后:

 

 

七、swarm集群数据管理

1、volume方式管理数据

 volume模式:在宿主机上创建一个volume,默认目录为(/var/lib/docker/volume/your_custom_volume/_data),然后把容器的某个目录映射到宿主机的volume上,即使容器挂了,数据还会依然保留在宿主机的volume上。

docker service create --replicas 1--mount type=volume,src=nginx^Cata,dst=/usr/share/nginx/html --name www_web01 nginx:1.12

  

 

查看服务

docker service inspect www_web01

服务ID

服务版本

服务创建时间

服务更新时间

服务详细配置

  服务名称

  服务标签

  服务的容器配置

    镜像名称

    挂载点

    资源限制

    重启策略

    更新配置

    回滚配置

    挂载点配置

  

[

{

"ID": "7ge7vfprynybyvz9otwomzumv",

"Version": {

"Index": 313

},

"CreatedAt": "2019-07-20T04:16:41.677166218Z",

"UpdatedAt": "2019-07-20T04:16:41.677166218Z",

"Spec": {

"Name": "www_web01",

"Labels": {},

"TaskTemplate": {

"ContainerSpec": {

"Image": "nginx:1.12@sha256:72daaf46f11cc753c4eab981cbf869919bd1fee3d2170a2adeac12400f494728",

"Init": false,

"Mounts": [

{

"Type": "volume",

"Source": "nginx_data",

"Target": "/usr/share/nginx/html"

}

],

"StopGracePeriod": 10000000000,

"DNSConfig": {},

"Isolation": "default"

},

"Resources": {

"Limits": {},

"Reservations": {}

},

"RestartPolicy": {

"Condition": "any",

"Delay": 5000000000,

"MaxAttempts": 0

},

"Placement": {

"Platforms": [

{

"Architecture": "amd64",

"OS": "linux"

},

{

"OS": "linux"

},

{

"Architecture": "arm64",

"OS": "linux"

},

{

"Architecture": "386",

"OS": "linux"

},

{

"Architecture": "ppc64le",

"OS": "linux"

},

{

"Architecture": "s390x",

"OS": "linux"

}

]

},

"ForceUpdate": 0,

"Runtime": "container"

},

"Mode": {

"Replicated": {

"Replicas": 1

}

},

"UpdateConfig": {

"Parallelism": 1,

"FailureAction": "pause",

"Monitor": 5000000000,

"MaxFailureRatio": 0,

"Order": "stop-first"

},

"RollbackConfig": {

"Parallelism": 1,

"FailureAction": "pause",

"Monitor": 5000000000,

"MaxFailureRatio": 0,

"Order": "stop-first"

},

"EndpointSpec": {

"Mode": "vip"

}

},

"Endpoint": {

"Spec": {}

}

}

]

  

查看数据卷

 

因为我硬盘的数据盘在/data,所以我这里已经把docker的Root Dir设置成/data/docker/,可以看到容器里面的nginx数据目录已经挂在到宿主机的nginx_data了。

 

2、bind mount方式管理数据

bind mount模式:将宿主机某个目录映射到docker容器,很适合于网站,同时把宿主机的这个目录作为git版本目录,每次update代码的时候,容器就会更新。

创建数据目录

在mananger、worker01、worker02上创建web网站目录:

mkdir -p /data/wwwroot

创建服务

docker service create --replicas 1--mount type=bind,src=/data/wwwroot,dst=/usr/share/nginx/html --name www_web02 nginx:1.12

 

查看服务

运行在worker02

测试宿主机的数据盘和容器是映射关系:

进入容器查看内容:

可以看到我们在宿主机上创建的index.html已经挂在到容器上了!

 

3、NFS方式管理数据

前面两种方式都是单机docker上数据共享方式,要是在集群中,这个就不适用了,我们必须使用共享存储或网络存储了。这里我们使用NFS来测试。

安装NFS服务

我们使用第三台(worker02作为NFS服务提供者)

yum install nfs-utils -y

并且在nfs目录放入网站数据内容:

[root@worker02 container_data]# echo 'hello nfs' >index.html

其他两个节点(worker01和manager均需要安装nfs客户端)

 

创建服务

docker service create \

--mount 'type=volume,src=nfs-vol,dst=/usr/share/nginx/html, \

volume-driver=local,volume-opt=type=nfs,\

volume-opt=device=:/data/container_data,"volume-opt=o=addr=10.11.97.187,vers=4,soft,timeo=180,bg,tcp,rw"' \

--name www_web03_nfs nginx:1.12

 

swarm支持挂在NFS卷。

 

可以查看到nfs已经挂在到manager节点了,且nfs里面的内容也在。

 

 

 进入容器查看:

 

八、swarm集群发布

架构图

服务发现: Swarm模式内置DNS组件,自动为每个服务分配DNS记录,然后服务的DNS名称在集群内的服务直接分发请求。负载均衡:在Swarm集群中创建服务时, Ingress网络会自动为其分配一个虚拟IP(VIP),在DNS解析时返回VIP,流入该VIP的流量将自动发送(IPVS)该服务的所以健康任务(容器)。

 

在每个节点上创建服务,使用ingress暴露publish port:

docker service create --replicas=3 --name web01 -p 88:80 nginx:1.12

 

 

可以看到每个node上各分部了一个容器:

 

这时你直接访问:http://10.11.97.71:88就可以访问网站了。

注意:

如果你关掉某个节点上web01的服务,swarm会再次启动一个服务,以达到原来task的个数。

在真实环境中,我们可以在swarm集群中的每个节点启动指定个数的tasks,然后在前端使用负载均衡设备,比如HA或Nginx都行,直接通过负载均衡的方式做到高可用。

 

查看service

docker service inspect web01

[

{

"ID": "ii7ggbrqfsl417oqs9xgr877q", #ID

"Version": { #版本

"Index": 753

},

"CreatedAt": "2019-07-20T15:12:36.035445496Z", #创建时间

"UpdatedAt": "2019-07-20T15:12:36.037336323Z", #更新时间

"Spec": { #详细配置

"Name": "web01", #服务名称

"Labels": {},

"TaskTemplate": {

"ContainerSpec": { #容器配置

"Image": "nginx:1.12@sha256:72daaf46f11cc753c4eab981cbf869919bd1fee3d2170a2adeac12400f494728",

"Init": false,

"StopGracePeriod": 10000000000,

"DNSConfig": {},

"Isolation": "default"

},

"Resources": { #资源限制

"Limits": {},

"Reservations": {}

},

"RestartPolicy": { #重启策略

"Condition": "any",

"Delay": 5000000000,

"MaxAttempts": 0

},

"Placement": { #平台相关

"Platforms": [

{

"Architecture": "amd64",

"OS": "linux"

},

{

"OS": "linux"

},

{

"Architecture": "arm64",

"OS": "linux"

},

{

"Architecture": "386",

"OS": "linux"

},

{

"Architecture": "ppc64le",

"OS": "linux"

},

{

"Architecture": "s390x",

"OS": "linux"

}

]

},

"ForceUpdate": 0,

"Runtime": "container"

},

"Mode": { #模式

"Replicated": {

"Replicas": 3

}

},

"UpdateConfig": { #更新配置

"Parallelism": 1,

"FailureAction": "pause",

"Monitor": 5000000000,

"MaxFailureRatio": 0,

"Order": "stop-first"

},

"RollbackConfig": { #回滚配置

"Parallelism": 1,

"FailureAction": "pause",

"Monitor": 5000000000,

"MaxFailureRatio": 0,

"Order": "stop-first"

},

"EndpointSpec": { #终端配置

"Mode": "vip",

"Ports": [

{

"Protocol": "tcp",

"TargetPort": 80,

"PublishedPort": 88,

"PublishMode": "ingress"

}

]

}

},

"Endpoint": { #终端,VIP模式,对外暴露88端口,ingress模式

"Spec": {

"Mode": "vip",

"Ports": [

{

"Protocol": "tcp",

"TargetPort": 80,

"PublishedPort": 88,

"PublishMode": "ingress"

}

]

},

"Ports": [

{

"Protocol": "tcp",

"TargetPort": 80,

"PublishedPort": 88,

"PublishMode": "ingress"

}

],

"VirtualIPs": [ #虚拟出了一个网段

{

"NetworkID": "gd7sc5a8ke68zxzf9s7kz5mey",

"Addr": "10.255.0.7/16"

}

]

}

}

]

  

查看network

[root@manager ~]# docker network ls

NETWORK ID NAME DRIVER SCOPE

13e5011b8fa7 bridge bridge local

1330304716df docker_gwbridge bridge local

95f6edd3f2ec host host local

gd7sc5a8ke68 ingress overlay swarm

57781759f937 none null local

  

查看ingress网络

[root@manager ~]# docker network inspect gd7

[

{

"Name": "ingress",

"Id": "gd7sc5a8ke68zxzf9s7kz5mey",

"Created": "2019-07-18T17:17:43.808865817+08:00",

"Scope": "swarm",

"Driver": "overlay",

"EnableIPv6": false,

"IPAM": {

"Driver": "default",

"Options": null,

"Config": [

{

"Subnet": "10.255.0.0/16",

"Gateway": "10.255.0.1"

}

]

},

"Internal": false,

"Attachable": false,

"Ingress": true,

"ConfigFrom": {

"Network": ""

},

"ConfigOnly": false,

"Containers": {

"b4f5c5977de9248e4834f91f6a0bd54c438ad4c051cc9fef3537a726f2f64b49": {

"Name": "web01.1.p9mhq9xrb35bwscrv23pgmimy",

"EndpointID": "28b1e5fc0bef0e2b6ec812870c03962cf534e3f9f65646f507b6462da0a7eb58",

"MacAddress": "02:42:0a:ff:00:0b",

"IPv4Address": "10.255.0.11/16",

"IPv6Address": ""

},

"e4d6ace7511ac6ee24c6a3c3170749c8f08cbced6e86c2e4e1524e573db31418": {

"Name": "web01.3.j1ev4hq7mjwyyy59e0l0g2qjy",

"EndpointID": "6f9f9d2a61a3bb2424f7354dfd5a8e3e421734529fe626b4e263d2093078b285",

"MacAddress": "02:42:0a:ff:00:0a",

"IPv4Address": "10.255.0.10/16",

"IPv6Address": ""

},

"ingress-sbox": {

"Name": "ingress-endpoint",

"EndpointID": "2433360215c02637627f3f2cb8bada006b1837fa4aa551d1dffa6f2efe93987b",

"MacAddress": "02:42:0a:ff:00:02",

"IPv4Address": "10.255.0.2/16",

"IPv6Address": ""

}

},

"Options": {

"com.docker.network.driver.overlay.vxlanid_list": "4096"

},

"Labels": {},

"Peers": [

{

"Name": "5751b4f046eb",

"IP": "10.11.97.71"

},

{

"Name": "e3f5cc62948d",

"IP": "10.11.97.187"

},

{

"Name": "e9531b469fd9",

"IP": "10.11.97.181"

}

]

}

]

  可以看出ingress,模拟出了一个vxlan,驱动类型为overlay,网段为:10.255.0.0/16,网关为10.255.0.1,vxlan有4096个接口。

九、swarm集群高可用架构实现

HAPorxy实现高可用

 

Nginx反向代理实现高可用

 

 

十、Swarm配置文件管理

1、 生成一个基本的Nginx配置文件# cat site.conf

server {

  listen 80;

  server_name localhost;

location / {root /usr/share/nginx/html;index index.html index.htm;}}

 

2、 将site.conf保存到docker配置中

# docker config create site.conf site.conf# docker config ls

3、 创建一个Nginx并应用这个配置# docker service create \--name nginx \--config source=site.conf,target=/etc/nginx/conf.d/site.conf \--publish 8080:80 \nginx

 

 

 

posted @

2019-07-22 09:17 

skyflask 

阅读(21696) 

评论(1) 

编辑 

收藏 

举报

会员力量,点亮园子希望

刷新页面返回顶部

公告

Copyright © 2024 skyflask

Powered by .NET 8.0 on Kubernetes

Swarm 集群管理 | 菜鸟教程

Swarm 集群管理 | 菜鸟教程

菜鸟教程 -- 学的不仅是技术,更是梦想!

首页

HTML

CSS

JavaScript

Vue

Bootstrap

NodeJS

Python3

Python2

Java

C

C++

C#

Go

SQL

Linux

jQuery

本地书签

首页

HTML

CSS

JS

本地书签

Search

Python3 教程

Python2 教程

Vue3 教程

vue2 教程

Bootstrap3 教程

Bootstrap4 教程

Bootstrap5 教程

Bootstrap2 教程

Docker 教程

Docker 教程

Docker 架构

Docker 安装

Ubuntu Docker 安装

Debian Docker 安装

CentOS Docker 安装

Windows Docker 安装

MacOS Docker 安装

Docker 镜像加速

Linux 云服务器

Docker 使用

Docker Hello World

Docker 容器使用

Docker 镜像使用

Docker 容器连接

Docker 仓库管理

Docker Dockerfile

Docker Compose

Docker Machine

Swarm 集群管理

Docker 实例

Docker 安装 Ubuntu

Docker 安装 Centos

Docker 安装 Nginx

Docker 安装 Node.js

Docker 安装 PHP

Docker 安装 MySQL

Docker 安装 Tomcat

Docker 安装 Python

Docker 安装 Redis

Docker 安装 MongoDB

Docker 安装 Apache

Docker 参考手册

Docker 命令大全

Docker 资源汇总

Docker Machine

Docker 安装 Ubuntu

Swarm 集群管理

简介

Docker Swarm 是 Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机。 Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机。

支持的工具包括但不限于以下各项:

Dokku

Docker Compose

Docker Machine

Jenkins

原理

如下图所示,swarm 集群由管理节点(manager)和工作节点(work node)构成。

swarm mananger:负责整个集群的管理工作包括集群配置、服务管理等所有跟集群有关的工作。

work node:即图中的 available node,主要负责运行相应的服务来执行任务(task)。

使用

以下示例,均以 Docker Machine 和 virtualbox 进行介绍,确保你的主机已安装 virtualbox。

1、创建 swarm 集群管理节点(manager)

创建 docker 机器:

$ docker-machine create -d virtualbox swarm-manager

初始化 swarm 集群,进行初始化的这台机器,就是集群的管理节点。

$ docker-machine ssh swarm-manager

$ docker swarm init --advertise-addr 192.168.99.107 #这里的 IP 为创建机器时分配的 ip。

以上输出,证明已经初始化成功。需要把以下这行复制出来,在增加工作节点时会用到:

docker swarm join --token SWMTKN-1-4oogo9qziq768dma0uh3j0z0m5twlm10iynvz7ixza96k6jh9p-ajkb6w7qd06y1e33yrgko64sk 192.168.99.107:2377

2、创建 swarm 集群工作节点(worker)

这里直接创建好俩台机器,swarm-worker1 和 swarm-worker2 。

分别进入两个机器里,指定添加至上一步中创建的集群,这里会用到上一步复制的内容。

以上数据输出说明已经添加成功。

上图中,由于上一步复制的内容比较长,会被自动截断,实际上在图运行的命令如下:

docker@swarm-worker1:~$ docker swarm join --token SWMTKN-1-4oogo9qziq768dma0uh3j0z0m5twlm10iynvz7ixza96k6jh9p-ajkb6w7qd06y1e33yrgko64sk 192.168.99.107:2377

3、查看集群信息

进入管理节点,执行:docker info 可以查看当前集群的信息。

$ docker info

通过画红圈的地方,可以知道当前运行的集群中,有三个节点,其中有一个是管理节点。

4、部署服务到集群中

注意:跟集群管理有关的任何操作,都是在管理节点上操作的。

以下例子,在一个工作节点上创建一个名为 helloworld 的服务,这里是随机指派给一个工作节点:

docker@swarm-manager:~$ docker service create --replicas 1 --name helloworld alpine ping docker.com

5、查看服务部署情况

查看 helloworld 服务运行在哪个节点上,可以看到目前是在 swarm-worker1 节点:

docker@swarm-manager:~$ docker service ps helloworld

查看 helloworld 部署的具体信息:

docker@swarm-manager:~$ docker service inspect --pretty helloworld

6、扩展集群服务

我们将上述的 helloworld 服务扩展到俩个节点。

docker@swarm-manager:~$ docker service scale helloworld=2

可以看到已经从一个节点,扩展到两个节点。

7、删除服务

docker@swarm-manager:~$ docker service rm helloworld

查看是否已删除:

8、滚动升级服务

以下实例,我们将介绍 redis 版本如何滚动升级至更高版本。

创建一个 3.0.6 版本的 redis。

docker@swarm-manager:~$ docker service create --replicas 1 --name redis --update-delay 10s redis:3.0.6

滚动升级 redis 。

docker@swarm-manager:~$ docker service update --image redis:3.0.7 redis

看图可以知道 redis 的版本已经从 3.0.6 升级到了 3.0.7,说明服务已经升级成功。

9、停止某个节点接收新的任务

查看所有的节点:

docker@swarm-manager:~$ docker node ls

可以看到目前所有的节点都是 Active, 可以接收新的任务分配。

停止节点 swarm-worker1:

注意:swarm-worker1 状态变为 Drain。不会影响到集群的服务,只是 swarm-worker1 节点不再接收新的任务,集群的负载能力有所下降。

可以通过以下命令重新激活节点:

docker@swarm-manager:~$ docker node update --availability active swarm-worker1

Docker Machine

Docker 安装 Ubuntu

点我分享笔记

取消

分享笔记

昵称昵称 (必填)

邮箱邮箱 (必填)

引用地址引用地址

分类导航

HTML / CSSHTML 教程HTML5 教程CSS 教程CSS3 教程Bootstrap3 教程Bootstrap4 教程Bootstrap5 教程Font Awesome 教程Foundation 教程 JavaScriptJavaScript 教程HTML DOM 教程jQuery 教程AngularJS 教程AngularJS2 教程Vue.js 教程Vue3 教程React 教程TypeScript 教程jQuery UI 教程jQuery EasyUI 教程Node.js 教程AJAX 教程JSON 教程Echarts 教程Chart.js 教程Highcharts 教程Google 地图 教程 服务端Python 教程Python2.x 教程Linux 教程Docker 教程Ruby 教程Java 教程C 教程C++ 教程Perl 教程Servlet 教程JSP 教程Lua 教程Rust 教程Scala 教程Go 教程PHP 教程数据结构与算法Django 教程FastAPI 教程Zookeeper 教程设计模式正则表达式Maven 教程Verilog 教程ASP 教程AppML 教程VBScript 教程 数据库SQL 教程MySQL 教程PostgreSQL 教程SQLite 教程MongoDB 教程Redis 教程Memcached 教程 数据分析Python 教程NumPy 教程Pandas 教程Matplotlib 教程Scipy 教程R 教程Julia 教程 移动端Android 教程Swift 教程jQuery Mobile 教程ionic 教程Kotlin 教程 XML 教程XML 教程DTD 教程XML DOM 教程XSLT 教程XPath 教程XQuery 教程XLink 教程XPointer 教程XML Schema 教程XSL-FO 教程SVG 教程 ASP.NETASP.NET 教程C# 教程Web Pages 教程Razor 教程MVC 教程Web Forms 教程 Web ServiceWeb Service 教程WSDL 教程SOAP 教程RSS 教程RDF 教程 开发工具Eclipse 教程Git 教程Svn 教程Markdown 教程 网站建设HTTP 教程网站建设指南浏览器信息网站主机教程TCP/IP 教程W3C 教程网站品质

Advertisement

反馈/建议

在线实例

·HTML 实例

·CSS 实例

·JavaScript 实例

·Ajax 实例

·jQuery 实例

·XML 实例

·Java 实例

字符集&工具

· HTML 字符集设置

· HTML ASCII 字符集

· JS 混淆/加密

· PNG/JPEG 图片压缩

· HTML 拾色器

· JSON 格式化工具

· 随机数生成器

最新更新

·

Rust 宏

·

Seaborn 教程

·

Pandas 相关性分析

·

31.2k star, 免...

·

Dev Home —...

·

免费开源的 AI ...

·

11.2k star, 免...

站点信息

·

意见反馈

·

免责声明

·

关于我们

·

文章归档

关注微信

Copyright © 2013-2024 菜鸟教程 

runoob.com All Rights Reserved. 备案号:闽ICP备15012807号-1

微信关注

SWARM中文(简体)翻译:剑桥词典

SWARM中文(简体)翻译:剑桥词典

词典

翻译

语法

同义词词典

+Plus

剑桥词典+Plus

Shop

剑桥词典+Plus

我的主页

+Plus 帮助

退出

剑桥词典+Plus

我的主页

+Plus 帮助

退出

登录

/

注册

中文 (简体)

查找

查找

英语-中文(简体)

swarm 在英语-中文(简体)词典中的翻译

swarmnoun uk

Your browser doesn't support HTML5 audio

/swɔːm/ us

Your browser doesn't support HTML5 audio

/swɔːrm/

Add to word list

Add to word list

[ C ] a large group of insects all moving together

(一起移动的)一大群(昆虫)

a swarm of bees/wasps/ants/locusts

一大群蜜蜂/黄蜂/蚂蚁/蝗虫

The dead sheep was covered with swarms of flies.

这只死羊身上爬满了一群群的苍蝇。

[ C, + sing/pl verb ] a large group of people all moving together

(蜂拥的)一大群(人)

A swarm of/Swarms of photographers followed the star's car.

成群结队的记者跟在这位电影明星的车后。

swarmverb [ I ] uk

Your browser doesn't support HTML5 audio

/swɔːm/ us

Your browser doesn't support HTML5 audio

/swɔːrm/

When insects swarm, they come together in a large group.

(昆虫)群集,成群结队地移动

When people swarm somewhere, they move there in a large group or in large numbers.

(人)蜂拥,涌动

During the summer, tourists swarm the little beachside town.

游客在夏季纷纷涌向这个海滨小镇。

短语动词

swarm with something

(swarm在剑桥英语-中文(简体)词典的翻译 © Cambridge University Press)

swarm的例句

swarm

To have moment closure, swarms should be placed such that both clockwise and anticlockwise external moments can be resisted.

来自 Cambridge English Corpus

Because we did not track ant colonies, some of the observations at a site could have been made on swarms from the same army ant colony.

来自 Cambridge English Corpus

An impressive army of highly qualified detectives swarmed out over the whole country in search of the lost treasure.

来自 Cambridge English Corpus

The exceptions were a few individuals of the green type probably isolated since hatching and picked up by swarms.

来自 Cambridge English Corpus

Since the swarms turn at different times, the difference between their coverage is periodical as shown in the graph.

来自 Cambridge English Corpus

Indeed, the ability of swarms, flocks, etc., to shrink and grow in population (there appears to be no upper limit to population size), suggests that their computational complexity is linear.

来自 Cambridge English Corpus

The flock size of birds attending army ant swarms plotted against elevation, separated by habitat type (b).

来自 Cambridge English Corpus

We observed a total of 41 bird species attending army ant swarms.

来自 Cambridge English Corpus

示例中的观点不代表剑桥词典编辑、剑桥大学出版社和其许可证颁发者的观点。

B1

swarm的翻译

中文(繁体)

(一起移動的)一大群(昆蟲), (蜂湧的)一大群(人), (昆蟲)群集,成群結隊地移動…

查看更多内容

西班牙语

enjambre, nube, multitud…

查看更多内容

葡萄牙语

enxame, multidão, organizar-se em enxame…

查看更多内容

更多语言

土耳其语

法语

日语

in Dutch

捷克语

丹麦语

印尼语

泰语

越南语

波兰语

in Swedish

马来语

德语

挪威语

in Ukrainian

俄语

kalabalık, yığın, küme…

查看更多内容

essaim [masculine], affluer, bourdonner…

查看更多内容

群(む)れ, 群(むら)がる…

查看更多内容

zwerm, zwermen, krioelen…

查看更多内容

roj, spousta, dav…

查看更多内容

sværm, flok, sværme…

查看更多内容

kelompok serangga, orang banyak, berkelompok…

查看更多内容

ฝูงแมลง, กลุ่มคนหรือสัตว์จำนวนมากมาย, รวมเป็นฝูง…

查看更多内容

đàn, đám, bầy…

查看更多内容

rój, roić się, tłoczyć się…

查看更多内容

svärm, myller, vimmel…

查看更多内容

kawan, kumpulan besar, sekawan…

查看更多内容

der Schwarm, schwärmen, wimmeln…

查看更多内容

sverm [masculine], strømme, sverme…

查看更多内容

рій, зграя, маса…

查看更多内容

рой, толпиться…

查看更多内容

需要一个翻译器吗?

获得快速、免费的翻译!

翻译器工具

swarm的发音是什么?

在英语词典中查看 swarm 的释义

浏览

swap

swap meet

sward

swarf

swarm

swarm with something

swarthy

swashbuckler

swashbuckling

swarm更多的中文(简体)翻译

全部

swarm with something

查看全部意思»

词组动词

swarm with something

查看全部动词词组意思»

“每日一词”

healthspan

UK

Your browser doesn't support HTML5 audio

/ˈhelθ.spæn/

US

Your browser doesn't support HTML5 audio

/ˈhelθ.spæn/

the number of years that someone lives or can expect to live in reasonably good health

关于这个

博客

Forget doing it or forget to do it? Avoiding common mistakes with verb patterns (2)

March 06, 2024

查看更多

新词

stochastic parrot

March 04, 2024

查看更多

已添加至 list

回到页面顶端

内容

英语-中文(简体)例句翻译

©剑桥大学出版社与评估2024

学习

学习

学习

新词

帮助

纸质书出版

Word of the Year 2021

Word of the Year 2022

Word of the Year 2023

开发

开发

开发

词典API

双击查看

搜索Widgets

执照数据

关于

关于

关于

无障碍阅读

剑桥英语教学

剑桥大学出版社与评估

授权管理

Cookies与隐私保护

语料库

使用条款

京ICP备14002226号-2

©剑桥大学出版社与评估2024

剑桥词典+Plus

我的主页

+Plus 帮助

退出

词典

定义

清晰解释自然的书面和口头英语

英语

学习词典

基础英式英语

基础美式英语

翻译

点击箭头改变翻译方向。

双语词典

英语-中文(简体)

Chinese (Simplified)–English

英语-中文(繁体)

Chinese (Traditional)–English

英语-荷兰语

荷兰语-英语

英语-法语

法语-英语

英语-德语

德语-英语

英语-印尼语

印尼语-英语

英语-意大利语

意大利语-英语

英语-日语

日语-英语

英语-挪威语

挪威语-英语

英语-波兰语

波兰语-英语

英语-葡萄牙语

葡萄牙语-英语

英语-西班牙语

西班牙语-英语

English–Swedish

Swedish–English

半双语词典

英语-阿拉伯语

英语-孟加拉语

英语-加泰罗尼亚语

英语-捷克语

英语-丹麦语

English–Gujarati

英语-印地语

英语-韩语

英语-马来语

英语-马拉地语

英语-俄语

English–Tamil

English–Telugu

英语-泰语

英语-土耳其语

英语-乌克兰语

English–Urdu

英语-越南语

翻译

语法

同义词词典

Pronunciation

剑桥词典+Plus

Shop

剑桥词典+Plus

我的主页

+Plus 帮助

退出

登录 /

注册

中文 (简体)  

Change

English (UK)

English (US)

Español

Русский

Português

Deutsch

Français

Italiano

中文 (简体)

正體中文 (繁體)

Polski

한국어

Türkçe

日本語

Tiếng Việt

हिंदी

தமிழ்

తెలుగు

关注我们

选择一本词典

最近的词和建议

定义

清晰解释自然的书面和口头英语

英语

学习词典

基础英式英语

基础美式英语

语法与同义词词典

对自然书面和口头英语用法的解释

英语语法

同义词词典

Pronunciation

British and American pronunciations with audio

English Pronunciation

翻译

点击箭头改变翻译方向。

双语词典

英语-中文(简体)

Chinese (Simplified)–English

英语-中文(繁体)

Chinese (Traditional)–English

英语-荷兰语

荷兰语-英语

英语-法语

法语-英语

英语-德语

德语-英语

英语-印尼语

印尼语-英语

英语-意大利语

意大利语-英语

英语-日语

日语-英语

英语-挪威语

挪威语-英语

英语-波兰语

波兰语-英语

英语-葡萄牙语

葡萄牙语-英语

英语-西班牙语

西班牙语-英语

English–Swedish

Swedish–English

半双语词典

英语-阿拉伯语

英语-孟加拉语

英语-加泰罗尼亚语

英语-捷克语

英语-丹麦语

English–Gujarati

英语-印地语

英语-韩语

英语-马来语

英语-马拉地语

英语-俄语

English–Tamil

English–Telugu

英语-泰语

英语-土耳其语

英语-乌克兰语

English–Urdu

英语-越南语

词典+Plus

词汇表

选择语言

中文 (简体)  

English (UK)

English (US)

Español

Русский

Português

Deutsch

Français

Italiano

正體中文 (繁體)

Polski

한국어

Türkçe

日本語

Tiếng Việt

हिंदी

தமிழ்

తెలుగు

内容

英语-中文(简体) 

 NounVerb

例句

Translations

语法

所有翻译

我的词汇表

把swarm添加到下面的一个词汇表中,或者创建一个新词汇表。

更多词汇表

前往词汇表

对该例句有想法吗?

例句中的单词与输入词条不匹配。

该例句含有令人反感的内容。

取消

提交

例句中的单词与输入词条不匹配。

该例句含有令人反感的内容。

取消

提交

Swarm 白皮书出炉:详解 Swarm 存储机制与 API 功能 - 知乎

Swarm 白皮书出炉:详解 Swarm 存储机制与 API 功能 - 知乎切换模式写文章登录/注册Swarm 白皮书出炉:详解 Swarm 存储机制与 API 功能链闻ChainNewsSwarm 1.0 主网已上线,了解一下它有哪些功能。原文标题:《Swarm 最新官方白皮书》撰文:Swarm本文为 Swarm 官方最新发布的白皮书全文,由蓝贝壳云储整理翻译,内容仅供参考,最终请以 官方白皮书 中内容为准。简介Swarm 的使命,是通过为去中心化的互联网提供可扩展的底层基础设施,去塑造自我主权的全球化社会和无需许可的开放市场。Swarm 的愿景,是通过点对点的存储和通信系统来延展区块链,从而让「世界计算机」成为现实,这台「世界计算机」将可以作为去中心化应用程序的操作系统和部署环境。Swarm 可以提供不间断的服务,更有效地抵御网络中断或有针对性的 DoS 攻击。Swarm 作为一个无需许可的发布平台,有效促进了信息自由。Swarm 以其独特的隐私特性,如匿名浏览、可拒存储(deniable storage)、不可追踪的消息传递和不泄漏元数据的文件格式等,响应了日益增长的网络安全需求。Swarm 内置的激励措施旨在优化带宽和存储资源的分配,使其在经济上能够自我维持。Swarm 节点在与每个节点的连接中追踪它们的相应带宽贡献,并且通过 BZZ 来解决由于不平等消耗而产生的额外债务。Swarm 中的发布者必须花费 BZZ 去购买向 Swarm 写入数据的权利,并对一些长期的存储预付租金。Swarm 的模块化设计由清晰可分的层(layer)组成。从技术上讲,层 2「不可变存储的覆盖网络」层 3「通过 API 的高等级数据存取」构成了 Swarm 的核心。DISC: 块的分布式不可变存储DISC (Distributed Immutable Storage of Chunks)是 Swarm 的底层存储模型。它由存储和提供数据的节点组成,在这些节点之间的协作中,假设每个节点追求使其运营者利润最大化的策略,那么网络作为一个整体,其行为将显现出以下特性:隐私保护和无需许可的上传和下载强大的防御措施,内容一经发布便很难再对其进行屏蔽或更改访问权限随着需求的增加可自动扩展得到完整性保护的内容无需再保存的内容最终会被遗忘任何拥有多余存储空间及带宽的人,都可以以节点运营者的身份参与 DISC,并由此获得奖励。当运营者安装并运行 Swarm 客户端软件时,会创建一个新节点并成为 Swarm 网络的一部分,基本上相当于负责照管 Swarm 这一全球硬盘的一小部分。接下来,我们将进一步定义 DISC,并解释它为何会产生上述特性。连接、拓扑和路由DISC 的最初职责是建立和维护一个节点网络,使得所有节点都可以在彼此之间发送消息。这种消息交换是通过使用 p2p 网络协议(libp2p)的节点之间存在的持久而安全的通信信道进行的。Swarm 期望节点建立 Kademlia 连接:连接到其他特定的节点集时,节点对发送地址作出的本地决定,最终会让消息的传导找到全局最优路由。Kademlia 假设每个节点都分配了一个与其网络地址不同的 Swarm 地址。通过计算前缀位(prefix bits)的数值中两个 Swarm 地址的共同值,我们可以定义它们的接近度。彼此最接近的节点们将形成一个完全连通的邻域(neighbourhood)。此外,每个节点连接到来自每个离散邻近类(discrete proximity class)的多个对等节点。注 1:Libp2p 是一个便于使用者开发去中心化点对点应用的网络框架。注 2:Kademlia 是由 Petar Maymounkov 与 David Mazières 所设计的 P2P 重叠网络传输协议,以构建分布式的 P2P 电脑网络。是一种基于异或运算的 P2P 信息系统。它制定了网络的结构及规范了节点间通讯和交换资讯的方式。由此产生的拓扑结构保证了中继(relaying)在每次信息跃迁中至少将消息向其预期目的地移近一步。这种技术使消息能够在任意两个节点之间路由,即使这两个节点之间不保持直接连接。传递消息所需的跃迁数上限是节点总数的对数,这样即便在一个极其庞大的网络中,也能确保任意两个节点始终能够相互联系。块和存储Swarm 中的标准存储单元称为块(chunk)。块最多由 4 千字节的数据组成,并且附有一个地址。由于块的地址与节点的地址来自同一地址空间,因此可以计算它们的接近度。Swarm 的存储方案声明每个块都由节点存储,其地址接近块本身的地址。为了方便数据的保密性,块可以在填充到 4 千字节后进行加密,使得没有密钥的人无法将其与其它随机数据进行区分。即使对于未加密的块,节点运营者也无法轻易确定每个块来自于哪些内容。由于 Swarm 节点无法自己选择存储、加密哪些数据块,这种来源的模糊性以及元数据的无法泄露都为它们提供了有效的保护,使它们免于承担与其所存储内容相关的责任。为了将块插入到 Swarm 中,节点通过同步推送协议(push-sync protocol)将区块进行转送,直到到达它所属的邻域。然后,块的存储确认函将沿着相同的路径被传回。想要检索一个块,只需使用检索协议,将具有块地址的请求路由到相关邻域。如果途中的任何节点在其本地存有相应的块,则会将其以响应的形式发回。节点们使用同步回送协议(pull-sync protocol)持续同步其块存储。这保证了每个邻域都冗余地存储属于其邻域的全部块。这种冗余增加了数据传输的弹性,在某邻域中的一些节点无法访问的情况下也能维持块的可用性。同步协议还确保邻域的存储内容在节点离线和新节点加入网络时能够保持一致。转发、隐私和缓存在 Swarm 中,消息的路由通过将其递归地转发到更接近其目的地的位置,然后沿着相同的路由传回一个响应来实现。此路由算法具备两个重要属性:提出请求的人是模糊的。随着需求的增加自动扩展。发起请求的节点发送的消息,与仅转发请求的节点发送的消息,从任何层面来看都相同。这种模糊性使得请求的发起人能够确保他们的隐私不受侵犯,从而促进无需许可的内容发布和私密浏览。由于参与路由检索请求的节点也许会选择存储由它们所转发出去的块,因此便要启用可自动扩展式分发系统。下面讨论的带宽激励机制为这种投机缓存(opportunistic caching)提供了经济动力。Swarm 记帐协议Swarm 记账协议(Swarm Accounting Protocol,SWAP)确保节点运营者在对消息进行路由时会去协作,同时保护网络免于胡乱使用带宽。当节点转发请求和响应时,它们会跟踪它们与每个节点之间的相对带宽消耗。在一定限度内,节点间以服务换服务。然而,一旦达到限度外,负债方既可以选择等待,直到其债务随着时间的推移被摊销,或者也可以通过发送支票来进行支付,这些支票可在区块链上兑现为 BZZ 。这个协议能够确保那些下载或上传少量内容的人免费使用 Swarm,还有那些愿意等待的人,在与各节点进行互惠服务直到获得足够的信用(credit)后,也可以免费使用 Swarm。与此同时,当上传或下载更大的内容量时,为那些希望付费的人提供了一种更迅捷的体验。在帮助每个节点转发消息时,节点存在经济动机,因为每个成功地将请求路由到更靠近目的地的节点,在该请求成功被送达时都可以获得 BZZ。如果该节点本身没有存储数据,那么它只需支付少量的费用就可以从更近的节点请求数据块。通过这样的交易,节点在处理请求时可以获得一点利润。这意味着节点存在对块进行缓存的动机,因为在从较近的节点购入一次块之后,对同一块的任何后续请求都将获得纯利润。容量不足和垃圾收集随着 Swarm 中新内容的添加,每个节点的有限存储容量迟早会被耗尽。此时,节点需要一个策略来决定应该删除哪些块,以便为新的块让路。每个 Swarm 节点的本地存储内置两个子系统,即「储备(reserve)」和「缓存(cache)」。「储备」是一个固定大小的存储空间,专门用于存储属于节点邻域的块。一个块是否保留在「储备」内,取决于它所附的「邮戳(postage stamp)」。区块链上的合约允许通过 BZZ 购买「邮批(postage batch)」。「批(batch)」的所有者有权发行数量有限的邮戳。然后,这些邮戳充当某种信托标志,向用户指明在 Swarm 中保存某相关内容的具体价值。通过使用这个值的大小来确定哪些在「储备」中的块要被优先删除,这样一来存储者的节点便能最大限度地提高 DISC 的效用。每个邮戳的价值会随着时间的推移而减少,就好像储存租金是定期从「批」的余额中扣除的一样;一旦邮戳的价值不足,相关的块就会被逐出「储备」并置入「缓存」。「缓存」的作用是保留由于「批」值不足或距离节点地址太远而不受「储备」保护的块。当容量达到限度,缓存就会被定期修剪,最长时间未被请求的块将被删除。块的受欢迎程度可以通过最后一次收到请求的时间来预测,更多 SWAP 收入的块将优先得到保留。与投机缓存相结合,这种垃圾收集(garbage collecting)策略使运营者从带宽激励中获得的利润最大化,而在网络层面上,实现了受欢迎内容的自动扩展。块类型在上面我们将块定义为 DISC 中数据的标准单位。Swarm 中存在两种基本的块类型:内容寻址块(content-addressed chunks)和单一所有者块(single-owner chunks)。内容寻址块的地址基于其数据的哈希摘要(hash digest)。使用哈希作为块的地址可以验证块数据的完整性。Swarm 在块数据的小部分上使用基于默克尔树(Merkle tree)的 BMT (Binary Merkle Tree)哈希算法。单一所有者块的地址通过所有者地址和一个 identifier 进行哈希计算而得。单一所有者块数据的完整性由所有者的加密签名来保证,该签名证明任意块的数据与 identifier 之间的关联。换句话说,每个 identity 都拥有 Swarm 地址空间的一部分,他们可以在其中自由地将内容分配给一个地址。Swarm API 的功能除了块,Swarm 还公开了用于应对实现更高等级概念的 API,例如文件、具有各种元数据的文件的分层集合,甚至是 inter-node 消息传递等。这些 API 试图镜像那些已经在 web 上使用的 API。更新颖的构想和数据结构可以绘制在这些更高的层级之上,从而为希望从 DISC 提供的隐私和去中心化的核心产品中获益的所有人带来丰富多样的可能性。文件和集合大于单个块中允许的 4 千字节的数据会被拆分为多个块。一组同属的块由一个 Swarm 哈希树(hash-tree)表示,该哈希树对文件在上传过程中分割成块的方式进行编码。这棵树由一组叶节点块(leaf node chunks)组成,包含数据本身,由一层或几层中间块引用,每个中间块包含对其子块的引用。然后,整个文件的内容地址由根块的哈希摘要确定,即横跨整个文件的哈希树的默克尔根(Merkle root)。这样,文件的地址就变成了它的校验和(checksum),从而可以验证内容的完整性。将文件表示为块的平衡默克尔树,还提供了对文件的高效随机访问,结果上可以高效地进行范围查询。Swarm 使用「清单(manifests)」来表示集合。清单编码一个通用的字符串引用映射,允许它对目录树(directory tree)、键值存储(key-value store)或路由表(routing table)进行模型构建。这些分别使 Swarm 能够实现文件系统,充当数据库,甚至为网站和 DApp 提供虚拟主机。如果我们将 URL 的 host 部分解释为对清单的引用,那么清单提供基于 URL 的寻址,URL 路径用作在由清单表示的映射中进行查找的键(key),只被用于抵达文件引用。清单以紧凑默克尔前缀树(compacted Merkle trie)的形式对它们所表示的映射进行编码,块将前缀树的节点序列化。当查找路径时,我们只需要沿着我们遍历的分支的节点相应的块进行检索。这样便可以确保高效查找文件 / 记录,其延迟和带宽为集合大小的对数。文件中哈希树中间块中的子节点引用,和集合中清单前缀树节点,在位置上与 BMT 哈希段是对齐的。结果上,Swarm 支持紧凑证明特定数据段是在位于给定 URL 的给定偏移量(offset)处的文件的一部分,这是可公开证明的数据库索引和去信任化聚合的基础。跟踪更新:feeds 和域解析feed 是一种允许可变资源显示(impression of a mutable resource)的单一所有者块示例。feed 能够表示可变资源的版本化修订、对主题的顺序更新或一方在通信信道中发布的连续消息。feed 的工作方式是将单一所有者块的 identifier 定义为从主题和索引派生而来。当发布者和内容使用者就索引的更新方式和更新时间达成一致时,就可以构造和查找对该 feed 更新的特定引用。类似于 DNS 将域解析为主机服务器的 IP 地址,Swarm 通过使用以太坊域名解析服务 ENS (Ehereum-Name Service)——区块链上的一组智能合约,将其解析为引用以支持人类可读的域名(例如 Swarm.eth)。每当 web 应用程序或其所代表的网站由于更新而获得新的 Swarm 引用时,就可以对在 ENS 中注册的引用进行更新。或者,当域名引用 feed 时,用户可以受益于人类可读的域名,同时也可以更新其内容,而无需在每次进行更改时与区块链交互并支付相关交易成本。消息传递PSS (Postal Service on Swarm)是 Swarm 中的一种直接节点间消息传递协议。它是通过加密目标收件人的消息,并在内容寻址块中用主题将其包装来实现的。由于块的创建方式令其内容地址落在接收者的邻域中,所以传递自然由同步推送协议来处理。此外,对于任何第三方来说,消息都无法与随机加密的块进行区分,因此它也被称为「特洛伊木马(Trojan)」块 。一个期望接收 PSS 消息的节点将尝试解密和打开到达其邻域的所有块。在成功地将特洛伊木马块解密和解包为合法收件人之后,客户端节点可以将消息明文发送给使用 PSS API 订阅该主题的应用程序。PSS 还提供异步传递,因为块会持续存在并最终同步到所有邻域节点,即使这些节点在之后才上线。由于 PSS 允许用户从迄今为止未知的个体处接收消息,因此它是一种理想的通信原语(communication primitive),用于向公共个体(例如注册)发送匿名消息,或通过 feeds 来设置安全通信信道来向联系人发起信息流。由于 PSS 不需要收件人执行任何操作(例如轮询 polling),因此它可以作为推送通知的推荐原语。钉住和恢复DISC 最终会忘记很少被访问和未被付费的内容。通过对块进行「钉住(pinning)」这一操作,节点可以确保它们在本地保留特定内容。同时,这种「在本地保存被钉住的内容的人(pinner)」可以参与内容的被动或主动恢复,以造福所有用户。被动恢复涉及一个恢复协议,当检索失败时,通过使用 PSS 发送恢复请求,以通知 pinner 丢失的块。Pinners 会听取恢复请求,并通过重新上传丢失的块进行响应,下载者便可以在重试时找到这些丢失的块。此应对恢复功能还允许直接从发布者节点对原始内容做种,类似于某些现有文件共享解决方(BitTorrent、IPFS)中的主要操作模式。相反,Swarm 也提供了主动恢复或数据维护(data stewardship),因此当 Pinner 主动检查网络中内容的可用性并发现某些块丢失时,就可以主动重新部署这些丢失的块。结论Swarm 作为一个点对点网络,其所有节点共同提供去中心化的存储和通信服务。无需许可且隐私的 Swarm 满足了言论自由、数据主权和网络开放市场的需求,同时通过完整性保护、抗审查和防攻击来确保其安全。本文介绍了 Bee1.0 的初始主网上线中所包含的功能。这是个里程碑,而旅程才刚刚开始:加入 Swarm,一起完成赋予数字自由的使命。发布于 2021-06-16 17:35API分布式存储区块​赞同​​添加评论​分享​喜欢​收藏​申请

Docker三剑客之docker-swarm - 知乎

Docker三剑客之docker-swarm - 知乎首发于微服务与云原生切换模式写文章登录/注册Docker三剑客之docker-swarm会飞的猪无声的文字,有声的倾诉。​简介Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源。Swarm和Kubernetes比较类似,但是更加轻,具有的功能也较kubernetes更少一些。swarm集群提供给用户管理集群内所有容器的操作接口与使用一台Docker主机基本相同。Swarm一些概念说明1、节点运行 Docker 的主机可以主动初始化一个 Swarm 集群或者加入一个已存在的 Swarm 集群,这样这个运行 Docker 的主机就成为一个 Swarm 集群的节点 (node) 。节点分为管理 (manager) 节点和工作 (worker) 节点。管理节点用于 Swarm 集群的管理,docker swarm 命令基本只能在管理节点执行(节点退出集群命令 docker swarm leave 可以在工作节点执行)。一个 Swarm 集群可以有多个管理节点,但只有一个管理节点可以成为 leader,leader 通过 raft 协议实现。工作节点是任务执行节点,管理节点将服务 (service) 下发至工作节点执行。管理节点默认也作为工作节点。你也可以通过配置让服务只运行在管理节点。来自 Docker 官网的这张图片形象的展示了集群中管理节点与工作节点的关系。2、服务和任务任务 (Task)是 Swarm 中的最小的调度单位,目前来说就是一个单一的容器。服务 (Services) 是指一组任务的集合,服务定义了任务的属性。服务有两种模式:replicated services 按照一定规则在各个工作节点上运行指定个数的任务。global services 每个工作节点上运行一个任务两种模式通过 docker service create 的 --mode 参数指定。来自 Docker 官网的这张图片形象的展示了容器、任务、服务的关系。Swarm 调度策略Swarm在scheduler节点(leader 节点)运行容器的时候,会根据指定的策略来计算最适合运行容器的节点,目前支持的策略有:spread, binpack, random.1)Random顾名思义,就是随机选择一个 Node 来运行容器,一般用作调试用,spread 和 binpack 策略会根据各个节点的可用的 CPU, RAM 以及正在运行的容器的数量来计算应该运行容器的节点。2)Spread在同等条件下,Spread 策略会选择运行容器最少的那台节点来运行新的容器,binpack 策略会选择运行容器最集中的那台机器来运行新的节点。使用 Spread 策略会使得容器会均衡的分布在集群中的各个节点上运行,一旦一个节点挂掉了只会损失少部分的容器。3)BinpackBinpack 策略最大化的避免容器碎片化,就是说 binpack 策略尽可能的把还未使用的节点留给需要更大空间的容器运行,尽可能的把容器运行在一个节点上面。Swarm命令行说明docker swarm:集群管理init #初始化集群join #将节点加入集群join-token #管理加入令牌leave #从集群中删除某个节点,强制删除加参数--force update #更新集群unlock #解锁集群docker node:节点管理,demote #将集群中一个或多个节点降级inspect #显示一个或多个节点的详细信息ls #列出集群中的节点promote #将一个或多个节点提升为管理节点rm #从集群中删除停止的节点,--force强制删除参数ps #列出一个或多个节点上运行的任务update #更新节点docker service:服务管理,create #创建一个新的服务inspect #列出一个或多个服务的详细信息ps #列出一个或多个服务中的任务信息ls #列出服务rm #删除一个或多个服务scale #扩展一个或多个服务update #更新服务安装布署swarm集群服务manager:192.168.124.129node:192.168.124.1321、修改主机名,配置hosts文件[root@manager ~]# cat >>/etc/hosts<80/tcp$ docker service ps nginx-clusterID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTSj1y2blg3pa7j nginx-cluster.1 nginx:latest manager Running Running 53 seconds ago $ docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES9a2e361f535b nginx:latest "nginx -g 'daemon of…" About a minute ago Up About a minute 80/tcp nginx-cluster.1.j1y2blg3pa7j9mtg54e2csr7f3、在线动态扩容服务docker service scale nginx-cluster=5nginx-cluster scaled to 5$ docker service lsID NAME MODE REPLICAS IMAGE PORTSklpwtncehp0v nginx-cluster replicated 5/5 nginx:latest *:80->80/tcp$ docker service ps nginx-clusterID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTSj1y2blg3pa7j nginx-cluster.1 nginx:latest manager Running Running 3 minutes ago y5ib98y3rr5i nginx-cluster.2 nginx:latest node1 Running Running 35 seconds ago wpiydfv0j2w5 nginx-cluster.3 nginx:latest node1 Running Running 35 seconds ago ibl73haatpvc nginx-cluster.4 nginx:latest manager Running Running about a minute ago a6oa1h83ba3c nginx-cluster.5 nginx:latest node1 Running Running 35 seconds ago #从输出结果可以看出已经将服务动态扩容至5个,也就是5个容器运行着相同的服务4、节点故障$ docker service ps nginx-clusterID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTSj1y2blg3pa7j nginx-cluster.1 nginx:latest manager Running Running 45 minutes ago ugx002mtbfmp nginx-cluster.2 nginx:latest manager Running Running 7 seconds ago y5ib98y3rr5i \_ nginx-cluster.2 nginx:latest node1 Shutdown Shutdown 11 seconds ago q1f5jhhx7kcy nginx-cluster.3 nginx:latest manager Running Running 7 seconds ago wpiydfv0j2w5 \_ nginx-cluster.3 nginx:latest node1 Shutdown Shutdown 11 seconds ago ibl73haatpvc nginx-cluster.4 nginx:latest manager Running Running 43 minutes ago a6f7zpclrpm4 nginx-cluster.5 nginx:latest manager Running Running 7 seconds ago a6oa1h83ba3c \_ nginx-cluster.5 nginx:latest node1 Shutdown Shutdown 11 seconds ago #如果集群中节点发生故障,会从swarm集群中被T除,然后利用自身的负载均衡及调度功能,将服务调度到其它节点上 5、其它常用命令介绍$ docker service lsID NAME MODE REPLICAS IMAGE PORTSklpwtncehp0v nginx-cluster replicated 5/5 nginx:latest *:80->80/tcp$ docker service update --replicas 2 nginx-clusternginx-cluster#将服务缩减到2个$ docker service lsID NAME MODE REPLICAS IMAGE PORTSklpwtncehp0v nginx-cluster replicated 2/2 nginx:latest *:80->80/tcp$ docker service update --image nginx:new nginx-cluster#更新服务的镜像版本$ docker rm nginx-cluster#将所有节点上的所有容器全部删除,任务也将全部删除参考地址链接:容器技术|Docker三剑客之docker-swarmDocker入门到实践-Swarm 发布于 2019-11-24 20:40Docker容器虚拟化容器(虚拟化)​赞同 7​​5 条评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录微服务与云原生发现微服务与云原生的强大

docker swarm(一) 入门 -- 搭建一个简单的swarm集群 - 知乎

docker swarm(一) 入门 -- 搭建一个简单的swarm集群 - 知乎首发于小耸写BUG的地方切换模式写文章登录/注册docker swarm(一) 入门 -- 搭建一个简单的swarm集群小耸​xiaosong.fun 二线城市中的轻文艺程序员概述Docker Swarm是容器的集群管理工具。它的主要特性:集成于Docker Engine的集群管理工具。分布式设计。从一个image生成整个集群。一个docker swarm下的不同node,可以分布于同一,或不同的物理设备上。灵活调度。按需启动或关闭容器。高可用性。支持监控容器状态,如果容器崩溃,可以自动重启容器。支持多样的网络配置。支持overlay、macvlan、bridge、host等网络形式。服务发现。负载均衡。加密传输。默认基于TLS实现容器间的交互,实现加密传输。升级回退。支持动态升级容器,如果升级后的容器运行不正常,可自动回退到上一版本。主要概念node(节点)每个docker node都是docker engine的实例(可以理解成,每个docker node即是安装了docker环境的PC),可分为manager和worker两类。manager node:给worker nodes分配任务(task)。识别worker nodes的状态,调度容器。worker node执行manager mode分配的任务(task)。 service(服务)与task(任务)Docker Swarm通过一个YAML格式的文件,定义了生产环境(in production)中的Docker container行为。此文件包含对services定义、运行、扩容。service可以理解为是"containers in production"。它是一个swarm系统中最关键的定义。 一个service只能运行一个image,但是可以运行出同一个image的多个containers。一个task是swarm调度的最小单位,它运行于manager或worker nodes上。它即对应service中的一个container实例。它包含: 一个container container启动后运行的指令搭建一个Docker Swarm环境准备准备两个虚拟机,一个作为manager,一个作为worker。两个虚拟机间能ping通。并且要求以下端口开放访问:2377,2946。创建Swarm在manager设备上,创建swarm,同时配置一下manager的ip。$ docker swarm init --advertise-addr 192.168.154.135

Swarm initialized: current node (78ayx9kk6n3qr4gcn05nmuvzg) is now a manager.

To add a worker to this swarm, run the following command:

docker swarm join --token SWMTKN-1-523lnlcl8xbol5hmg4aab6ur2g2flmdx5zxb31qzj8r8ty0mbo-bhfp0yf7er2vysftf753s3rz5 192.168.154.135:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.通过docker info确认一下swarm已经创建。$ docker info

Client:

Debug Mode: false

Server:

Containers: 5

Running: 0

Paused: 0

Stopped: 5

...

Swarm: active

NodeID: 78ayx9kk6n3qr4gcn05nmuvzg

Is Manager: true

ClusterID: ommhsz8xug6ltvauyusfn3vsp

Managers: 1

Nodes: 1

Default Address Pool: 10.0.0.0/8

SubnetSize: 24

Data Path Port: 4789

Orchestration:

Task History Retention Limit: 5

...通过docker node ls确认docker node信息。$ docker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION

78ayx9kk6n3qr4gcn05nmuvzg * ubuntu Ready Active Leader 19.03.5把worker nodes加入swarm在上一步创建swarm时,docker提示了加入此swarm应执行的命令。在worker node上执行这些命令。$ docker swarm join --token SWMTKN-1-523lnlcl8xbol5hmg4aab6ur2g2flmdx5zxb31qzj8r8ty0mbo-bhfp0yf7er2vysftf753s3rz5 192.168.154.135:2377

This node joined a swarm as a worker.如果你没有记录下这个加入swarm的命令,可以在manager node上执行docker swarm join-token worker以重新获取命令。再回到manager节点上,查看当前swarm的成员。$ docker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION

78ayx9kk6n3qr4gcn05nmuvzg * ubuntu Ready Active Leader 19.03.5

lugs1vyy3o6z3dvnpytkxf6yi ubuntu Ready Active 19.03.5创建并部署一个service在manager节点上,创建一个service。docker service create --replicas 1 --name helloworld alpine ping docker.com参数解释:--replicas:service运行的实例个数--name: 命名service为hellowordalpine ping docker.com: 定义此service为,在 Alpine Linux容器中,执行ping http://docker.comdocker service ls确认一下:$ docker service ls

ID NAME MODE REPLICAS IMAGE PORTS

uyxa5ye0061k helloworld replicated 1/1 alpine:latest在执行了docker service create之后,此service即是已经被拆解成task执行了。通过以下命令可以查看它的执行状态。这里不具体展开了。docker service inspect --pretty

docker service ps docker ps可以查看在当前node上执行的task。此service当前在manager node上执行。$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

a1f880ea0a72 alpine:latest "ping docker.com" 16 minutes ago Up 15 minutes helloworld.1.crxx3hwti4wmj5p6zyqe8yi03service缩容与扩容docker service scale可以修改一个serivce衍生出的副本数量,也就是task数量。通过以下命令将helloworld扩容到5个task。$ docker service scale helloworld=5

helloworld scaled to 5

overall progress: 5 out of 5 tasks

1/5: running [==================================================>]

2/5: running [==================================================>]

3/5: running [==================================================>]

4/5: running [==================================================>]

5/5: running [==================================================>]

verify: Service converged查看service在各nodes上的运行情况$ docker service ps helloworld

ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS

crxx3hwti4wm helloworld.1 alpine:latest ubuntu Running Running 55 minutes ago

1kej5h5qmkvt helloworld.2 alpine:latest ubuntu-2 Running Running about a minute ago

u7i09cvrv7sj helloworld.3 alpine:latest ubuntu-2 Running Running about a minute ago

glipqhq70jo7 \_ helloworld.3 alpine:latest ubuntu-2 Shutdown Shutdown 8 minutes ago

x9qkewnqf2fa helloworld.4 alpine:latest ubuntu Running Running about a minute ago

vwkke0hvmxk8 \_ helloworld.4 alpine:latest ubuntu-2 Shutdown Shutdown 8 minutes ago

dsyijxuant14 helloworld.5 alpine:latest ubuntu-2 Running Running about a minute ago

ku0o7qg243tl \_ helloworld.5 alpine:latest ubuntu-2 Shutdown Shutdown 8 minutes ago删除service执行docker service rm删除service。$ docker service rm helloworld

helloworld若干秒后,此service衍生出的task也都停止运行。$ docker service ps helloworld

no such service: helloworld最后,欢迎访问小耸的博客#docker系列教程。编辑于 2020-02-11 14:47容器云Docker Swarm容器虚拟化​赞同 1​​1 条评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录小耸写BUG的地方小耸写bug的地方

个人博客:https://xiaosong.

swarm是什么意思_swarm的翻译_音标_读音_用法_例句_爱词霸在线词典

m是什么意思_swarm的翻译_音标_读音_用法_例句_爱词霸在线词典首页翻译背单词写作校对词霸下载用户反馈专栏平台登录swarm是什么意思_swarm用英语怎么说_swarm的翻译_swarm翻译成_swarm的中文意思_swarm怎么读,swarm的读音,swarm的用法,swarm的例句翻译人工翻译试试人工翻译翻译全文简明柯林斯牛津swarm考研/GRE/TOEFL/IELTS英 [swɔːm]美 [swɔːrm]释义n.蜂群,一大群vi.泛滥,挤满; 云集,涌往; 成群地移动或出现; 成群飞离蜂巢(用于蜜蜂)大小写变形:Swarm点击 人工翻译,了解更多 人工释义词态变化复数: swarms;第三人称单数: swarms;过去式: swarmed;过去分词: swarmed;现在分词: swarming;实用场景例句全部蜂群一大群泛滥挤满云集a swarm of bees/locusts/flies一大群蜜蜂 / 蝗虫 / 苍蝇牛津词典Tourists were swarming all over the island.岛上到处是旅游者熙来攘往。牛津词典The capital city is swarming with police.首都到处是警察。牛津词典A dark cloud of bees comes swarming out of the hive.黑压压的一大群蜜蜂从蜂巢中飞出来。柯林斯高阶英语词典People swarmed to the shops, buying up everything in sight.人们成群地涌向商店,见什么买什么。柯林斯高阶英语词典A swarm of people encircled the hotel...一大群人围住了这个酒店。柯林斯高阶英语词典Today at the crossing there were swarms of tourists taking photographs.今天在十字路口有大群的游客在拍照。柯林斯高阶英语词典Within minutes the area was swarming with officers who began searching a nearby wood.几分钟内很多警察就来到了这一地区,开始搜查附近的树林。柯林斯高阶英语词典The waters swarm with life.水里充满着生物.《简明英汉词典》Byron persisted, " They can swarm down like bees through any break in the clouds. "拜伦力争说, “ 他们可以从云层的随便哪一个缝隙里蜂拥而下. ”辞典例句Based on the idea specialization and cooperation, an adaptive Particle Swarm Optimization ( PSO ) algorithm is proposed.基于粒子分工与合作的思想, 提出一种自适应粒子群优化 ( PSO ) 算法.期刊摘选The particle swarm optimization algorithm is a new branch in evolution computing field.粒子群优化算法是进化计算领域中的一个新的分支.期刊摘选A swarm of ants are moving busily.一群蚂蚁正在忙碌地搬家.《简明英汉词典》Myriads of small marine insects swarm the ocean.无数的海中小昆虫群集在海洋中.期刊摘选A swarm of mosquitoes fly into the room.成群的蚊子飞进房间.《简明英汉词典》There is a swarm of bees in the tree.这树上有一窝蜜蜂.《简明英汉词典》Particle swarm optimization ( PSO ) approach is applied for semiconductor manufacturing batch scheduling problem in the thesis.提出了用微粒群算法来解决半导体炉管区的调度问题.期刊摘选My sister, in a staring red dress, was accosted by a swarm of shabby panhandlers.身穿惹眼红裙的姊姊, 被一群褴褛的乞丐兜搭讨钱.期刊摘选They swarm and swoon around him.他们围着他团团转,百般勾引他.辞典例句At last a swarm settled in a hive.终于有一群蜂落进了蜂巢.辞典例句The results have shown the effectiveness of particle swarm optimisation for flexible job shop scheduling.实验结果表明粒子群算法在柔性工作车间调度问题的应用上是十分有效的.期刊摘选In this paper, how to aggregate swarm robots and realize formation and walking is researched.针对如何形成群体机器人以及如何实现其队形变换和行走等技术内容,本文进行了相关研究.期刊摘选The second chapter describes the basic principle of particle swarm optimization algorithm and its current development.第二章详细讲述了粒子群算法基本原理和发展现状.期刊摘选We a Covenant armada over our heads, and an army about to swarm through this building.我们头上有圣约人的舰队, 一只军队正试图涌进这个建筑.期刊摘选It's a swarm text.它是一种群集式文本.期刊摘选She left amid a swarm of photographers.她离开时一群摄影记者围着她.辞典例句That's the wonderful appeal of swarm intelligence.那就是群体智慧的非凡吸引力.期刊摘选A hybrid algorithm is proposed based on binary particle swarm optimization and local search method.对所建立的模型,提出了基于二进制粒子群优化与局部搜索的混合求解算法.期刊摘选Particle swarm optimization is a newly emerging method for swarm intelligence optimization.粒子群算法是一种新出现的群智能优化算法.期刊摘选收起实用场景例句英英释义Noun1. a moving crowd2. a group of many insects;"a swarm of insects obscured the light""a cloud of butterflies"Verb1. be teeming, be abuzz;"The garden was swarming with bees""The plaza is teeming with undercover policemen""her mind pullulated with worries"2. move in large numbers;"people were pouring out of the theater""beggars pullulated in the plaza"收起英英释义词组搭配swarm upclimb (something) rapidly by gripping it with one's hands and feet, alternately hauling and pushing oneself upwards攀;爬I swarmed up the mast.我爬上了桅杆。收起词组搭配同义词辨析flock, herd, swarm这些名词都有"群"之意。flock: 主要指鸟群、羊群;也指较小的动物群,也可指人群。herd: 一般指大动物的群,尤指家畜的群,也可指人群。swarm: 通常指蜜蜂、昆虫等的群。group, crowd, gang, band, mob, throng, masses, swarm这些名词均含"群,帮,伙"之意。group: 普通用词,通常指有组织、有秩序的一群人,也可指无意汇集在一起的一群人。crowd: 常指无组织地乱哄哄地挤在一起的人群。gang: 常指从事非法、暴力或敌对活动的帮派或团伙。有时呈中性,词义同group。band: 多指一群有明确宗旨,为共同目的而结合在一起的人,常含贬义。mob: 指无组织、乱七八糟凑合在一起的乌合之众,或指聚集在一起寻衅滋事的人群,多为暴徒。throng: 书面用词,意义接近crowd,侧重密集地挤在一起的一群,含挤在一起向前推进之意。masses: 指群众或人民大众。swarm: 指人数众多,杂乱无章,不停移动的一群人。同义词crowdthrongmeetassembleclustergathercollect行业词典动物学群游   海洋科学集群   生态学群浮   水生无脊椎动物成体或幼体漂浮聚集在海面的现象。   释义词态变化实用场景例句英英释义词组搭配同义词辨析同义词行

完成✅Swarm发布v1.4.2最新版本 - 知乎

完成✅Swarm发布v1.4.2最新版本 - 知乎切换模式写文章登录/注册完成✅Swarm发布v1.4.2最新版本Swarm 网络节点Swarm Web3 项目·推进·更新发布于 2022-02-08 12:53Docker Swarm版本版本选择​赞同 1​​添加评论​分享​喜欢​收藏​申请

Swarm的基本认知-阿里云开发者社区

Swarm的基本认知-阿里云开发者社区

产品解决方案文档与社区权益中心定价云市场合作伙伴支持与服务了解阿里云售前咨询 95187-1 在线服务售后咨询 4008013260 在线服务其他服务 我要建议 我要投诉更多联系方式备案控制台开发者社区首页探索云世界探索云世界云上快速入门,热门云上应用快速查找了解更多问产品动手实践考认证TIANCHI大赛活动广场活动广场丰富的线上&线下活动,深入探索云世界任务中心做任务,得社区积分和周边高校计划让每位学生受益于普惠算力训练营资深技术专家手把手带教话题畅聊无限,分享你的技术见解开发者评测最真实的开发者用云体验乘风者计划让创作激发创新阿里云MVP遇见技术追梦人直播技术交流,直击现场下载下载海量开发者使用工具、手册,免费下载镜像站极速、全面、稳定、安全的开源镜像技术资料开发手册、白皮书、案例集等实战精华插件为开发者定制的Chrome浏览器插件探索云世界新手上云云上应用构建云上数据管理云上探索人工智能云计算弹性计算无影存储网络倚天云原生容器serverless中间件微服务可观测消息队列数据库关系型数据库NoSQL数据库数据仓库数据管理工具PolarDB开源向量数据库热门Modelscope模型即服务弹性计算云原生数据库物联网云效DevOps龙蜥操作系统平头哥钉钉开放平台大数据大数据计算实时数仓Hologres实时计算FlinkE-MapReduceDataWorksElasticsearch机器学习平台PAI智能搜索推荐人工智能机器学习平台PAI视觉智能开放平台智能语音交互自然语言处理多模态模型pythonsdk通用模型开发与运维云效DevOps钉钉宜搭支持服务镜像站码上公益

开发者社区

开发与运维

文章

正文

Swarm的基本认知

2021-12-05

229

版权

版权声明:

本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《

阿里云开发者社区用户服务协议》和

《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写

侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

简介:

  Swarm 是分布式存储平台和内容分发服务,是以太坊 web3 栈的本地基础层服务。Swarm 的主要目标是提供充分分散和冗余存储的以太坊公共记录,尤其是存储和分发 DApp 的代码和数据以及区块链数据。从经济角度来看,它允许参与者有效汇集他们的存储容量和带宽资源,以给网络的所有参与者提供这些服务,同时接受以太坊的激励。  目标  Swarm 更广泛的目标,是为去中心化的 web 应用程序(DApp)开发人员提供基础设施服务,特别是:消息传递、数据流、点对点记账、可变资源更新、存储保险、监管扫描和修复、支付渠道和数据库服务。

  Swarm 是分布式存储平台和内容分发服务,是以太坊 web3 栈的本地基础层服务。Swarm 的主要目标是提供充分分散和冗余存储的以太坊公共记录,尤其是存储和分发 DApp 的代码和数据以及区块链数据。从经济角度来看,它允许参与者有效汇集他们的存储容量和带宽资源,以给网络的所有参与者提供这些服务,同时接受以太坊的激励。

  目标

  Swarm 更广泛的目标,是为去中心化的 web 应用程序(DApp)开发人员提供基础设施服务,特别是:消息传递、数据流、点对点记账、可变资源更新、存储保险、监管扫描和修复、支付渠道和数据库服务。

  从终端用户的角度来看,Swarm 和万维网的差别不大,除了上传不托管在特定的服务器上。Swarm 提供了一个点到点的存储和服务解决方案,它具有 DDos 抗性、零停机、容错和审查及自我维持的特性,它内置了激励系统,通过点对点记账,允许用户为交易资源进行支付。Swarm 旨在和以太坊的 devp2p 多协议网络层以及以太坊区块链进行深度集成,以进行域名解析(利用 ENS)、服务支付和内容可用性保证。

  请注意: 为了解析 ENS 域名,Swarm 节点必须要连接到以太坊区块链上(主网或测试网)。

  概述

  Swarm 旨在给新的去中心化互联网提供基础层的基础设施。Swarm 是点对点的节点网络,通过彼此之间贡献资源(存储、消息转发、支付处理)提供分布式数字服务。以太坊基金会运作 Swarm 测试网,可以用来以类似于以太坊测试网络(ropsten)的方式测试功能。每个人都可以通过在自己的服务器、台式机、笔记本电脑或移动设备上运行 Swarm 客户节点加入到网络中。请参阅 《Swarm 入门(

  swarm-guide.readthedocs/en/latest/gettingstarted.html#getting-started)》一文以了解操作方法。Swarm 客户端是以太坊栈的一部分,参考实现是用 golang 编写的,可以在 go-ethereum 存储库中找到它。目前在所有节点上运行的是 POC 0.3 版。

  Swarm 提供 本地 HTTP 代理 API,DApp 或命令行工具可以用来和 Swarm 进行交互。像 消息传递 这样的模块只能基于 PRC-JSON API 才可使用。在测试网(testnet)上的基础服务提供公共网关,用于轻松演示功能和允许免费的访问,以便人们无需运行任何自己的节点即可尝试 Swarm。

  Swarm 是 devp2p 网络的节点集合,其中的每个节点在同一个网络 ID 上运行 bzz 协议套件。

  Swarm 节点也可以连接到一个(或多个)以太坊区块链上,以进行域名解析,并连接到一个以太坊区块链进行带宽和存储补偿。运行相同网络 ID 的节点应该连接到相同的区块链上以进行支付。Swarm 网络由其网络 ID 标识,该网络 ID 是一个任意整数。

  Swarm 允许上传(upload)和消失(disappear),这意味着任何节点可以只上传内容给 Swarm,然后就可以下线。只要节点没有丢失或变得不可用,该内容将仍旧可以访问,这是因为有一个“同步”的过程,节点持续地在彼此之间传递可用数据。

  公共网关

  Swarm 提供本地 HTTP 代理 API,DApp 可以用来和 Swarm 进行交互。以太坊基金会在托管公共网关,该网关允许免费访问,因此,人们甚至无需运行自己的卖二手手游节点即可尝试 Swarm。

  Swarm 公共网关可以在 swarm-gateways.net上找到,上面一直都运行着*的 Swarm 稳定版。

  目前,该网关只接受限制大小的上传。将来,上传到该网关的功能很可能完全消失。

  上传和下载

  数据上传内容由这些步骤组成:“上传”内容到本地 Swarm 节点,接着本地 Swarm 节点用其在网络中的对等点“同步”所生成的数据块。同时,下载内容由这些步骤组成:本地 Swarm 节点查询在网络中的对等点以获取相关的数据块,然后在本地重组这些内容。

  内容解析器:ENS

  为了解析 ENS 名称,Swarm 节点必须连接到以太坊区块链(主网或测试网)。

  ENS 是个系统,Swarm 用它来实现以人类可读的名称(如 theswarm.eth)引用内容。它的操作类似于 DNS 系统,把人类可读的名称转换成机器标识符,在此,即你正在引用的内容的 Swarm 哈希。通过注册一个名称,并把它解析成网站的根清单的内容哈希值,用户可以通过 URL(如 bzz://theswarm.eth/)访问该网站。

  目前,主流的浏览器(如 Chrome、Firefox 或 Safari)不支持 bzz 协议。目前,如果要通过这些浏览器访问 bzz 协议,必须使用 HTTP 网关(如

  swarm-gateways/bzz:/theswarm.eth/)或者使用支持 bzz 协议的浏览器(如 Mist)。

  可变资源更新(Mutable Resource Updates)

  可变资源更新是 Swarm POC3 上的一项 高度实验性的功能 。它正在积极开发中,因此,有些东西可能会有变化。

  我们在这份指南中已经了解到,当我们在 Swarm 中改变数据时,我们上传的数据所返回的哈希值会以无法预料的方式变化。通过可变资源更新,Swarm 提供一种内置方式,可以对更改数据保持一个持久的标识符。

  为了保持与更改数据有相同的指针,常用的方法是利用以太坊命名服务 ENS。但是,ENS 是一个链上功能,它限制了其他地方的功能:

  每个 ENS 解析器的更新都需要 gas 才能进行。更改数据不可能比挖出新区块的速度更快。正确的 ENS 解析方案要求始终同步到区块链。

  可变资源更新允许我们用非变量标识符来更改数据,无需使用 ENS。利用在创建资源时获得的密钥,可以像普通 Swarm 对象一样引用可变资源。

  如果同时使用 ENS 解析器合约和可变资源更新,只需要一个初始事务来注册 MRU_MAINFEST_KEY。该密钥将解析到资源的最近版本上(更新该资源不会改变该密钥)。有 3 种和可变资源更新进行交互的方法:HTTP API、Golang API 和 Swarm CLI。

  注意事项:

  只有创建该资源的私钥(地址)可以更新它。在创建可变资源时,必须要提供的参数之一是预期的更新频率。这表明该资源多快(以秒计算)被更新一次。尽管你可以以其他的速率更新该资源,但这么做会减慢索引该资源的处理过程。

  Swarm 上的加密

  在 POC 0.3 中引入了对称加密技术,现在可以很容易随 Swarm up 上传命令一起使用对称加密了。该加密机制是用来保护信息,并使得在处理任何 Swarm 节点时都不可读分块数据。

  Swarm 使用 计数器模式加密技术 来加密和解密内容。当上传内容到 Swarm 时,该上传的数据被分为 4KB 大小的块。这些块都将用独立的随机生成的加密密钥来编码。这个加密过程在本地 Swarm 节点上发生,没被加密的数据不与其他节点共享。单个块(和整个内容)的引用将是编码数据哈希值和加密密钥的组合。这意味着引用将比标准无加密的 Swarm 引用长一些(不是 32 个字节,而是 64 个字节)。

  当你的节点将你的内容的加密块与其他节点同步时,它不与其他节点共享完整的引用(或任何方式的解密密钥)。这意味着其他节点无法访问你的原始数据,此外,它们也无法侦测到同步的块是否经过加密。

  检索数据时,只在本地 Swarm 节点上将它解密。在整个检索过程中,这些块以加密的形式遍历网络,参与的对等节点无法解密它们。它们只在用于下载的 Swarm 节点上进行解密和重组。

  注意事项:

  Swarm 支持加密。由于无法撤销上传,因此强烈建议不上传未加密的敏感和私密数据。用户应该避免上传非法的、有争议的或不道德的内容。Swarm 目前即支持加密也支持未加密的 swarm up 命令,通过使用 --encrypt 参数来标识。将来可能有变化。加密功能是非确定性的(因为每个上传请求生成的密钥是随机的),API 的用户不应该依赖结果的幂等性;这样,在启用加密的情况下,同样的内容两次上传到 Swarm 所产生的引用是不同的。

  作者:诺亚科技;来自链得得内容开放平台“得得号”,本文仅代表作者观点,不代表链得得官方立场凡“得得号”文章,原创性和内容的真实性由投稿人保证,如果稿件因抄袭、作假等行为导致的法律后果,由投稿人本人负责得得号平台发布文章,如有侵权、违规及其他不当言论内容,请广大读者监督,一经证实,平台会立即下线。如遇文章内容问题,请联系微信:chaindd123

dasein58

目录

热门文章

最新文章

为什么选择阿里云什么是云计算全球基础设施技术领先稳定可靠安全合规分析师报告产品和定价全部产品免费试用产品动态产品定价价格计算器云上成本管理解决方案技术解决方案文档与社区文档开发者社区天池大赛培训与认证权益中心免费试用高校计划企业扶持计划推荐返现计划支持与服务基础服务企业增值服务迁云服务官网公告健康看板信任中心关注阿里云关注阿里云公众号或下载阿里云APP,关注云资讯,随时随地运维管控云服务售前咨询:95187-1售后服务:400-80-13260法律声明及隐私权政策Cookies政策廉正举报安全举报联系我们加入我们阿里巴巴集团淘宝网天猫全球速卖通阿里巴巴国际交易市场1688阿里妈妈飞猪阿里云计算AliOS万网高德UC友盟优酷钉钉支付宝达摩院淘宝海外阿里云盘饿了么© 2009-2024 Aliyun.com 版权所有 增值电信业务经营许可证: 浙B2-20080101 域名注册服务机构许可: 浙D3-20210002 京D3-20220015浙公网安备 33010602009975号浙B2-20080101-4

什么是 Swarm 智能? | 词汇表 | 慧与

什么是 Swarm 智能? | 词汇表 | 慧与

跳转到主目录 Hewlett Packard Enterprise Hewlett Packard Enterprise 主页 HPE GreenLake 解决方案 产品 服务 学习 支持 联系 更多 登录 主页 HPE GreenLake 服务 支持 联系 搜索 关闭 主页 HPE GreenLake 解决方案 产品 服务 学习 支持 联系 中国 (ZH) HPE MyAccount 您的 HPE MyAccount 可为您提供: HPE 生态系统单点登录途径 个性化推荐 试用与其他试用版 以及其他更多专属权益 登录帐户 创建帐户 HPE MyAccount HPE MyAccount 我的书签 管理帐户 管理帐户 登出 登出 我的购物车 您的购物车目前是空的 前往 HPE 商店浏览、配置和订购。 立即购买 发生错误 尝试在 HPE 商店查看您的购物车,或稍后再查看。 查看购物车 HPE 生态系统 HPE GreenLake 云控制台 云服务 数据服务 Compute Ops Management Aruba Central HPE GreenLake 管理 管理帐户 管理设备 HPE 资源 支持中心 Financial Services 开发人员 社区 返回主菜单 解决方案 开放且安全的边缘到云平台,助您推进数据优先现代化进程 开放且安全的边缘到云平台,助您推进数据优先现代化进程 了解更多有关 HPE GreenLake 边缘到云平台的信息 边缘 连接边缘 掌控边缘到云的数据。 数据 将数据转化为智能洞见 单一数据事实来源,助您做出明智决策,为客户提供实用的建议。 AI 要让 AI 为您所用 挖掘数据的全部潜力,为您创造 AI 优势。 云 打造混合云 以您需要的方式提供混合云。 安全性 保护数据 安全保护到位。 所有产品和解决方案 产品类型 按主题分类的解决方案 行业 查看全部 返回主菜单 产品 边缘到云端平台 HPE GreenLake 通过 HPE GreenLake 边缘到云平台加速您的数据优先现代化步伐,无论应用和数据位于何处,均可享受云体验。 HPE GreenLake 通过 HPE GreenLake 边缘到云平台加速您的数据优先现代化步伐,无论应用和数据位于何处,均可享受云体验。 了解 HPE GreenLake 产品类型 Supercomputing Compute Storage Networking Software Services 产品品牌 HPE Cray Supercomputing HPE ProLiant Compute HPE Alletra Storage HPE Aruba Networking HPE Ezmeral Software HPE Services 特别推荐产品 HPE GreenLake for Networking HPE GreenLake for Block Storage HPE GreenLake for Private Cloud Enterprise HPE GreenLake for Compute Ops Management HPE GreenLake for Disaster Recovery HPE GreenLake for Backup and Recovery 所有产品和解决方案 产品类型 按主题分类的解决方案 行业 查看全部 返回主菜单 学习 关于 HPE 了解 HPE 企业社会责任 人才招聘 活动 认证与培训 HPE Education Services 免费的开发人员点播研讨会 免费的按需学习技术课程 资源和文档 客户成功案例 参考架构 规格概述 网络研讨会 查看全部 HPE GreenLake 入门 什么是边缘到云? HPE GreenLake 常见问题解答 亲自试用 HPE GreenLake Central 用户指南 Swarm 智能 主页 企业词汇表 - 关键定义 什么是 Swarm 智能? | 词汇表 Overview 概述 跳到 联系我们 Overview 概述 电子邮件销售 电子邮件销售 销售聊天 销售聊天 销售聊天 销售聊天 联系我们! 我们的销售专家竭诚为您服务 电子邮件销售 电子邮件销售 销售聊天 销售聊天 销售聊天 销售聊天 什么是 Swarm 智能? Swarm 智能指的是以自然界的范例作为模型,供分散化学习和决策之用。鸟类、蜜蜂、鱼类、蚂蚁和其他生物体作为一个团体(而不是个体)共同制定令人惊叹的复杂决策。人工智能将类似的原则应用到动态、聚合分析和结论。 Swarm 智能如何运作? Swarm 智能是集体学习和决策的一种形式,以分散化、自发的系统为基础。自然界中这类范例比比皆是 - 成群的鸟类和鱼类作为团体行动并作出反应,不需要任何领导角色指示或引导。来自任何组成部分的输入都能立刻改变整个团体的行为。 作为人工智能的一种形式,Swarm 智能包括一个端点设备网络,而这个网络能够在源头产生和处理数据。符合部分预定条件的相关信息会立即在网络中共享,让个别行为者能够处理同伴传来的输入并采取措施,而不必依赖中心式数据湖或决策矩阵。 例如,能够收集和处理交通数据的自动驾驶汽车可将信息分享给同一交通系统中的其他汽车,方便其针对不断变化的交通条件实时作出反应、调整速度和路线以避开危险路况或拥塞。 区块链技术让边缘位置能够以值得信赖的方式分享信息和洞见,向网络提供实用数据,同时不危及其端点的隐私和安全性。医疗和财务系统极为重视这一点。 相关 HPE 解决方案、产品或服务 AI 解决方案 深度学习与机器学习解决方案 机器学习开发环境 机器学习开发系统 HPE GreenLake 机器学习服务 相关主题 人工智能  深度学习  机器学习  Swarm 智能有哪些优势? Swarm 智能拥有广阔的应用前景,可用于工业规模的协调自动化,也可用于对智能和安全程度有更高要求的医疗和财务系统。在个别边缘设备能够识别并与同类设备分享关键信息之后,整个网络的智能程度和适应能力都得到了提升。 Swarm 智能拥有以下特性: 协作 - 能够直接在设备间分享信息。 适应能力 - 能够识别预定的刺激因素并对新事件进行分类。 灵活 - 能够快速响应会影响系统中任何行为者的各类条件。 分散化 - 能够独立或集体行动,不需要中央协调或控制。 响应能力 - 能够毫无延迟、即刻针对局部刺激因素作出反应。 自发 - 能够视需要化身各类角色来响应瞬息万变的条件。 自我纠正 - 能够适应及重组,即便个别行为者失败,也能针对错误做出弥补并完成任务。 安全 - 能够共享关键洞见,同时符合保密性或隐私要求。 HPE 与 Swarm 智能 HPE 人工智能部门的高级副总裁兼首席技术执行官 Eng Lim Goh 博士是 Swarm 智能和 Swarm 学习领域的杰出专家。 作为 HPE 研究与开发部门,Hewlett Packard Labs 将继续推动 Swarm 智能和 Swarm 学习在技术和应用程序方面的创新。 Swarm 智能在人工智能和机器学习领域,给 HPE 产品/服务带来了深远影响。有兴趣实施 Swarm 智能的组织可选择现有 HPE AI/ML 和边缘计算产品/服务,HPE Apollo 系统、HPE ProLiant 服务器和 HPE Edgeline 融合边缘系统等产品/服务可提供相关优势。 我们可以为您提供哪些帮助? 搜索 hpe.com 搜索 hpe.com 搜索 hpe.com Buy 购买方式 Product 产品支持 Email 电子邮件销售 Chat 与销售人员交谈 致电慧与 联系 HPE 关注慧与 Linkedin X Facebook Youtube RSS 公司 公司 关于慧与 可及性 人才招聘 联系我们 企业责任 全球多元化及包容度 慧与现代奴隶透明化声明 (PDF) Hewlett Packard Labs 投资者关系 企业管理层 公开政策 相关信息: 相关信息: 人工智能 云计算 容器 机器学习 企业词汇表 新闻和活动 新闻和活动 新闻中心 HPE Discover 活动 网络研讨会 本地活动 合作伙伴 合作伙伴 Partner Ready Program Partner Ready Vantage 计划 寻找合作伙伴 认证 HPE GreenLake Marketplace 支持 支持 产品支持 软件和驱动程序 保修检查 增强型支持服务 教育与培训 产品回收与再利用 确认设备零件 社区 社区 HPE 社区 Aruba Airheads HPE Tech Pro Community 慧与开发人员 所有博客和论坛 客户资源 客户资源 客户实例 购买方式 金融服务 HPE 客户中心 电子邮件注册 HPE MyAccount 资源库 视频库 申请加入 Voice of the Customer 计划 关注慧与 Linkedin X Facebook Youtube RSS 中国 (zh) © 版权所有 2024 慧与发展有限责任合伙企业 隐私 使用条款 广告支持与 Cookie 网站地图