spring boot nacos注册微服务示例demo_亲测成功

spring boot nacos注册微服务示例demo_亲测成功

先安装好Nacos

Nacos安装使用

创建Maven项目

结构如图

在这里插入图片描述

例如项目名为: test-demo
下面有个子模块: test-demo-data-process

父模块pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>test-demo</artifactId>
        <groupId>com.beyond.demo</groupId>
        <version>0.1</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <description>demo数据服务</description>
    <artifactId>test-demo-data-process</artifactId>
    <packaging>pom</packaging>

    <modules>
        <module>test-demo-data-process-server</module>
    </modules>
</project>
子模块pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>test-demo-data-process</artifactId>
        <groupId>com.beyond.demo</groupId>
        <version>0.1</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>test-demo-data-process-server</artifactId>

    <dependencies>
        <!-- javax.servlet -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
        </dependency>

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <!-- 增加feign-httpclient,使用连接池机制 -->
        <dependency>
            <groupId>io.github.openfeign</groupId>
            <artifactId>feign-httpclient</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>


    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <finalName>${project.artifactId}-${project.version}</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>
application.yml
server:
  port: 8080

management:
  endpoints:
    web:
      exposure:
        include: "*"
        exclude:
  endpoint:
    health:
      show-details: always

banner.txt

springboot项目启动时,控制台会打印自带的banner

  
//                          _ooOoo_                               //  
//                         o8888888o                              //  
//                         88" . "88                              //  
//                         (| ^_^ |)                              //  
//                         O\  =  /O                              //  
//                      ____/`---'\____                           //  
//                    .'  \\|     |//  `.                         //  
//                   /  \\|||  :  |||//  \                        //  
//                  /  _||||| -:- |||||-  \                       //  
//                  |   | \\\  -  /// |   |                       //  
//                  | \_|  ''\---/''  |   |                       //  
//                  \  .-\__  `-`  ___/-. /                       //  
//                ___`. .'  /--.--\  `. . ___                     //  
//              ."" '<  `.___\_<|>_/___.'  >'"".                  //  
//            | | :  `- \`.;`\ _ /`;.`/ - ` : | |                 //  
//            \  \ `-.   \_ __\ /__ _/   .-` /  /                 //  
//      ========`-.____`-.___\_____/___.-`____.-'========         //  
//                           `=---='                              //  
//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        //  
//            佛祖保佑       永不宕机      永无BUG                  //
 
Application Version: ${application.version}${application.formatted-version}
Spring Boot Version: ${spring-boot.version}${spring-boot.formatted-version}
bootstrap.yaml

注意: namespace和nacos上对应

在这里插入图片描述

spring:
  # 选择加载不同环境的配置文件
  profiles:
    active: dev
  application:
    name: test-demo-data-process-server

---
#开发环境配置
spring:
  profiles: dev,local
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.3.1:8848
        namespace: xxxx-8ef1-4393-xxxx-xxxxx
      config:
        server-addr: 192.168.3.1:8848
        namespace: xxxx-8ef1-4393-xxxx-xxxxx
        active-profiles: ${spring.profiles.active:dev}
        fileExtension: yml
        shared-dataids: cloud.yml,rabbitmq-mqtt.yml
        refreshable-dataids: cloud.yml,rabbitmq-mqtt.yml

---
##公司环境配置
spring:
  profiles: comp
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.1.18:8848
        namespace: xxxxx-8ef1-xxxx-b28f-xxxxx
      config:
        server-addr: 192.168.1.18:8848
        namespace: xxxxx-8ef1-xxxx-b28f-xxxxx
        active-profiles: ${spring.profiles.active:comp}
        fileExtension: yml
        shared-dataids: cloud.yml,rabbitmq-mqtt.yml
        refreshable-dataids: cloud.yml,rabbitmq-mqtt.yml

---
##生产环境配置
spring:
  profiles: prod
  cloud:
    nacos:
      discovery:
        server-addr: ${NACOS_HOST:10.10.70.89}:${NACOS_PORT:8848}
        namespace: ${NAMESPACE:559d7cb0-xxx-xxx-xxxx-41843b0106ae}
      config:
        server-addr: ${NACOS_HOST:10.10.70.89}:${NACOS_PORT:8848}
        namespace: ${NAMESPACE:559d7cb0-xxx-xxx-xxxx-41843b0106ae}
        active-profiles: ${spring.profiles.active:prod}
        fileExtension: yml
        shared-dataids: cloud.yml,rabbitmq-mqtt.yml
        refreshable-dataids: cloud.yml,rabbitmq-mqtt.yml



logback-spring.xml

logback日志配置

<?xml version="1.0" encoding="UTF-8" ?>
<configuration scan="false" scanPeriod="60000" debug="false">
	<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
	<springProperty scope="context" name="springAppName" source="spring.application.name"/>
    <property name="GLOBAL-LOG-LEVEL" value="ERROR" /> <!-- TRACE < DEBUG < INFO < WARN < ERROR -->
    <property name="GLOBAL-LOG-PATH" value="log/" />  <!-- 日志输出路径变量 -->
    <property name="GLOBAL-LOG-MODULE" value="${springAppName}" /> <!-- 日志文件命名变量,一般以模块名命名 -->

<!-- You can override this to have a custom pattern -->
<property name="CONSOLE_LOG_PATTERN"
	value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <!-- Minimum logging level to be presented in the console logs-->
            <level>DEBUG</level>
        </filter>
        <encoder>
	        <pattern>${CONSOLE_LOG_PATTERN}</pattern>
	        <charset>utf8</charset>
        </encoder>
    </appender>

    <appender name="ROLLING-FILE-1" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${GLOBAL-LOG-PATH}/${GLOBAL-LOG-MODULE}-%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
	   <pattern>${CONSOLE_LOG_PATTERN}</pattern>
	   <charset>utf8</charset>

        </encoder>
    </appender>

    <!-- 异步输出 -->
    <appender name ="ASYNC" class= "ch.qos.logback.classic.AsyncAppender">
        <!-- 不丢失日志.默认的,如果队列的90%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
        <discardingThreshold>10</discardingThreshold>
        <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
        <queueSize>256</queueSize>
        <!-- 添加附加的appender,最多只能添加一个 -->
        <appender-ref ref ="ROLLING-FILE-1"/>
    </appender>

    <!-- Appender to log to file in a JSON format
    <appender name="logstash" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_FILE}.json</file>;
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${GLOBAL-LOG-PATH}/${GLOBAL-LOG-MODULE}.json.%d{yyyy-MM-dd}.gz</fileNamePattern>
            <maxHistory>7</maxHistory>
        </rollingPolicy>

          <encoder>
       <pattern>${CONSOLE_LOG_PATTERN}</pattern>
       <charset>utf8</charset>

        </encoder>
        <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
            <providers>
                <timestamp>
                    <timeZone>UTC</timeZone>
                </timestamp>
                <pattern>
                    <pattern>
                        {
                        "severity": "%level",
                        "service": "${springAppName:-}",
                        "trace": "%X{X-B3-TraceId:-}",
                        "span": "%X{X-B3-SpanId:-}",
                        "parent": "%X{X-B3-ParentSpanId:-}",
                        "exportable": "%X{X-Span-Export:-}",
                        "pid": "${PID:-}",
                        "thread": "%thread",
                        "class": "%logger{40}",
                        "rest": "%message"
                        }
                    </pattern>
                </pattern>
            </providers>
        </encoder>
    </appender>
    -->
    <!-- 日志级别最好每个logger节点都设置,不要引用传递root节点的日志级别,有利于性能 -->
    <springProfile name="dev,comp">
        <logger name="com.beyond" level="INFO"/>
        <logger name="com.alibaba.nacos" level="ERROR"/>
        <root level="${GLOBAL-LOG-LEVEL}">
            <appender-ref ref="STDOUT"/>
            <appender-ref ref="ASYNC"/>
        </root>
    </springProfile>

    <springProfile name="test,prod">
        <logger name="com.beyond" level="ERROR"/>
        <logger name="com.alibaba.nacos" level="ERROR"/>
        <root level="${GLOBAL-LOG-LEVEL}">
            <appender-ref ref="STDOUT"/>
            <appender-ref ref="ASYNC"/>
        </root>
    </springProfile>
</configuration>

DataApp.java

启动类

package com.beyond.demo.data;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.ApplicationPidFileWriter;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;


@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@EnableScheduling
public class DataApp
{
	public static void main(String[] args)
	{
		final SpringApplication sa = new SpringApplication(DataApp.class);
		sa.addListeners(new ApplicationPidFileWriter("test-data-demo-server.pid"));
		sa.run(args);
	}
}

其他包的代码不做详细介绍了,都是业务逻辑相关代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/463376.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Flink SQL】Flink SQL 基础概念(三):SQL 动态表 连续查询

《Flink SQL 基础概念》系列&#xff0c;共包含以下 5 篇文章&#xff1a; Flink SQL 基础概念&#xff08;一&#xff09;&#xff1a;SQL & Table 运行环境、基本概念及常用 APIFlink SQL 基础概念&#xff08;二&#xff09;&#xff1a;数据类型Flink SQL 基础概念&am…

数据有噪声?滤它!Python数据滤波详解

文章目录 维纳滤波巴特沃斯滤波器中值滤波排序滤波 Python科学计算&#xff1a;数组&#x1f4af;数据生成&#x1f4af;数据交互&#x1f4af;微积分&#x1f4af;插值&#x1f4af;拟合&#x1f4af;FFT&#x1f4af;卷积 维纳滤波 信号经过系统之后&#xff0c;相当于进行…

简单的arduino实验理解串口通信(uart为例)独立硬件的信息交互

前言 接触过单片机的人都知道串口通信&#xff0c;可以通过另一个短文了解,其中入门的应该就是串口通信了。UART全拼的个人理解为通用的异步接收和发送。常见两根短线作为通信线&#xff0c;一般使用TXD和RXD标记。对于两块通信的芯片来说&#xff0c;接收和发送是相对的&…

Stargo 管理部署 Starrocks 集群

配置主机间 ssh 互信 ssh-copy-id hadoop02 ssh-copy-id hadoop03配置系统参数 ############################ Swap检查 ############################ echo 0 | sudo tee /proc/sys/vm/swappiness########################### 内核参数检查 ########################## echo…

PHP+golang开源办公系统CRM管理系统

基于ThinkPHP6 Layui MySQL的企业办公系统。集成系统设置、人事管理、消息管理、审批管理、日常办公、客户管理、合同管理、项目管理、财务管理、电销接口集成、在线签章等模块。系统简约&#xff0c;易于功能扩展&#xff0c;方便二次开发。 服务器运行环境要求 PHP > 7.…

2.3 物理层设备

2.3 物理层设备 &#xff08;一&#xff09;中继器 产生原因 由于存在损耗&#xff0c;在线路上传输的信号功率会逐渐衰减&#xff0c;衰减到一定程度时将造成信号失真&#xff0c;因此会导致接收错误。 中继器的功能 对信号进行再生和还原&#xff0c;对衰减的信号进行放大…

ArkTs的资源Resource类型怎么转为string

使用ResourceManager同步转换 请参看&#xff1a;ResourceManager.getStringSync9 例子&#xff1a; try { let testStr: string this.context.resourceManager.getStringSync($r(app.string.test).id); } catch (error) { console.error(getStringSync failed, error code…

GEE数据集——全球( 30 弧秒)尺度地下水模型GLOBGM v1.0数据集

全球尺度地下水模型GLOBGM v1.0 GLOBGM v1.0 数据集是全球地下水建模的一个重要里程碑&#xff0c;提供了 30 弧秒 PCR-GLOBWB-MODFLOW 模型的并行实施。该数据集由 Jarno Verkaik 等人开发&#xff0c;以赤道约 1 公里的空间分辨率全面展示了全球地下水动态。该数据集利用两个…

VUE-组件间通信(一)props

props 1、单向绑定 props是父组件给子组件传输数据 当父组件的属性变化时&#xff0c;将传导给子组件&#xff0c;但是反过来不会 2、使用示例 子组件&#xff08;类似于方法&#xff09; <template> <div><h2>姓名:{{ name }}</h2><h2>性别:{{…

前端之CSS 创建css--行内引入、内联样式、外联样式

创建css有三种创建样式&#xff0c;行内引入、内联引入、外联引入。 行内引入 在行内标签引入 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>行内样式</title> </head> <body>…

Ubuntu 虚拟机安装

最小化安装后常用工具 sudo apt-get install vim# ifconfig apt install net-tools # nload apt install nload # 很多都要用到 apt install build-essential # 开发相关 apt install gcc gapt install iproute2 ntpdate tcpdump telnet traceroute \ nfs-kernel-server nfs…

mac打开exe文件的三大方法 mac怎么运行exe文件 mac打开exe游戏 macbookpro打开exe

exe文件是Windows系统的可执行文件&#xff0c;虽然Mac系统上无法直接打开exe文件&#xff0c;但是你可以在Mac电脑上安装双系统或者虚拟机来实现mac电脑上运行exe文件。除了这两种方法之外&#xff0c;你还可以在Mac电脑上使用类虚拟机软件打开exe文件&#xff0c;这三种方法各…

Java学习笔记------常用API(五)

爬虫 从网站中获取 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.util.regex.Matcher; import java.util.reg…

动态规划(算法竞赛、蓝桥杯)--单调队列优化烽火传递

1、B站视频链接&#xff1a;E43【模板】单调队列优化DP 烽火传递_哔哩哔哩_bilibili 题目链接&#xff1a;https://loj.ac/p/10180 #include <bits/stdc.h> using namespace std; const int N2e510; int n,m,w[N],f[N],q[N];int main(){cin>>n>>m;for(int …

生产线上的“变形金刚”:码垛机器人的崛起

在工业的森林里&#xff0c;有一种神奇的生物——码垛机器人。它们以精确无误的动作和不知疲倦的身躯&#xff0c;在生产线上演绎着一幕幕现代版的“变形金刚”。这些机械奇才不仅解放了人类的双手&#xff0c;更是以它们的“魔法”提升了生产效率&#xff0c;降低了成本&#…

[SAP ABAP] 使用事务码SU3改变日期与时间格式

当我们执行上述代码&#xff0c;返回结果如下所示 我们发现获取当前系统日期返回的日期格式并不是MM/DD/YYYY&#xff0c;而是YYYY.MM.DD的日期格式&#xff0c;那么我们怎样才能使得MM/DD/YYYY这种日期格式生效&#xff1f; 我们可以使用事务码SU3来改变日期或时间格式 配置完…

【强化学习笔记一】初识强化学习(定义、应用、分类、性能指标、小车上山案例及代码)

文章目录 第1章 初识强化学习1.1 强化学习及其关键元素1.2 强化学习的应用1.3 强化学习的分类1.3.1 按任务分类1.3.2 按算法分类 1.4 强化学习算法的性能指标1.5 案例&#xff1a;基于Gym库的智能体/环境接口1.5.1 安装Gym库1.5.2 使用Gym库1.5.3 小车上山1.5.3.1 有限动作空间…

软件实例,餐厅酒水寄存管理系统软件,酒水寄存登记表软件操作教程

软件实例&#xff0c;餐厅酒水寄存管理系统软件&#xff0c;酒水寄存登记表软件操作教程 一、前言 以下软件操作以 佳易王酒水寄存管理系统软件V16.0为例说明 件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 1、酒水寄存管理系统软件可以管理多个品类的物…

2024最新手赚手机软件APP下载排行网站源码及应用商店源码

这是一款简洁蓝色的手机软件下载应用排行、平台和最新发布网站&#xff0c;采用响应式织梦模板。主要包括主页、APP列表页、APP详情介绍页、新闻资讯列表、新闻详情页、关于我们等模块页面。 源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/88898956 更…