英文:
How to register my go lang microservice in Spring Eureka Service Discovery
问题
我想在Eureka服务发现中注册我的外部Go语言微服务,但我不知道我在哪里犯了一个错误。
这是我尝试的代码:
Go语言配置文件
package configuration
import (
"net"
"github.com/ArthurHlt/go-eureka-client/eureka"
)
func EurekClientConfig() {
// 获取本机的IP地址
addrs, err := net.InterfaceAddrs()
if err != nil {
panic(err)
}
var ipAddress string
for _, addr := range addrs {
if ipnet, ok := addr.(*net.IPNet); ok && !ipnet.IP.IsLoopback() && ipnet.IP.To4() != nil {
ipAddress = ipnet.IP.String()
break
}
}
// 使用Eureka服务器URL初始化Eureka客户端
client := eureka.NewClient([]string{"http://localhost:8761/eureka/"})
// 创建Go语言服务的实例信息
// eureka.NewInstanceInfo(appName, ipAddr, hostname, port, securePort, ttl, secure)
instance := eureka.NewInstanceInfo(
"localhost",
"RESTAURANT-SERVICE",
ipAddress,
8085,
30,
false,
)
// 将实例注册到Eureka服务器
client.RegisterInstance("RESTAURANT-SERVICE", instance)
client.SendHeartbeat(instance.App, instance.HostName)
}
Go语言可以成功编译这个文件,没有任何错误,但在Eureka服务器中,注册失败。
Eureka服务器的application.properties文件
server.port=8761
spring.application.name=eureka-server
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.server.wait-time-in-ms-when-sync-empty=0
eureka.server.enable-self-preservation=false
eureka.instance.prefer-ip-address=true
eureka.instance.lease-renewal-interval-in-seconds=30
eureka.instance.lease-expiration-duration-in-seconds=90
spring.cloud.config.import-check.enabled=false
我只想在Eureka服务器上注册我的Go微服务。
英文:
I want to register my external go lang micro-service in eureka service discovery, but I dunno where I am doing a mistake.
This is what I tried from my end:
Go lang config file
package configuration
import (
"net"
(https://i.stack.imgur.com/LdCPT.png)
"github.com/ArthurHlt/go-eureka-client/eureka"
)
func EurekClientConfig() {
// Get the IP address of the local machine
addrs, err := net.InterfaceAddrs()
if err != nil {
panic(err)
}
var ipAddress string
for _, addr := range addrs {
if ipnet, ok := addr.(*net.IPNet); ok && !ipnet.IP.IsLoopback() && ipnet.IP.To4() != nil {
ipAddress = ipnet.IP.String()
break
}
}
// Initialize the Eureka client with server URL
client := eureka.NewClient([]string{"http://localhost:8761/eureka/"})
// Create the instance information for the GoLang service
// eureka.NewInstanceInfo(appName, ipAddr, hostname, port, securePort, ttl, secure)
instance := eureka.NewInstanceInfo(
"localhost",
"RESTAURANT-SERVICE",
ipAddress,
8085,
30,
false,
)
// Register the instance with the Eureka server
client.RegisterInstance("RESTAURANT-SERVICE", instance)
client.SendHeartbeat(instance.App, instance.HostName)
}
Go compiles this file perfectly without any error but in eureka server, this failed to registered.
Eureka server application.properties file
server.port=8761
spring.application.name=eureka-server
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.server.wait-time-in-ms-when-sync-empty=0
eureka.server.enable-self-preservation=false
eureka.instance.prefer-ip-address=true
eureka.instance.lease-renewal-interval-in-seconds=30
eureka.instance.lease-expiration-duration-in-seconds=90
spring.cloud.config.import-check.enabled=false
I just want to register my go microservice on eureka server.
专注分享java语言的经验与见解,让所有开发者获益!
评论