6.使用Go向Consul注册的基本方法
编写注册函数
package utils
import (
consulapi "github.com/hashicorp/consul/api"
"log"
)
func RegService() {
config := consulapi.DefaultConfig()
config.Address = "192.168.3.14:8500"
reg := consulapi.AgentServiceRegistration{}
reg.Name = "userservice" //注册service的名字
reg.Address = "192.168.3.14" //注册service的ip
reg.Port = 8080//注册service的端口
reg.Tags = []string{"primary"}
check := consulapi.AgentServiceCheck{} //创建consul的检查器
check.Interval="5s" //设置consul心跳检查时间间隔
check.HTTP = "http://192.168.3.14:8080/health" //设置检查使用的url
reg.Check = &check
client, err := consulapi.NewClient(config) //创建客户端
if err != nil {
log.Fatal(err)
}
err = client.Agent().ServiceRegister(®)
if err != nil {
log.Fatal(err)
}
}
调用注册函数
package main
import (
httptransport "github.com/go-kit/kit/transport/http"
mymux "github.com/gorilla/mux"
"gomicro/Services"
"gomicro/utils"
"net/http"
)
func main() {
user := Services.UserService{}
endp := Services.GenUserEnPoint(user)
serverHandler := httptransport.NewServer(endp, Services.DecodeUserRequest, Services.EncodeUserResponse) //使用go kit创建server传入我们之前定义的两个解析函数
r := mymux.NewRouter()
//r.Handle(`/user/{uid:\d+}`, serverHandler) //这种写法支持多种请求方式
r.Methods("GET", "DELETE").Path(`/user/{uid:\d+}`).Handler(serverHandler) //这种写法仅支持Get,限定只能Get请求
r.Methods("GET").Path("/health").HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
writer.Header().Set("Content-type", "application/json")
writer.Write([]byte(`{"status":"ok"}`))
})
utils.RegService() //调用注册服务程序
http.ListenAndServe(":8080", r)
}
6.使用Go向Consul注册的基本方法的更多相关文章
- 微服务(入门二):netcore通过consul注册服务
基础准备 1.创建asp.net core Web 应用程序选择Api 2.appsettings.json 配置consul服务器地址,以及本机ip和端口号信息 { "Logging&qu ...
- 1、微服务--为什么有consul,consul注册,心跳检测,服务发现
一.为什么有consul? 在微服务,每1个服务都是集群式的,订单服务在10台服务器上都有,那么用户的请求到达,获取哪台服务器的订单服务呢?如果10台中的有的订单服务挂了怎么办?10台服务器扛不住了, ...
- 微服务系列之 Consul 注册中心
原文链接:https://mrhelloworld.com/posts/spring/spring-cloud/consul-service-registry/ Netflix Eureka 2.X ...
- Spring Cloud 系列之 Consul 注册中心(二)
本篇文章为系列文章,未读第一集的同学请猛戳这里:Spring Cloud 系列之 Consul 注册中心(一) 本篇文章讲解 Consul 集群环境的搭建. Consul 集群 上图是一个简单的 Co ...
- Spring Cloud 系列之 Consul 注册中心(一)
Netflix Eureka 2.X https://github.com/Netflix/eureka/wiki 官方宣告停止开发,但其实对国内的用户影响甚小,一方面国内大都使用的是 Eureka ...
- 【SpringCloud】consul注册中心注册的服务为内网(局域网)IP
一.前因 最近在做公司的一个微服务项目,技术架构为spring cloud + consul + SSM. 当我写完一个功能要在本地测试时,发现服务运行成功,但是前后端联调报500错误. 当时的第一个 ...
- .Net Core with 微服务 - Consul 注册中心
上一次我们介绍了 Ocelot 网关的基本用法.这次我们开始介绍服务注册发现组件 Consul 的简单使用方法. 服务注册发现 首先先让我们回顾下服务注册发现的概念. 在实施微服务之后,我们的调用都变 ...
- 微服务架构 | 3.4 HashiCorp Consul 注册中心
目录 前言 1. Consul 基础知识 1.1 Consul 是什么 1.2 Consul 的特点 2. 安装并运行 Consul 服务器 2.1 下载 Consul 2.2 运行 Consul 服 ...
- 【转】第7篇:Xilium CefGlue 关于 CLR Object 与 JS 交互类库封装报告:全自动注册与反射方法分析
作者: 牛A与牛C之间 时间: 2013-12-12 分类: 技术文章 | 2条评论 | 编辑文章 主页 » 技术文章 » 第7篇:Xilium CefGlue 关于 CLR Object 与 JS ...
随机推荐
- google 镜像
google 镜像 http://scholar.hedasudi.com/ http://ac.scmor.com/
- HTTP之网关的分类
网关的分类 ========================摘自<HTTP权威指南>============================= 1. HTTP/*:服务器端Web网关 请 ...
- 排列组合(包括n中随机抽取m个)
有些情况我们需要获取一个数组中的所有排列组合情况,或者获取一部分数据进行随机组合,这个在python中有一个模块可以实现.具体情况如下 :::::::::::::::::::::::::::::::: ...
- SQL -------- 简单的增删改查
sql 结构化查询语言,一种ansi 的标准计算机语言,为了访问数据库 可以做什么:可以对数据库 和表进行创建于删除, 对表里面的数据进行增删改查. 也可以创建存储过程和视图,对表设置权限 RDBM ...
- Linux(01):linux的起源、应用场景和学习目标
- eclipse使用SVN来检索项目
file——import——搜索框输入SVN——点击SVN检索项目 ——输入想要检索的地址
- C# 读取带有命名空间的xml
XML文本: <?xml version="1.0" encoding="utf-8"?> <ECG xmlns:xsi="http ...
- 获取PostgreSQL数据库中得JSON值
在PostgreSQL数据库中有一列为JSON,要获取JSON中得数据可以用下面sql: select orderno as OrderNo ,amount as Amount ,ordertime ...
- python类的构造函数
最新的 Python3.7 中(2018.07.13),对类的构造函数进行了精简. from dataclasses import dataclass @dataclass class A: x:in ...
- iis url 重写
1.选择网站-找到有测url 重写 :2:选中它,在右上角有一个打开功能,点击打开 3.依然在右上角,点击添加规则 4:选择第一个,空白规则 名称随便输入,我们通常有这样一个需求,就是.aspx 后缀 ...