diff --git a/README.md b/README.md
index c94b3fb..29fd2eb 100644
--- a/README.md
+++ b/README.md
@@ -26,6 +26,19 @@ java -jar demo.jar --server.port=8081
The default username is `admin`, and password is: `123456`.
+## Service Registry Center
+
+This project can register itself to the service registry center.
+
+### Nacos
+
+Register to [Nacos](https://github.com/alibaba/nacos):
+
+```shell
+java -jar demo.jar --nacos.server.enabled=true \
+ --nacos.server-addr=192.168.10.52:8448
+```
+
## OpenAPI definition
You can visit it via: http://localhost:8080/v3/api-docs
diff --git a/pom.xml b/pom.xml
index 0e66390..384491e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.2.0
+ 3.4.4
io.github.devops-ws
@@ -17,6 +17,9 @@
17
1.0.0
+ 0.3.0-RC
+ 2024.0.1
+ 3.4.4
@@ -35,6 +38,39 @@
spring-boot-starter-graphql
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-netflix-eureka-client
+ 3.1.8
+
+
+
+ com.alibaba.boot
+ nacos-config-spring-boot-starter
+ ${nacos.version}
+
+
+ com.alibaba.boot
+ nacos-config-spring-boot-actuator
+ ${nacos.version}
+
+
+
+ com.alibaba.boot
+ nacos-discovery-spring-boot-starter
+ ${nacos.version}
+
+
+ com.alibaba.boot
+ nacos-discovery-spring-boot-actuator
+ ${nacos.version}
+
+
org.springdoc
springdoc-openapi-starter-webmvc-ui
@@ -47,10 +83,6 @@
1.1.0
-
- org.springframework.boot
- spring-boot-starter-actuator
-
io.micrometer
micrometer-registry-prometheus
@@ -65,6 +97,22 @@
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+
+ org.projectlombok
+ lombok
+
+
+ org.springframework.boot
+ spring-boot-configuration-processor
+
+
+
+
org.springframework.boot
spring-boot-maven-plugin
@@ -75,7 +123,7 @@
${trpc-maven-plugin.version}
- validate
+ validate
gen-code
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 62d3b6d..908820c 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,12 +1,57 @@
# https://spring.io/guides/gs/graphql-server/
spring:
+ application:
+ name: learn-springboot
graphql:
graphiql:
enabled: true
+ cloud:
+ discovery:
+ enabled: true
+ loadbalancer:
+ hint-header-name: ${DEV_MODE:dev}
+ zone: ${DEV_MODE:dev}
+ nacos:
+ discovery:
+ metadata:
+ ephemeral: false
server:
port: 8080
+nacos:
+ discovery:
+ auto-register: ${nacos.server.enabled:false}
+ register:
+ enabled: ${nacos.server.enabled:false}
+ server-addr: ${nacos.server-addr:127.0.0.1:8848}
+ client:
+ grpc:
+ enable: false
+
+eureka:
+ instance:
+ prefer-ip-address: true
+ ip-address: ${server.ip:127.0.0.1}
+ non-secure-port: ${server.port:8080}
+ hostname: ${server.ip:127.0.0.1}
+ instance-id: ${server.ip:127.0.0.1}:${spring.application.name}:${server.port:8080}
+ metadata-map:
+ hint: ${DEV_MODE:dev}
+ zone: ${DEV_MODE:dev}
+ health-check-url-path: /actuator/health
+ status-page-url-path: /actuator/info
+ home-page-url-path: /actuator/info
+
+ client:
+ enabled: ${EUREKA_ENABLED:false}
+ fetch-registry: true
+ register-with-eureka: true
+ healthcheck:
+ enabled: true
+ service-url:
+ defaultZone: ${EUREKA_URL:http://127.0.0.1:17001/eureka}
+
trpc:
server:
app: TestApp # App name
@@ -17,7 +62,7 @@ trpc:
impls: # Service implement classes
- io.github.devopsws.demo.service.TRPCService
ip: 0.0.0.0 # Listen ip
- port: 9090 # Listen port
+ port: ${trpc.server.port:9090} # Listen port
network: tcp # Network type, tcp or udp
# https://spring.academy/guides/spring-spring-prometheus
@@ -29,3 +74,10 @@ management:
metrics:
tags:
application: ${spring.application.name}
+
+logging:
+ level:
+ root: info
+ org.springframework.web: info
+ org.springframework.cloud: info
+ org.springframework.cloud.netflix.eureka: debug