当前位置: 首页 > news >正文

浙江网站建设公司推荐小程序店铺怎么开

浙江网站建设公司推荐,小程序店铺怎么开,用phpmysql做图书网站,苏州市住建局官网本节重点介绍 : consul 安装consul go代码注册服务#xff0c;注销服务#xff0c;获取服务node_exporter改造为consul服务发现在数量比较大时#xff0c;在注册服务的时候#xff0c;关闭check#xff0c;可以降低consul的压力 consul 安装 准备工作 # 下载consul wge…本节重点介绍 : consul 安装consul go代码注册服务注销服务获取服务node_exporter改造为consul服务发现在数量比较大时在注册服务的时候关闭check可以降低consul的压力 consul 安装 准备工作 # 下载consul wget -O /opt/tgzs/consul_1.9.4_linux_amd64.zip https://releases.hashicorp.com/consul/1.9.4/consul_1.9.4_linux_amd64.zip cd /opt/tgzs/ unzip consul_1.9.4_linux_amd64.zip/bin/cp -f consul /usr/bin/ 启动单机版consul # mkdir /opt/app/consul# 准备配置文件 cat EOF /opt/app/consul/single_server.json {datacenter: dc1,node_name: consul-svr-01,server: true,bootstrap_expect: 1,data_dir: /opt/app/consul/,log_level: INFO,log_file: /opt/logs/,ui: true,bind_addr: 0.0.0.0,client_addr: 0.0.0.0,retry_interval: 10s,raft_protocol: 3,enable_debug: false,rejoin_after_leave: true,enable_syslog: false } EOF# 多个ip地址时将bind_addr 改为一个内网的ip# 写入service文件 cat EOF /etc/systemd/system/consul.service [Unit] Descriptionconsul server Wantsnetwork-online.target Afternetwork-online.target[Service] ExecStart/usr/bin/consul agent -config-file/opt/app/consul/single_server.json StandardOutputsyslog StandardErrorsyslog SyslogIdentifierconsul [Install] WantedBydefault.target EOF# 启动服务 systemctl daemon-reload systemctl start consul systemctl status consul 验证访问 http://localhost:8500/ node_exporter的job改造为consul的服务发现 编写go代码注册服务到consul 初始化consul 使用包 github.com/hashicorp/consul/api import (fmtconsul github.com/hashicorp/consul/apilog )type client struct {consul *consul.Client }func NewConsulClient(addr string) (*client, error) {config : consul.DefaultConfig()config.Address addrc, err : consul.NewClient(config)if err ! nil {return nil, err}return client{consul: c}, nil } 编写注册服务方法 需要指定参数为 服务的名称实例地址实例端口实例探活path实例标签map check.HTTP 代表使用http类型的check调用 consul.Agent().ServiceRegister(reg)注册服务 // 注册服务 func (c *client) ServiceRegister(srvName, srvHost string, srvPort int, healthyCheckPath string, metaMap map[string]string) error {reg : new(consul.AgentServiceRegistration)reg.Name srvNamethisId : fmt.Sprintf(%s_%d, srvHost, srvPort)reg.ID thisIdreg.Port srvPortreg.Address srvHostreg.Meta metaMaplog.Printf(ServiceRegisterStart :%v, thisId)//增加checkcheck : new(consul.AgentServiceCheck)check.HTTP fmt.Sprintf(http://%s:%d%s, reg.Address, reg.Port, healthyCheckPath)//设置超时 5s。check.Timeout 2scheck.DeregisterCriticalServiceAfter 5s//设置间隔 5s。check.Interval 5s//注册check服务。reg.Check checkreturn c.consul.Agent().ServiceRegister(reg) } 编写获取服务信息的方法 使用consul.Health().Service获取 passing的服务 // Service return a service func (c *client) GetService(service, tag string) ([]*consul.ServiceEntry, error) {passingOnly : truess, _, err : c.consul.Health().Service(service, tag, passingOnly, nil)if len(ss) 0 err nil {return nil, fmt.Errorf(service ( %s ) was not found, service)}return ss, err } 编写根据服务id注销服务的方法 // 根据server id注销服务 func (c *client) DeRegister(id string) error {return c.consul.Agent().ServiceDeregister(id) }注册node_exporter服务 func main() {c, err : NewConsulClient(http://172.20.70.205:8500)if err ! nil {log.Printf(NewConsulClient.err:%v, err)return}nodes : []string{172.20.70.205,172.20.70.215,}nodeExporterSrv : node_exporterfor _, h : range nodes {m : map[string]string{region: bj, cloud: huawei}err c.ServiceRegister(nodeExporterSrv, h, 9100, /, m)if err ! nil {log.Printf([ServiceRegister.err][srv:%v][host:%v][err:%v], nodeExporterSrv, h, err)} else {log.Printf([ServiceRegister.success][srv:%v][host:%v], nodeExporterSrv, h)}}ss, err : c.GetService(nodeExporterSrv, )for _, s : range ss {log.Printf([c.GetService][service_id:%v][err:%v], s.Service.ID, err)//c.DeRegister(s.Service.ID)}} 完整的go代码 package mainimport (fmtconsul github.com/hashicorp/consul/apilog )type client struct {consul *consul.Client }func NewConsulClient(addr string) (*client, error) {config : consul.DefaultConfig()config.Address addrc, err : consul.NewClient(config)if err ! nil {return nil, err}return client{consul: c}, nil }// 注册服务 func (c *client) ServiceRegister(srvName, srvHost string, srvPort int, healthyCheckPath string, metaMap map[string]string) error {reg : new(consul.AgentServiceRegistration)reg.Name srvNamethisId : fmt.Sprintf(%s_%d, srvHost, srvPort)reg.ID thisIdreg.Port srvPortreg.Address srvHostreg.Meta metaMaplog.Printf(ServiceRegisterStart :%v, thisId)//增加checkcheck : new(consul.AgentServiceCheck)check.HTTP fmt.Sprintf(http://%s:%d%s, reg.Address, reg.Port, healthyCheckPath)//设置超时 5s。check.Timeout 2scheck.DeregisterCriticalServiceAfter 5s//设置间隔 5s。check.Interval 5s//注册check服务。reg.Check checkreturn c.consul.Agent().ServiceRegister(reg) }// 根据server id注销服务 func (c *client) DeRegister(id string) error {return c.consul.Agent().ServiceDeregister(id) }// Service return a service func (c *client) GetService(service, tag string) ([]*consul.ServiceEntry, error) {passingOnly : truess, _, err : c.consul.Health().Service(service, tag, passingOnly, nil)if len(ss) 0 err nil {return nil, fmt.Errorf(service ( %s ) was not found, service)}return ss, err }func main() {c, err : NewConsulClient(http://172.20.70.205:8500)if err ! nil {log.Printf(NewConsulClient.err:%v, err)return}nodes : []string{172.20.70.205,172.20.70.215,}nodeExporterSrv : node_exporterfor _, h : range nodes {m : map[string]string{region: bj, cloud: huawei}err c.ServiceRegister(nodeExporterSrv, h, 9100, /, m)if err ! nil {log.Printf([ServiceRegister.err][srv:%v][host:%v][err:%v], nodeExporterSrv, h, err)} else {log.Printf([ServiceRegister.success][srv:%v][host:%v], nodeExporterSrv, h)}}ss, err : c.GetService(nodeExporterSrv, )for _, s : range ss {log.Printf([c.GetService][service_id:%v][err:%v], s.Service.ID, err)//c.DeRegister(s.Service.ID)}} 注册服务的结果 注册service 注销服务 配置 node_exporter的job为consul服务发现模式 配置文档配置文件 - job_name: node_exporterhonor_timestamps: truescrape_interval: 15sscrape_timeout: 10smetrics_path: /metricsscheme: httpconsul_sd_configs:- server: 172.20.70.205:8500services:- node_exporterrelabel_configs:- source_labels: [__meta_consul_dc]target_label: dc- separator: ;regex: __meta_consul_service_metadata_(.)replacement: $1action: labelmaptarget页面和service discovery 页面观察服务发现结果 本节重点总结 : consul 安装consul go代码注册服务注销服务获取服务node_exporter改造为consul服务发现在数量比较大时在注册服务的时候关闭check可以降低consul的压力
http://www.w-s-a.com/news/479642/

相关文章:

  • 漯河网站超市建设软件开发的五个阶段
  • 制作深圳网站建设阿里OSS做网站图库费用
  • 网页设计与网站建设 入门必练宜都网站seo
  • 网站设计沟通阆中网站网站建设
  • 缩短网址做钓鱼网站如何确保网站安全
  • 网店网站开发怎样用ps做企业网站
  • 南京门户网站建设做网站一般注册哪几类商标
  • 企业咨询管理服务wordpress seo tdk
  • 做网站前期创建文件夹flash 开发的网站
  • 天津网站制作培训搭建网站的工具
  • 江西网站建设价格低网上卖产品怎么推广
  • 做aelogo动效有什么好的网站建立网站站点的步骤
  • 无锡网站推广公司排名网站赚钱平台
  • 网站物理结构利用公共dns做网站解析
  • 苍南做网站微信建设网站哪家好
  • 华中农业大学基因编辑在线设计网站网站蓝色配色
  • 洛阳建设工程信息网站怎么在服务器建立网站
  • 陕西省建设部官方网站微信小程序怎么关闭这个功能
  • 唐河县住房和城乡建设局网站公司需要做网站
  • 体现网站特色免费个人域名网站
  • ps国外教程网站seo优化是什么职业
  • 什么是网站单页适合女生做的网站
  • 环境文化建设方案网站企业英语网站
  • 南通网站关键词推广响应式网站建设流程
  • 湖北响应式网站建设企业做漫画网站 漫画哪找
  • 东莞建设通网站中小企业网站的建设实践报告
  • 合肥网站建设电话wordpress 点击量
  • 公司网站制作注意什么wordpress如何邀请人看
  • 做渲染的网站太原做网站兼职
  • 网站开发实施方案怎么设置wordpress底栏文字