fix: rename health.proto (#2527)

* rename health.proto

* add test for healthServer

* add comment

* add test

* modify comment

* resolve conflicts

* resolve conflicts

* update proto
diff --git a/protocol/triple/health/health_test.go b/protocol/triple/health/health_test.go
new file mode 100644
index 0000000..d9ee7a4
--- /dev/null
+++ b/protocol/triple/health/health_test.go
@@ -0,0 +1,85 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package health
+
+import (
+	"sync"
+	"testing"
+	"time"
+)
+import (
+	"github.com/stretchr/testify/assert"
+
+	// If there is a conflict between the healthCheck of Dubbo and the healthCheck of gRPC, an error will occur.
+	_ "google.golang.org/grpc/health/grpc_health_v1"
+)
+
+import (
+	healthpb "dubbo.apache.org/dubbo-go/v3/protocol/triple/health/triple_health"
+)
+
+const testService = "testService"
+
+func TestSetServingStatus(t *testing.T) {
+	s := NewServer()
+	s.SetServingStatus(testService, healthpb.HealthCheckResponse_SERVING)
+
+	status := s.statusMap[testService]
+	assert.Equal(t, healthpb.HealthCheckResponse_SERVING, status, "status for %s is %v, want %v", testService, status, healthpb.HealthCheckResponse_SERVING)
+
+	s.SetServingStatus(testService, healthpb.HealthCheckResponse_NOT_SERVING)
+	status = s.statusMap[testService]
+	assert.Equal(t, healthpb.HealthCheckResponse_NOT_SERVING, status, "status for %s is %v, want %v", testService, status, healthpb.HealthCheckResponse_NOT_SERVING)
+}
+
+func TestShutdown(t *testing.T) {
+	s := NewServer()
+	s.SetServingStatus(testService, healthpb.HealthCheckResponse_SERVING)
+	var wg sync.WaitGroup
+	wg.Add(2)
+	// Run SetServingStatus and Shutdown in parallel.
+	go func() {
+		for i := 0; i < 1000; i++ {
+			s.SetServingStatus(testService, healthpb.HealthCheckResponse_SERVING)
+			time.Sleep(time.Microsecond)
+		}
+		wg.Done()
+	}()
+	go func() {
+		time.Sleep(300 * time.Microsecond)
+		s.Shutdown()
+		wg.Done()
+	}()
+	wg.Wait()
+
+	s.mu.Lock()
+	status := s.statusMap[testService]
+	s.mu.Unlock()
+	assert.Equal(t, healthpb.HealthCheckResponse_NOT_SERVING, status, "status for %s is %v, want %v", testService, status, healthpb.HealthCheckResponse_NOT_SERVING)
+}
+
+func TestResume(t *testing.T) {
+	s := NewServer()
+	s.SetServingStatus(testService, healthpb.HealthCheckResponse_SERVING)
+	s.Shutdown()
+	status := s.statusMap[testService]
+	assert.Equal(t, healthpb.HealthCheckResponse_NOT_SERVING, status, "status for %s is %v, want %v", testService, status, healthpb.HealthCheckResponse_NOT_SERVING)
+	s.Resume()
+	status = s.statusMap[testService]
+	assert.Equal(t, healthpb.HealthCheckResponse_SERVING, status, "status for %s is %v, want %v", testService, status, healthpb.HealthCheckResponse_SERVING)
+}
diff --git a/protocol/triple/health/triple_health/health.pb.go b/protocol/triple/health/triple_health/health.pb.go
index a80d667..24ed18c 100644
--- a/protocol/triple/health/triple_health/health.pb.go
+++ b/protocol/triple/health/triple_health/health.pb.go
@@ -148,7 +148,7 @@
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	Status HealthCheckResponse_ServingStatus `protobuf:"varint,1,opt,name=status,proto3,enum=grpc.health.v1.HealthCheckResponse_ServingStatus" json:"status,omitempty"`
+	Status HealthCheckResponse_ServingStatus `protobuf:"varint,1,opt,name=status,proto3,enum=dubbo.health.v1.HealthCheckResponse_ServingStatus" json:"status,omitempty"`
 }
 
 func (x *HealthCheckResponse) Reset() {
@@ -193,38 +193,39 @@
 var File_health_proto protoreflect.FileDescriptor
 
 var file_health_proto_rawDesc = []byte{
-	0x0a, 0x0c, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e,
-	0x67, 0x72, 0x70, 0x63, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x22, 0x2e,
-	0x0a, 0x12, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71,
-	0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18,
-	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, 0xb1,
-	0x01, 0x0a, 0x13, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65,
-	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
-	0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x68, 0x65,
-	0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68,
-	0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x72, 0x76,
-	0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
-	0x73, 0x22, 0x4f, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74,
-	0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12,
-	0x0b, 0x0a, 0x07, 0x53, 0x45, 0x52, 0x56, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b,
-	0x4e, 0x4f, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x13, 0x0a,
-	0x0f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e,
-	0x10, 0x03, 0x32, 0xae, 0x01, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, 0x50, 0x0a,
-	0x05, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x22, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x68, 0x65,
-	0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68,
-	0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x72, 0x70,
-	0x63, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x61, 0x6c,
-	0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
-	0x52, 0x0a, 0x05, 0x57, 0x61, 0x74, 0x63, 0x68, 0x12, 0x22, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e,
+	0x0a, 0x0c, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f,
+	0x64, 0x75, 0x62, 0x62, 0x6f, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x22,
+	0x2e, 0x0a, 0x12, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65,
+	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
+	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x22,
+	0xb2, 0x01, 0x0a, 0x13, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52,
+	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
+	0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x64, 0x75, 0x62, 0x62, 0x6f, 0x2e,
 	0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68,
-	0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67,
-	0x72, 0x70, 0x63, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65,
-	0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
-	0x65, 0x30, 0x01, 0x42, 0x43, 0x5a, 0x41, 0x64, 0x75, 0x62, 0x62, 0x6f, 0x2e, 0x61, 0x70, 0x61,
-	0x63, 0x68, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x64, 0x75, 0x62, 0x62, 0x6f, 0x2d, 0x67, 0x6f,
-	0x2f, 0x76, 0x33, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x74, 0x72, 0x69,
-	0x70, 0x6c, 0x65, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x74, 0x72, 0x69, 0x70, 0x6c,
-	0x65, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x65,
+	0x72, 0x76, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61,
+	0x74, 0x75, 0x73, 0x22, 0x4f, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 0x53, 0x74,
+	0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10,
+	0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x45, 0x52, 0x56, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0f,
+	0x0a, 0x0b, 0x4e, 0x4f, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12,
+	0x13, 0x0a, 0x0f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f,
+	0x57, 0x4e, 0x10, 0x03, 0x32, 0xb2, 0x01, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12,
+	0x52, 0x0a, 0x05, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x23, 0x2e, 0x64, 0x75, 0x62, 0x62, 0x6f,
+	0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74,
+	0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e,
+	0x64, 0x75, 0x62, 0x62, 0x6f, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e,
+	0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f,
+	0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x05, 0x57, 0x61, 0x74, 0x63, 0x68, 0x12, 0x23, 0x2e, 0x64,
+	0x75, 0x62, 0x62, 0x6f, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x48,
+	0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+	0x74, 0x1a, 0x24, 0x2e, 0x64, 0x75, 0x62, 0x62, 0x6f, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68,
+	0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52,
+	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0x43, 0x5a, 0x41, 0x64, 0x75, 0x62,
+	0x62, 0x6f, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x64, 0x75,
+	0x62, 0x62, 0x6f, 0x2d, 0x67, 0x6f, 0x2f, 0x76, 0x33, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63,
+	0x6f, 0x6c, 0x2f, 0x74, 0x72, 0x69, 0x70, 0x6c, 0x65, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68,
+	0x2f, 0x74, 0x72, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x62, 0x06,
+	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
@@ -242,16 +243,16 @@
 var file_health_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
 var file_health_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
 var file_health_proto_goTypes = []interface{}{
-	(HealthCheckResponse_ServingStatus)(0), // 0: grpc.health.v1.HealthCheckResponse.ServingStatus
-	(*HealthCheckRequest)(nil),             // 1: grpc.health.v1.HealthCheckRequest
-	(*HealthCheckResponse)(nil),            // 2: grpc.health.v1.HealthCheckResponse
+	(HealthCheckResponse_ServingStatus)(0), // 0: dubbo.health.v1.HealthCheckResponse.ServingStatus
+	(*HealthCheckRequest)(nil),             // 1: dubbo.health.v1.HealthCheckRequest
+	(*HealthCheckResponse)(nil),            // 2: dubbo.health.v1.HealthCheckResponse
 }
 var file_health_proto_depIdxs = []int32{
-	0, // 0: grpc.health.v1.HealthCheckResponse.status:type_name -> grpc.health.v1.HealthCheckResponse.ServingStatus
-	1, // 1: grpc.health.v1.Health.Check:input_type -> grpc.health.v1.HealthCheckRequest
-	1, // 2: grpc.health.v1.Health.Watch:input_type -> grpc.health.v1.HealthCheckRequest
-	2, // 3: grpc.health.v1.Health.Check:output_type -> grpc.health.v1.HealthCheckResponse
-	2, // 4: grpc.health.v1.Health.Watch:output_type -> grpc.health.v1.HealthCheckResponse
+	0, // 0: dubbo.health.v1.HealthCheckResponse.status:type_name -> dubbo.health.v1.HealthCheckResponse.ServingStatus
+	1, // 1: dubbo.health.v1.Health.Check:input_type -> dubbo.health.v1.HealthCheckRequest
+	1, // 2: dubbo.health.v1.Health.Watch:input_type -> dubbo.health.v1.HealthCheckRequest
+	2, // 3: dubbo.health.v1.Health.Check:output_type -> dubbo.health.v1.HealthCheckResponse
+	2, // 4: dubbo.health.v1.Health.Watch:output_type -> dubbo.health.v1.HealthCheckResponse
 	3, // [3:5] is the sub-list for method output_type
 	1, // [1:3] is the sub-list for method input_type
 	1, // [1:1] is the sub-list for extension type_name
diff --git a/protocol/triple/health/triple_health/health.proto b/protocol/triple/health/triple_health/health.proto
index e3ef667..22b8b42 100644
--- a/protocol/triple/health/triple_health/health.proto
+++ b/protocol/triple/health/triple_health/health.proto
@@ -20,7 +20,7 @@
 
 syntax = "proto3";
 
-package grpc.health.v1;
+package dubbo.health.v1;
 
 option go_package = "dubbo.apache.org/dubbo-go/v3/protocol/triple/health/triple_health";
 
diff --git a/protocol/triple/health/triple_health/health.triple.go b/protocol/triple/health/triple_health/health.triple.go
index 908737f..25a2264 100644
--- a/protocol/triple/health/triple_health/health.triple.go
+++ b/protocol/triple/health/triple_health/health.triple.go
@@ -17,7 +17,7 @@
 
 // Code generated by protoc-gen-triple. DO NOT EDIT.
 //
-// Source: protocol\triple\health\triple_health\health.proto
+// Source: health.proto
 package triple_health
 
 import (
@@ -26,7 +26,9 @@
 )
 
 import (
+	"dubbo.apache.org/dubbo-go/v3"
 	"dubbo.apache.org/dubbo-go/v3/client"
+	"dubbo.apache.org/dubbo-go/v3/common"
 	"dubbo.apache.org/dubbo-go/v3/common/constant"
 	"dubbo.apache.org/dubbo-go/v3/protocol/triple/triple_protocol"
 	"dubbo.apache.org/dubbo-go/v3/server"
@@ -41,7 +43,7 @@
 
 const (
 	// HealthName is the fully-qualified name of the Health service.
-	HealthName = "grpc.health.v1.Health"
+	HealthName = "dubbo.health.v1.Health"
 )
 
 // These constants are the fully-qualified names of the RPCs defined in this package. They're
@@ -53,9 +55,9 @@
 // period.
 const (
 	// HealthCheckProcedure is the fully-qualified name of the Health's Check RPC.
-	HealthCheckProcedure = "/grpc.health.v1.Health/Check"
+	HealthCheckProcedure = "/dubbo.health.v1.Health/Check"
 	// HealthWatchProcedure is the fully-qualified name of the Health's Watch RPC.
-	HealthWatchProcedure = "/grpc.health.v1.Health/Watch"
+	HealthWatchProcedure = "/dubbo.health.v1.Health/Watch"
 )
 
 var (
@@ -66,24 +68,27 @@
 	_ Health_WatchServer = (*HealthWatchServer)(nil)
 )
 
-// Health is a client for the grpc.health.v1.Health service.
+// Health is a client for the dubbo.health.v1.Health service.
 type Health interface {
 	Check(ctx context.Context, req *HealthCheckRequest, opts ...client.CallOption) (*HealthCheckResponse, error)
 	Watch(ctx context.Context, req *HealthCheckRequest, opts ...client.CallOption) (Health_WatchClient, error)
 }
 
-// NewHealth constructs a client for the grpc.health.v1.Health service.
+// NewHealth constructs a client for the dubbo.health.v1.Health service.
 func NewHealth(cli *client.Client, opts ...client.ReferenceOption) (Health, error) {
-	conn, err := cli.Dial("grpc.health.v1.Health", opts...)
+	conn, err := cli.DialWithInfo("dubbo.health.v1.Health", &Health_ClientInfo, opts...)
 	if err != nil {
 		return nil, err
 	}
-
 	return &HealthImpl{
 		conn: conn,
 	}, nil
 }
 
+func SetConsumerService(srv common.RPCService) {
+	dubbo.SetConsumerServiceWithInfo(srv, &Health_ClientInfo)
+}
+
 // HealthImpl implements Health.
 type HealthImpl struct {
 	conn *client.Connection
@@ -138,15 +143,15 @@
 }
 
 var Health_ClientInfo = client.ClientInfo{
-	InterfaceName: "grpc.health.v1.Health",
+	InterfaceName: "dubbo.health.v1.Health",
 	MethodNames:   []string{"Check", "Watch"},
 	ConnectionInjectFunc: func(dubboCliRaw interface{}, conn *client.Connection) {
-		dubboCli := dubboCliRaw.(HealthImpl)
+		dubboCli := dubboCliRaw.(*HealthImpl)
 		dubboCli.conn = conn
 	},
 }
 
-// HealthHandler is an implementation of the grpc.health.v1.Health service.
+// HealthHandler is an implementation of the dubbo.health.v1.Health service.
 type HealthHandler interface {
 	Check(context.Context, *HealthCheckRequest) (*HealthCheckResponse, error)
 	Watch(context.Context, *HealthCheckRequest, Health_WatchServer) error
@@ -156,6 +161,10 @@
 	return srv.Register(hdlr, &Health_ServiceInfo, opts...)
 }
 
+func SetProviderService(srv common.RPCService) {
+	dubbo.SetProviderServiceWithInfo(srv, &Health_ServiceInfo)
+}
+
 type Health_WatchServer interface {
 	Send(*HealthCheckResponse) error
 	ResponseHeader() http.Header
@@ -172,7 +181,7 @@
 }
 
 var Health_ServiceInfo = server.ServiceInfo{
-	InterfaceName: "grpc.health.v1.Health",
+	InterfaceName: "dubbo.health.v1.Health",
 	ServiceType:   (*HealthHandler)(nil),
 	Methods: []server.MethodInfo{
 		{
diff --git a/protocol/triple/internal/client/health_client/main.go b/protocol/triple/internal/client/health_client/main.go
index 7fc0dc2..0b36574 100644
--- a/protocol/triple/internal/client/health_client/main.go
+++ b/protocol/triple/internal/client/health_client/main.go
@@ -43,11 +43,11 @@
 		panic(err)
 	}
 
-	check, err := svc.Check(context.Background(), &health.HealthCheckRequest{Service: "grpc.health.v1.Health"})
+	check, err := svc.Check(context.Background(), &health.HealthCheckRequest{Service: "dubbo.health.v1.Health"})
 	if err != nil {
 		logger.Error(err)
 	} else {
-		logger.Info("grpc.health.v1.Health's health", check.String())
+		logger.Info("dubbo.health.v1.Health's health", check.String())
 	}
 	check, err = svc.Check(context.Background(), &health.HealthCheckRequest{Service: "greet.GreetService"})
 	if err != nil {
@@ -61,7 +61,7 @@
 		logger.Error(err)
 	} else {
 		if watch.Recv() {
-			logger.Info("grpc.health.v1.Health's health", watch.Msg().String())
+			logger.Info("dubbo.health.v1.Health's health", watch.Msg().String())
 		}
 	}
 	watch, err = svc.Watch(context.Background(), &health.HealthCheckRequest{Service: "greet.GreetService"})