grpc(4):使用 golang 调用consul api 接口,注册user-tomcat服务
2023-09-11 14:21:06 时间
首先要在服务器安装一个consul服务:
http://blog.csdn.net/freewebsys/article/details/56296013
然后下载go的客户端。
go get github.com/hashicorp/consul
然后就可以使用 consul api服务了。
package src import ( "fmt" consulapi "github.com/hashicorp/consul/api" "log" "testing" const Id = "1234567890" func TestRegister(t *testing.T) { fmt.Println("test begin .") config := consulapi.DefaultConfig() //config.Address = "localhost" fmt.Println("defautl config : ", config) client, err := consulapi.NewClient(config) if err != nil { log.Fatal("consul client error : ", err) //创建一个新服务。 registration := new(consulapi.AgentServiceRegistration) registration.ID = Id registration.Name = "user-tomcat" registration.Port = 8080 registration.Tags = []string{"user-tomcat"} registration.Address = "127.0.0.1" //增加check。 check := new(consulapi.AgentServiceCheck) check.HTTP = fmt.Sprintf("http://%s:%d%s", registration.Address, registration.Port, "/check") //设置超时 5s。 check.Timeout = "5s" //设置间隔 5s。 check.Interval = "5s" //注册check服务。 registration.Check = check log.Println("get check.HTTP:",check) err = client.Agent().ServiceRegister(registration)代码很简单,创建了一个consul的服务,说明tomcat的服务端口,ip。并且声明了一个check方法用来检查服务是否可用。
可以通过ui界面观察服务注册情况:
3,使用dig命令检查服务
服务可用。
check失败服务不可用。
; DiG 9.9.4-RedHat-9.9.4-38.el7_3.2 @10.0.2.15 -p 8600 user-tomcat.service.consul SRV ; (1 server found) ;; global options: +cmd ;; Got answer: ;; - HEADER - opcode: QUERY, status: NOERROR, id: 17543 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;user-tomcat.service.consul. IN SRV ;; ANSWER SECTION: user-tomcat.service.consul. 0 IN SRV 1 1 8080 consul-dev.node.dc1.consul. ;; ADDITIONAL SECTION: consul-dev.node.dc1.consul. 0 IN A 127.0.0.1 ;; Query time: 0 msec ;; SERVER: 10.0.2.15#8600(10.0.2.15) ;; WHEN: Sun Mar 05 03:06:06 EST 2017 ;; MSG SIZE rcvd: 100
consul-dev.node.dc1.consul. 0 IN A 127.0.0.1
可以查询到一个域名节点。
本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/60466381
未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys
总体上感觉 consul 还是非常简单实用的。
在做 Server-side Discovery 的时候是非常的方便的。
可以降低client的代码逻辑。
【.NET6】gRPC服务端和客户端开发案例,以及minimal API服务、gRPC服务和传统webapi服务的访问效率大对决 前言:随着.Net6的发布,Minimal API成了当下受人追捧的角儿。而这之前,程序之间通信效率的王者也许可以算得上是gRPC了。那么以下咱们先通过开发一个gRPC服务的教程,然后顺势而为,再接着比拼一下minimal api服务和gRPC服务在通信上的效率。
知识分享之Golang——Gin学习之开放所有接口的OPTION方法 知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。 知识分享系列目前包含Java、Golang、Linux、Docker等等。
golang从context源码领悟接口的设计 注:写帖子时go的版本是1.12.7go语言中实现一个interface不用像其他语言一样需要显示的声明实现接口。go语言只要实现了某interface的方法就可以做类型转换。go语言没有继承的概念,只有Embedding的概念。
相关文章
- tomcat启动报:权限不足(用户权限已经设置完,而且设置成DBA了)
- 98分布式电商项目 - Tomcat性能优化(使用线程池)
- Eclipse配置TomCat发布Web工程,缺少lib文件夹和jar包
- omcat 7 的domain域名配置,Tomcat 修改JSESSIONID
- 注册tomcat为服务
- TOMCAT:使用tomcat发布项目如何查看项目的错误日志
- Linux中Tomcat自启动(作为系统服务)
- java.lang.UnsatisfiedLinkError: C:apache-tomcat-8.0.21bintcnative-1.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
- java tomcat-catalina CorsFilter使用,apache tomcat-catalina CorsFilter使用
- Tomcat总体架构(Tomcat源码解析系列二)---经典文章
- ELK收集tomcat访问日志并存取mysql数据库案例
- tomcat并发
- Tomcat 的类加载机制
- 性能测试时,tomcat配置优化
- jetty的工作原理以及与tomcat 的比较
- tomcat的JK和JK2
- Eclipse安装配置tomcat