前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >浅谈Python Django框架

浅谈Python Django框架

作者头像
小小科
发布于 2018-08-17 08:24:29
发布于 2018-08-17 08:24:29
2.5K00
代码可运行
举报
文章被收录于专栏:北京马哥教育北京马哥教育
运行总次数:0
代码可运行

Consul是在微服务架构中做注册中心的一个程序,非常小巧。它可以和openresty配合做网关路由,和springcloud配合做服务发现。除了单机运行,它还能部署为高可用集群。下面,我先讲一下如何手动安装Consul节点并加入集群,再演示如何通过流水线安装Consul集群。

机器准备

3台腾讯云主机

确保防火墙允许内网中以下端口可访问

10.0.16.12、10.0.16.16、10.0.16.7

8300、8301、8302、8500、8600

手动安装

【步骤1】下载 Consul,解压到 /usr/bin

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wget https://releases.hashicorp.com/consul/1.11.4/consul_1.11.4_linux_amd64.zip

unzip consul_1.11.4_linux_amd64.zip
sudo mv consul /usr/bin/

【步骤2】创建配置文件和数据目录

创建 /etc/consul.d/consul.env 文件,内容为空

创建 /etc/consul.d/consul.hcl,内容从官方模板复制:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Full configuration options can be found at https://www.consul.io/docs/agent/options.html

# datacenter
# This flag controls the datacenter in which the agent is running. If not provided,
# it defaults to "dc1". Consul has first-class support for multiple datacenters, but 
# it relies on proper configuration. Nodes in the same datacenter should be on a 
# single LAN.
#datacenter = "my-dc-1"

# data_dir
# This flag provides a data directory for the agent to store state. This is required
# for all agents. The directory should be durable across reboots. This is especially
# critical for agents that are running in server mode as they must be able to persist
# cluster state. Additionally, the directory must support the use of filesystem
# locking, meaning some types of mounted folders (e.g. VirtualBox shared folders) may
# not be suitable.
data_dir = "/data/consul"

# client_addr
# The address to which Consul will bind client interfaces, including the HTTP and DNS
# servers. By default, this is "127.0.0.1", allowing only loopback connections. In
# Consul 1.0 and later this can be set to a space-separated list of addresses to bind
# to, or a go-sockaddr template that can potentially resolve to multiple addresses.
#client_addr = "0.0.0.0"

# ui
# Enables the built-in web UI server and the required HTTP routes. This eliminates
# the need to maintain the Consul web UI files separately from the binary.
# Version 1.10 deprecated ui=true in favor of ui_config.enabled=true
#ui_config{
#  enabled = true
#}

# server
# This flag is used to control if an agent is in server or client mode. When provided,
# an agent will act as a Consul server. Each Consul cluster must have at least one
# server and ideally no more than 5 per datacenter. All servers participate in the Raft
# consensus algorithm to ensure that transactions occur in a consistent, linearizable
# manner. Transactions modify cluster state, which is maintained on all server nodes to
# ensure availability in the case of node failure. Server nodes also participate in a
# WAN gossip pool with server nodes in other datacenters. Servers act as gateways to
# other datacenters and forward traffic as appropriate.
#server = true

# Bind addr
# You may use IPv4 or IPv6 but if you have multiple interfaces you must be explicit.
#bind_addr = "[::]" # Listen on all IPv6
#bind_addr = "0.0.0.0" # Listen on all IPv4
#
# Advertise addr - if you want to point clients to a different address than bind or LB.
#advertise_addr = "127.0.0.1"

# Enterprise License
# As of 1.10, Enterprise requires a license_path and does not have a short trial.
#license_path = "/etc/consul.d/consul.hclic"

# bootstrap_expect
# This flag provides the number of expected servers in the datacenter. Either this value
# should not be provided or the value must agree with other servers in the cluster. When
# provided, Consul waits until the specified number of servers are available and then
# bootstraps the cluster. This allows an initial leader to be elected automatically.
# This cannot be used in conjunction with the legacy -bootstrap flag. This flag requires
# -server mode.
#bootstrap_expect=3

# encrypt
# Specifies the secret key to use for encryption of Consul network traffic. This key must
# be 32-bytes that are Base64-encoded. The easiest way to create an encryption key is to
# use consul keygen. All nodes within a cluster must share the same encryption key to
# communicate. The provided key is automatically persisted to the data directory and loaded
# automatically whenever the agent is restarted. This means that to encrypt Consul's gossip
# protocol, this option only needs to be provided once on each agent's initial startup
# sequence. If it is provided after Consul has been initialized with an encryption key,
# then the provided key is ignored and a warning will be displayed.
#encrypt = "..."

# retry_join
# Similar to -join but allows retrying a join until it is successful. Once it joins 
# successfully to a member in a list of members it will never attempt to join again.
# Agents will then solely maintain their membership via gossip. This is useful for
# cases where you know the address will eventually be available. This option can be
# specified multiple times to specify multiple agents to join. The value can contain
# IPv4, IPv6, or DNS addresses. In Consul 1.1.0 and later this can be set to a go-sockaddr
# template. If Consul is running on the non-default Serf LAN port, this must be specified
# as well. IPv6 must use the "bracketed" syntax. If multiple values are given, they are
# tried and retried in the order listed until the first succeeds. Here are some examples:
#retry_join = ["consul.domain.internal"]
#retry_join = ["10.0.4.67"]
#retry_join = ["[::1]:8301"]
#retry_join = ["consul.domain.internal", "10.0.4.67"]
# Cloud Auto-join examples:
# More details - https://www.consul.io/docs/agent/cloud-auto-join
#retry_join = ["provider=aws tag_key=... tag_value=..."]
#retry_join = ["provider=azure tag_name=... tag_value=... tenant_id=... client_id=... subscription_id=... secret_access_key=..."]
#retry_join = ["provider=gce project_name=... tag_value=..."]

创建数据目录 /data/consul

【步骤3】创建启动服务

创建启动服务文件 /usr/lib/systemd/system/consul.service。这里配置为以 server 模式启动

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[Unit]
Description="HashiCorp Consul - A service mesh solution"
Documentation=https://www.consul.io/
Requires=network-online.target
After=network-online.target
ConditionFileNotEmpty=/etc/consul.d/consul.hcl

[Service]
EnvironmentFile=/etc/consul.d/consul.env
#User=consul
#Group=consul
ExecStart=/usr/bin/consul agent -server -ui -data-dir=/data/consul -config-dir=/etc/consul.d/ -bootstrap-expect=1
ExecReload=/bin/kill --signal HUP $MAINPID
KillMode=process
KillSignal=SIGTERM
Restart=on-failure
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

启动服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl daemon-reload
sudo systemctl enable consul
sudo systemctl restart consul

查看 Consul 状态

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> consul members
Node             Address          Status  Type    Build   Protocol  DC   Partition  Segment
VM-16-12-ubuntu  10.0.16.12:8301  alive   server  1.11.4  2         dc1  default    <all>

这样 Consul Server 节点1就安装好了。重复在其他机器上安装好节点2、节点3

【步骤4】加入集群

在节点2、节点3上执行加入节点1的命令,组成集群

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> consul join 10.0.16.12
Successfully joined cluster by contacting 1 nodes.
> 
> consul members
Node             Address          Status  Type    Build   Protocol  DC   Partition  Segment
VM-16-12-ubuntu  10.0.16.12:8301  alive   server  1.11.4  2         dc1  default    <all>
VM-16-16-ubuntu  10.0.16.16:8301  alive   server  1.11.4  2         dc1  default    <all>
VM-16-7-ubuntu   10.0.16.7:8301   alive   server  1.11.4  2         dc1  default    <all>

这样,3节点的 Consul 集群就安装好了!

流水线安装

我已经将上面的步骤做成了流水线,使用的是Y20持续部署,以后有新机器就可以直接拿来用。流水线在安装Consul并加入集群 - Y20持续部署

流水线的步骤就是手动安装的步骤,配置文件也已经上传,但是,流水线有3个输入变量要说明一下:

  • AGENT:安装 Consul 的节点
  • AGENT_MODE:安装模式(服务端或客户端)
  • JOIN_AGENT:要加入的集群节点。如果为空,则不会加入集群

流水线需要在每个安装节点上运行,也就是运行3次。安装节点1时,不填 JOIN_AGENT,不需要加入其他集群。安装节点2、节点3时,JOIN_AGENT选择节点1,流水线会查询节点1的IP,并加入节点1的集群。

下面是演示视频:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-08-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 马哥Linux运维 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
智慧城市产业应用实践,高精度火灾烟雾检测方案详解
据报道,2021年全国消防救援队伍共接报火灾74.8万起,死亡1987人,受伤2225人,直接财产损失67.5亿元。传统靠人工报警的方法存在人员管理难、场地数量多且分散等问题,无法有效发现险情降低火灾损失。为了保障民众的生命财产安全,应用AI技术及时、自动检测监控区域内的烟雾和火灾至关重要。
用户1386409
2022/04/19
3670
智慧城市产业应用实践,高精度火灾烟雾检测方案详解
公共场所人流数据统计如何实现?解决重识别、漏检等检测难题
当前疫情形势严峻,商场、火车站、地铁口等公共场所对人员流量的统计至关重要。“每天进出多少人?” “现在商场中人员数量有多少?”这些关键数据直接影响到相关防疫管控措施。因为人员基数较大、流动性较高,通过人工来进行流量统计费时费力,更难保障准确性。针对上述难点,大量场景开始使用深度学习中视觉技术来解决此类问题。
用户1386409
2022/08/31
1.2K0
智慧零售产业应用实战,30分钟上手的高精度商品识别
然而,相较更加普遍的人脸识别技术来说,商品识别在实际的产业应用中也面临着其独有的巨大挑战:
用户1386409
2022/04/19
8010
智慧零售产业应用实战,30分钟上手的高精度商品识别
人工智能如何助力市政垃圾清洁?垃圾检测全流程方案详解
环境卫生是城市的名片,智慧环卫更是智慧城市中不可缺少的板块。随着作业严格化、服务综合化、人口老龄化等趋势的发展,环卫行业面临诸多新问题和新挑战,而AI技术的发展成为一大助力,帮助环卫智能升级,实现设施智能化、运营管理信息化、分析决策智慧化。如何充分利用现有的环卫车辆和设备,对城市整洁度实现实时的监控?如何在减少人工的前提下,更及时地发现问题,解决问题?如何有效监督环卫作业的完成质量?
用户1386409
2022/08/31
9070
PaddleX全流程开发工具公开邀测啦!
依托飞桨开源深度学习框架和丰富的工具组件,PaddleX进行全流程的整合打通,为开发者提供飞桨全流程开发的最佳实践。它集飞桨核心框架、模型库、工具及组件等深度学习开发所需全部能力于一身,提供简明易懂的Python API,方便用户根据实际生产需求进行直接调用或二次开发,是提升深度学习项目开发效率的最佳辅助工具。这套工具的公测版于2020年3月30日在飞桨官网上发布,我们诚挚地邀请您试用,并根据您的意见不断进步及演化,让它助力每一位深度学习开发者实现无限创造。
用户1386409
2020/04/15
5830
如何轻松上手3D检测应用实战?飞桨产业实践范例全流程详解
随着深度学习技术的快速发展,3D检测技术作为关键发展方向之一,在机器人视觉、城市视觉、增强现实等领域发挥重要作用。传统依靠激光雷达的3D检测方法存在传感器昂贵,难以大规模广泛部署、点云缺失纹理信息、分辨率低等问题。建立单目3D检测模型,有效地利用了图像相对于点云的各个优势,以更低的成本部署到实际应用场景。
用户1386409
2022/08/31
3790
基于OpenVINO部署的工业缺陷检测产业实践范例实战
在当前发展阶段,制造企业普遍面临着诸多的挑战,包括如何改善工作效率以提升行业竞争力,如何降低生产过程中的产品不良率等,从而优化产业成本,其中缺陷检测便是最典型的场景之一。人工肉眼检测的识别效率低,且成本较高,传统机器的方法可扩展性又较差,深度学习技术为上述问题提供了一条解决之道。通过在智能制造系统中使用深度学习技术,制造企业将能够获得自动视觉定位缺陷位置,辨别缺陷种类,真正实现降本增效的目的。
用户1386409
2022/08/31
7780
又一神器面世:百度重磅发布「全流程开发套件」!
最近在做一个工业巡检的项目,主要涉及的内容是指针型表计的读取。本系列文章主要介绍实现表计读取的全流程开发。其中主要使用的工具为飞桨全流程开发工具 PaddleX 和 Visual Studio 2019。
GitHubDaily
2020/11/05
6060
又一神器面世:百度重磅发布「全流程开发套件」!
工业党福利:使用PaddleX高效实现指针型表计读取系列文章(1)
最近在做一个工业巡检的项目,主要涉及的内容是指针型表计的读取。本系列文章主要介绍实现表计读取的全流程开发(立个FLAG,想想真是肝...留下了不争气的眼泪),其中主要使用的工具为百度开发的PaddleX和Visual studio 2019。
用户7699929
2020/08/27
9760
工业党福利:使用PaddleX高效实现指针型表计读取系列文章(1)
人员出入管理效率如何提升?超轻量图像分类方案详解
近几年,人工智能计算机视觉技术在安防、工业制造等场景的产业智能化升级进程中发挥着举足轻重的作用。“人员进出管理”作为各行业中的关键场景,应用需求十分迫切。如居家防盗、机房管理以及景区危险告警等场景,需要对异常目标(人、车或其他物体)不经允许擅自进入规定区域进行及时检测。利用深度学习视觉技术,可以及时准确地对闯入行为进行识别并发出告警信息,切实保障人员的生命财产安全。相比传统人力监管的方式,不仅可以实现7X24小时不间断的全方位保护,还能极大地降低管理成本,解放劳动力。
用户1386409
2022/08/31
3360
接球小游戏玩腻了?换个姿势让PaddleX帮你吊打游戏系统
这个小游戏你是不是自打会走路开始就在玩了呢?但是不是也还是会输给游戏系统得不到高分?不用怀疑自己手残,让我们走进AI的世界,尝试使用飞桨PaddleX开发一款“莫得感情”的自动接球程序,实现一顿让朋友们目瞪口呆、让游戏系统"自我怀疑"的操作吧!
用户1386409
2020/08/20
5190
接球小游戏玩腻了?换个姿势让PaddleX帮你吊打游戏系统
多种方式实现安全帽佩戴检测
在安全帽和工作人员的身份标识上安装 RFID 标签,通过 RFID 读写器检测标签信号来判断安全帽的佩戴状态。
音视频牛哥
2024/10/19
2060
多种方式实现安全帽佩戴检测
​小度巡检机器人上岗记:飞桨PaddleX助力实现室内精准巡检
百度大厦的一名安保人员手机里弹出这样一条信息。发信息的是他的“新同事”,一位近期上岗百度深研大厦的智能助手——小度巡检机器人。
用户1386409
2020/06/16
6840
​小度巡检机器人上岗记:飞桨PaddleX助力实现室内精准巡检
昇腾AI行业案例(二):基于 AI 图像处理的安全帽检测
欢迎学习《昇腾行业应用案例》的 “基于 AI 图像处理的安全帽检测” 实验。在本实验中,你将深入了解如何运用计算机视觉(CV)领域的 AI 模型,搭建一个高效精准的安全帽检测系统,并利用开源数据集对模型效果加以验证。为此,我们将使用昇腾的AI硬件以及CANN等软件产品。
AI布道Mr.Jin_2025
2025/01/16
600
一站式完成车牌识别任务:从模型优化到端侧部署
交通领域的应用智能化不断往纵深发展,其中最为成熟的车牌识别早已融入人们的日常生活之中,在高速公路电子收费系统、停车场等场景中随处可见。一些企业在具体业务中倾向采用开源方案降低研发成本,但现有公开的方案中少有完成端到端的车牌应用范例。
用户1386409
2022/08/31
8760
手把手教学电瓶车进电梯检测、多类别车辆追踪、异常行为检测产业级应用
近日,媒体接连报道电动车起火爆炸造成严重人员伤亡的新闻,针对该问题,社区物业明令禁止电瓶车入户,但是依然有人忽视这个问题严重性。目前,AI应用已经可以有效地预防此类问题,在进入电梯的时候就可以采取报警和有效措施。AI在安防领域的应用非常广泛,在各类公共场合迅速识别人员摔倒、打架、争吵,以及车辆行驶异常等行为,可以及时通知安保人员进行干预。
用户1386409
2022/03/31
4610
手把手教学电瓶车进电梯检测、多类别车辆追踪、异常行为检测产业级应用
《智能安全帽检测:科技赋能安全管理的深度解析》
在众多高风险的工作场景中,如建筑施工、工业生产、矿山开采等,安全帽的正确佩戴对于保障工作人员的生命安全至关重要。然而,传统的人工监督方式在面对大规模、复杂环境的作业现场时,往往显得力不从心。随着人工智能技术的蓬勃发展,智能安全帽检测算法服务应运而生,为安全管理带来了全新的解决方案。今天,我们就来深入了解一下这背后的神奇技术以及相关的算法服务网站平台是如何发挥作用的。
用户11376901
2024/11/23
1220
如何低成本高效监控电瓶车违规停放行为?看看飞桨开发者怎么做
电动车以其环保节能、小巧便捷、经济实用等特性,市场需求逐年递增,但同时它带来的充电起火、电池爆炸等安全问题也时有发生。大部分小区物业都禁止电瓶车进电梯等违规停放行为,然而实际执行中往往难以监管。人工智能是否能帮助居民减少电瓶车违规停放带来的安全隐患呢?我们尝试用人工智能进行电瓶车检测,来减少人工检测的成本和压力。
用户1386409
2022/03/31
3180
如何低成本高效监控电瓶车违规停放行为?看看飞桨开发者怎么做
TSINGSEE青犀视频AI分析/边缘计算/AI算法·安全帽检测算法详解
安全帽检测算法主要是对人员安全和事故预防的需要。在许多工业领域和施工现场,佩戴安全帽是一种重要的安全措施,可以减少头部受伤的风险。然而,由于工地人员数量众多且繁忙,人工监控难以有效覆盖所有区域,因此旭帆科技推出了安全帽佩戴检测算法,助力施工现场安全,减少事故发生。
TSINGSEE青犀视频
2023/09/08
2210
两次霸榜GitHub!训练无需写代码,部署覆盖多平台
短短几个月的时间里,两次登上 GitHub Daily 全球趋势榜,迅速获得 1.4k Star,宁德时代、广东电网电科院、机科院等等巨头都在用的 AI 算法开发神器到底是什么!!!
CV君
2021/02/05
8670
两次霸榜GitHub!训练无需写代码,部署覆盖多平台
推荐阅读
智慧城市产业应用实践,高精度火灾烟雾检测方案详解
3670
公共场所人流数据统计如何实现?解决重识别、漏检等检测难题
1.2K0
智慧零售产业应用实战,30分钟上手的高精度商品识别
8010
人工智能如何助力市政垃圾清洁?垃圾检测全流程方案详解
9070
PaddleX全流程开发工具公开邀测啦!
5830
如何轻松上手3D检测应用实战?飞桨产业实践范例全流程详解
3790
基于OpenVINO部署的工业缺陷检测产业实践范例实战
7780
又一神器面世:百度重磅发布「全流程开发套件」!
6060
工业党福利:使用PaddleX高效实现指针型表计读取系列文章(1)
9760
人员出入管理效率如何提升?超轻量图像分类方案详解
3360
接球小游戏玩腻了?换个姿势让PaddleX帮你吊打游戏系统
5190
多种方式实现安全帽佩戴检测
2060
​小度巡检机器人上岗记:飞桨PaddleX助力实现室内精准巡检
6840
昇腾AI行业案例(二):基于 AI 图像处理的安全帽检测
600
一站式完成车牌识别任务:从模型优化到端侧部署
8760
手把手教学电瓶车进电梯检测、多类别车辆追踪、异常行为检测产业级应用
4610
《智能安全帽检测:科技赋能安全管理的深度解析》
1220
如何低成本高效监控电瓶车违规停放行为?看看飞桨开发者怎么做
3180
TSINGSEE青犀视频AI分析/边缘计算/AI算法·安全帽检测算法详解
2210
两次霸榜GitHub!训练无需写代码,部署覆盖多平台
8670
相关推荐
智慧城市产业应用实践,高精度火灾烟雾检测方案详解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档