summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--edgemesh/pkg/resolver/resolver.go3
-rw-r--r--edgemesh/pkg/server/dns.go27
-rw-r--r--edgemesh/pkg/server/ip.go26
-rw-r--r--edgemesh/pkg/server/server.go12
-rw-r--r--edgemesh/pkg/server/tcp.go14
5 files changed, 48 insertions, 34 deletions
diff --git a/edgemesh/pkg/resolver/resolver.go b/edgemesh/pkg/resolver/resolver.go
index daf14b958..0f38ae932 100644
--- a/edgemesh/pkg/resolver/resolver.go
+++ b/edgemesh/pkg/resolver/resolver.go
@@ -7,6 +7,7 @@ import (
"net/http"
"strings"
+ mconfig "github.com/kubeedge/beehive/pkg/common/config"
"github.com/go-chassis/go-chassis/core/invocation"
"github.com/kubeedge/beehive/pkg/common/log"
)
@@ -58,7 +59,7 @@ func (resolver *MyResolver) Resolve(data chan []byte, stop chan interface{}, inv
i.SourceServiceID = ""
i.Protocol = "rest"
i.Args = req
- i.Strategy = "Random"
+ i.Strategy = mconfig.CONFIG.GetConfigurationByKey("mesh.loadbalance.strategy-name").(string)
i.Reply = &http.Response{}
invCallback("http", *i)
}
diff --git a/edgemesh/pkg/server/dns.go b/edgemesh/pkg/server/dns.go
index cba3a6971..d419c5f6b 100644
--- a/edgemesh/pkg/server/dns.go
+++ b/edgemesh/pkg/server/dns.go
@@ -18,7 +18,6 @@ import (
)
var (
- inter = "docker0"
dnsQr = uint16(0x8000)
oneByteSize = uint16(1)
twoByteSize = uint16(2)
@@ -74,37 +73,13 @@ func DnsStart() {
startDnsServer()
}
-// getDnsServer returns the specific interface ip of version 4
-func getDnsServer() (net.IP, error) {
- for {
- ifaces, err := net.InterfaceByName(inter)
- if err != nil {
- log.LOGGER.Warnf("get interface error : %s", err)
- time.Sleep(time.Second * 3)
- continue
- }
-
- addrs, _ := ifaces.Addrs()
-
- for _, addr := range addrs {
- if ip, inet, _ := net.ParseCIDR(addr.String()); len(inet.Mask) == 4 {
- return ip, nil
- }
- }
-
- log.LOGGER.Warnf("the interface " + inter + " has not config ip of version 4")
- time.Sleep(time.Second * 3)
- }
-
-}
-
// startDnsServer start the DNS Server
func startDnsServer() {
// init meta client
c := context.GetContext(context.MsgCtxTypeChannel)
metaClient = client.New(c)
//get DNS server name
- lip, err := getDnsServer()
+ lip, err := getIP()
if err != nil {
log.LOGGER.Errorf("Dns server Start error : %s", err)
return
diff --git a/edgemesh/pkg/server/ip.go b/edgemesh/pkg/server/ip.go
new file mode 100644
index 000000000..457af1667
--- /dev/null
+++ b/edgemesh/pkg/server/ip.go
@@ -0,0 +1,26 @@
+package server
+
+import (
+ "net"
+ "time"
+
+ "github.com/kubeedge/beehive/pkg/common/log"
+)
+const inter = "docker0"
+// getIP returns the specific interface ip of version 4
+func getIP() (net.IP, error) {
+ for {
+ ifaces, err := net.InterfaceByName(inter)
+ if err != nil {
+ return nil, err
+ }
+ addrs, _ := ifaces.Addrs()
+ for _, addr := range addrs {
+ if ip, inet, _ := net.ParseCIDR(addr.String()); len(inet.Mask) == 4 {
+ return ip, nil
+ }
+ }
+ log.LOGGER.Warnf("the interface %s have not config ip of version 4",inter)
+ time.Sleep(time.Second * 3)
+ }
+}
diff --git a/edgemesh/pkg/server/server.go b/edgemesh/pkg/server/server.go
index 04a5a722a..6994be339 100644
--- a/edgemesh/pkg/server/server.go
+++ b/edgemesh/pkg/server/server.go
@@ -8,6 +8,7 @@ import (
"github.com/go-chassis/go-chassis/core/registry"
_ "github.com/kubeedge/kubeedge/edgemesh/pkg/panel"
edgeregistry "github.com/kubeedge/kubeedge/edgemesh/pkg/registry"
+ mconfig "github.com/kubeedge/beehive/pkg/common/config"
"github.com/kubeedge/kubeedge/edgemesh/pkg/resolver"
)
@@ -35,8 +36,15 @@ func Start() {
control.Init(opts)
opt := registry.Options{}
registry.DefaultServiceDiscoveryService = edgeregistry.NewServiceDiscovery(opt)
- loadbalancer.InstallStrategy(loadbalancer.StrategyRandom, func() loadbalancer.Strategy {
- return &loadbalancer.RandomStrategy{}
+ myStrategy := mconfig.CONFIG.GetConfigurationByKey("mesh.loadbalance.strategy-name").(string)
+ loadbalancer.InstallStrategy(myStrategy, func() loadbalancer.Strategy {
+ switch myStrategy{
+ case "RoundRobin":
+ return &loadbalancer.RoundRobinStrategy{}
+ case "Random":
+ return &loadbalancer.RandomStrategy{}
+ default: return &loadbalancer.RoundRobinStrategy{}
+ }
})
//Start dns server
go DnsStart()
diff --git a/edgemesh/pkg/server/tcp.go b/edgemesh/pkg/server/tcp.go
index 697ea40fa..a190858e6 100644
--- a/edgemesh/pkg/server/tcp.go
+++ b/edgemesh/pkg/server/tcp.go
@@ -15,12 +15,16 @@ import (
)
func StartTCP() {
- server := config.GetString("server", "0.0.0.0")
- port := config.GetString("port", "8080")
-
- log.LOGGER.Infof("start listening at %s:%s", server, port)
+ server, err:= getIP()
+ if err != nil {
+ log.LOGGER.Errorf("TCP server start error : %s", err)
+ return
+ }
- listener, err := net.Listen("tcp", server+":"+port)
+ serverIP := server.String()
+ port := config.GetString("port", "8080")
+ log.LOGGER.Infof("start listening at %s:%s", serverIP, port)
+ listener, err := net.Listen("tcp", serverIP+":"+port)
if err != nil {
log.LOGGER.Errorf("failed to start TCP server with error:%v\n", err)
return