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