How to register my go lang microservice in Spring Eureka Service Discovery

huangapple 未分类评论151阅读模式
英文:

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.

How to register my go lang microservice in Spring Eureka Service Discovery

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.

huangapple
  • 本文由 发表于 2023年2月19日 12:40:25
  • 转载请务必保留本文链接:https://java.coder-hub.com/75498042.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定