可以的。
用什么工具无所谓,docker只不过是完成了一个套装的解决方案。软件已经安装好,直接启动带相应的参数就可以了。比如官方postgresql的经典的流复制模式搭建主从和postgresql10的逻辑复制。先启动个容器传入参数启动,数据目录,用户名密码,挂载数据盘,创建publication。一气呵成。再启动一个容器,同样设置数据目录,设置密码,挂载数据盘,创建subscription连接master。同样一气呵成。然后一个逻辑复制的小型集群就搭建好了。
但是我觉得你想问的不是怎么搭建这样一个集群,而是想知道postgresql-xl怎么把海量数据分散到不同的服务节点上去吧?这是sharding技术跟x不xl没有任何关系。postgresql-xl只不过是其本身就是基于postgresql内核的分布式数据库其自身就有代理节点,计算节点,数据节点,全局事物节点。跟docker并没有什么关系,docker就是一个可以运行他的一个容器化的虚拟环境而已,可以理解成vps/虚拟机。
像官方版postgresql也可以利用其自带的分区和fdw功能去实现像postgresql-xl那样的把海量数据均衡的分布到无数个服务器节点中去。只是配置和维护稍显繁琐。
1、修改用户名和密码右击我的电脑-管理,然后在d出的计算机管理界面中,点击“本地用户和组”在右侧找到你登录时候用的用户名,右击-设置密码即可设置该用户名的新密码,如果修改用户名可以右击-重命名即可修改。
2、磁盘管理右击我的电脑-管理,然后在d出的计算机管理界面中,点击“磁盘管理”右侧黑色的代表为指派的磁盘空间右击黑色未指派磁盘-新建磁盘分区-新建磁盘分区向导-选折主磁盘分区(大小根据需求设置)-指派磁盘驱动器号-执行快速格式化-完成。更改盘符的卷标-右击该盘符-更改驱动器号和路径-指派驱动器号。
3、更改3389远程登录端口 Windows默认的远程登录端口是3389,有的时候为了安全考虑,需要更改远程端口。点击开始-运行-输入regedit打开注册表编辑器,由于注册表上有很多信息,最简单的方法寻找需要修改端口的地方,键盘ctrl+F,d出搜索框,输入Portnumber进行查找,可能会搜到几处选项,注意查找值为3389的名称。需要修改的地方有两个-双击portnumber,选择十进制,将3389更改为别的数字,最好是越大越好,当然在65535之内,因为大的数字别的程序占用的几率比较小。
4、防火墙安全配置修改完成后,一定要查看本地的防火墙用没有打开,如果打开,需要在防火墙中将修改后的端口添加到例外。右键网上邻居-选择属性-网络连接-右键本地连接-属性-高级-设置,打开windows防火墙,选择例外选项。
DApp是decentralized application的缩写,是指分布式应用的意思。
一般的应用(一个网站),在我们登录的时候,会同步数据到服务器端,而这个服务器端是所有用户的一个中心。相对于一般的应用,DApp是指服务器端也以分布式的形式存在的应用。
Dapp abbreviate as Decentralized Application used to Developed Applications using Front-end(HTML+CSS+JS) Web page + Back-end(Solidity Smart contract) Programming code + Server(TestRPC) Private Blockchain/Dummy Network in Ethereum platform
DApp结构图
DApp和智能合约是什么关系?
DApp的概念是伴随着Ethereum“世界电脑“提出来的。
区块链共链有一个概念,叫做智能合约。
智能合约,就是一段发布以后不可以修改,并且条件满足后,就执行的代码。
在某种意义上说,DApp就是:一个分布式的,应用+智能合约。取代了传统意义上的服务器端。
什么是Swarm?
Swarm查过字典的童鞋,应该知道是蜂群的意思。
我们可以把里面的小蜜蜂想想成一个个的数据。所以Swarm就是一大堆数据的意思。
Swarm是用于DApp的“服务器端”存储数据用的。当然,不仅仅是Swarm,IPFS,BitTorrent等也都是用于同一个目的。
Swarm is being designed as an accounting protocol that benefits from the automatic execution of so-called "smart contracts" running on the Ethereum Virtual Machine (EVM) This accounting protocol is independent of the physical storage mechanism
什么是Whisper?
Whisper切切私语的意思。也是从DApp衍生出来的一个概念。
我们既然有了分布式的:应用+智能合约,也有了配合智能合约存储数据的Swarm,那在这个分布式的平台,我们需要一个机制来同步信息。这就是Whisper的作用。
小结
Contracts: 智能合约,负责逻辑的部分
Swarm: 存储数据用
Whisper: 消息同步
只有Ethereum在发展DApp么?
DApp的概念最初是Ethereum提出来的。但Ethereum不是唯一一个有相同目标的平台。很多公链都可以实现DApp的开发
回答来源宽客在线文章:DApp是指什么?
docker swarm的ingress网络又叫 Ingress Routing Mesh主要是为了实现把service的服务端口对外发布出去,让其能够被外部网络访问到。
ingress routing mesh是docker swarm网络里最复杂的一部分内容,包括多方面的内容:
创建一个service,指定网络是overlay的mynet, 通过-p把端口映射出来
我们使用的镜像 containous/whoami 是一个简单的web服务,能返回服务器的hostname,和基本的网络信息,比如IP地址
8080这个端口到底映射到哪里了?尝试三个swarm节点的IP加端口8080
可以看到三个节点IP都可以访问,并且回应的容器是不同的(hostname),也就是有负载均衡的效果
以manager节点为例,数据到底是如何达到service的container的
通过iptables,可以看到一条DNAT的规则,所有访问本地8080端口的流量都被转发到 1721802:8080
那这个1721802 是什么?
首先 1721800/16 这个网段是 docker_gwbridge 的,所以这个地址肯定是连在了 docker_gwbridge 上。
docker network inspect docker_gwbridge 可以看到这个网络连接了一个叫 ingress-sbox的容器。它的地址就是 1721802/16
这个 ingress-sbox其实并不是一个容器,而是一个网络的命名空间 network namespace, 我们可以通过下面的方式进入到这个命名空间
通过查看地址,发现这个命名空间连接了两个网络,一个eth1是连接了 docker_gwbridge,另外一个eth0连接了 ingress 这个网络。
通过ipvs做了负载均衡
关于这里的负载均衡单服务器容器规模指的是在一台服务器上运行多个容器实例的数量。这个数量通常受到服务器硬件资源的限制,如CPU、内存、磁盘空间等。对于一台具有良好硬件配置的服务器来说,可以运行数十甚至上百个容器实例。
但是,容器的规模并不仅仅与硬件资源有关,还与应用程序的特性有关。例如,一个I/O密集型的应用程序会大量使用磁盘I/O,可能会使磁盘资源成为瓶颈,从而影响容器的规模。另一个例子是内存密集型应用程序,可能会需要大量的内存才能支持运行,从而限制容器的数量。
因此,在确定单服务器容器规模时,需要考虑应用程序的特性和硬件资源的限制,并进行实际测试和评估,以确定最适合的容器数量。同时,还需要考虑容器之间的互相影响,以避免容器间的资源竞争和瓶颈问题。docker主机内部网络正常,与其它主机的连接失效,其它主机不能连接docker主机上映射的端口,docker内部也无法连接外部主机。
添加配置
执行 sysctl -p 生效
再次查看docker info,警告消失,主机上的docker网络恢复正常。
我所使用的服务器是阿里云服务器
如果你的集群使用的默认端口4789,那么你可能遇到跟我一样的问题。
阿里云的帮助文档中有这样一句话:
在1903及之后的版本,docker在swarm init之上增加了–data-path-port uint32 的配置项用于更改docker swarm的VXLAN端口。
修改端口之后成功解决问题
查看docker日志(journalctl -u docker -n 20 -f )发现 :
出现这个原因是因为宿主机没有加载ip_vs模块。在各个节点加载ip_vs模块后重启docker即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)