当前位置: 首页 > article >正文

在idea使用nacos微服务

一.安装nacos

、依赖记得别放<dependencyManagement></dependencyManagement>这个标签去了

1.在linux拉取镜像安装

docker pull nacos/nacos-server:1.3.1

2.创建挂载目录 

mkdir -p /usr/local/docker/nacos/init.d /usr/local/docker/nacos/logs

3.安装nacos

docker run -d \
-p 8848:8848 \
-e MODE=standalone \
-e PREFER_HOST_NAME=hostname \
-v /usr/local/docker/nacos/init.d:/home/nacos/init.d \
-v /usr/local/docker/nacos/logs:/home/nacos/logs \
--name nacos nacos/nacos-server:1.3.1

看看有没有启动nacos

 docker ps

二.注册中心

1.idea创建maven项目

 

 

2.加依赖

在pom.xml文件里加入依赖,等待的时间有点长,耐心等待。

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.7.RELEASE</version>
    </parent>

    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.6.13</spring-boot.version>
        <jwt.version>0.7.0</jwt.version>
        <fastjson.version>1.2.60</fastjson.version>
        <spring-cloud-alibaba.version>2.0.3.RELEASE</spring-cloud-alibaba.version>
        <spring-cloud.version>Finchley.SR2</spring-cloud.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <!--json-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>${fastjson.version}</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </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>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <classifier>exec</classifier>
                </configuration>
            </plugin>
        </plugins>
    </build>

3.编写bootstrap.yml配置文件

在resources下创建bootstrap.yml配置文件

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.130.39:8848

4.编写application.properties配置文件

在resources下创建application.properties配置文件

 

5.创建启动类并启动

注意我这里的启动类放com.jr下面了,而不是com下面,因为nacos云默认有一个com包,如果我们只是写com,它无法识别我们的项目,只要我们把启动类放在com.jr或者是com.其它的地方就能识别了。还有启动前一定要保证自己的nacos在运行状态。

package com.jr;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringBootMain {
    public static void main(String[] args) {
        SpringApplication.run(SpringBootMain.class,args);
    }
}

6.登录nacos网页

随便找个浏览器然后在上面输入下面的地址

 用户和密码都是nacos

登录成功后的页面:

 然后我们点击左边的服务管理里的服务列表,就可以看到我们刚刚在配置文件创建的名字服务了,表示注册成功,然后我们点击它右边的详情。

 三.配置中心

1.创建并修改application.yml

server:
  port: 99

common:
 name: zhangsan
  age: 20

 

2.创建控制器类

package com.jr.controller;

import lombok.Setter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/user")
@Setter
public class UserController {

    @Value("${common.name}")
    private String name;

    @Value("${common.age}")
    private Integer age;

    @GetMapping
    public String test(){
        return name+"----"+age;
    }

}

3.启动项目

在自己浏览器上输入以下地址

4.在pom.xml再次添加依赖 

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

5.创建命名空间 

我们再回到nacos网页,去创建命名空间。

6.配置中心添加配置文件

 

再创建一个

点返回,回到首页。

 

7.修改bootstrap.yml配置文件  

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.130.39:8848
      config:
        server-addr: 192.168.130.39:8848
        file-extension: yaml
        namespace: 8920c585-274d-477f-b55f-9324be8da9bd
        shared-configs:
          - data-id: dierge.yaml
            group: DEFAULT_GROUP
          - data-id: woshidierge.yaml
            group: DEFAULT_GROUP
    inetutils:
      preferred-networks: 192.168.116

下面几个地方我简单说下,

server-addr是你在注册操作时候的ip和端口

file-extension是你在配置中心添加配置文件时候的类型.

namespace能在你的配置管理的配置列表上面找到:

shared-configs是你两个配置的id和group,也能在上面的图片找到

 preferred-networks能在服务管理的服务列表找到,记得你的把上面的换为public才行,然后点进服务的详情里面,下面就是preferred-networks

8.启动项目

在浏览器中输入如下地址。

 到这就结束了,下面是我的idea项目的结构,大家也可以做参考,大家加油。


http://www.kler.cn/news/328882.html

相关文章:

  • LeetCode[中等] 45. 跳跃游戏 II
  • 排序算法的理解
  • 【ChatGPT】Python 实现计算两线段的变换矩阵
  • 解决Windows远程桌面 “为安全考虑,已锁定该用户账户,原因是登录尝试或密码更改尝试过多,请稍后片刻再重试,或与系统管理员或技术支持联系“问题
  • 师生健康监测系统:SpringBoot技术实践
  • Master PDF Editor 下载及详细安装教程
  • Codeforces Round 976 (Div. 2 ABCDE题)视频讲解
  • Django一分钟:使用prefetch_related避免陷入大量的查询中导致严重的性能问题
  • WebGL深究:动画与交互 —— 赋予虚拟世界生命与灵魂
  • YOLOv11尝鲜测试五分钟极简配置
  • SpringBoot整合JPA详解
  • 工控系统组成与安全需求分析
  • leetcode每日一题day21(24.10.1)——最低票价
  • Street View Synthesis with Gaussian Splatting and Diffusion Prior 学习笔记
  • 【Java SE 题库】移除元素(暴力解法)--力扣
  • 室内定位论文整理-20240925期
  • 计算机毕业设计党建学习网站查看发布党建评论留言搜索部署安装/springboot/javaWEB/J2EE/MYSQL数据库/vue前后分离小程序
  • 【SpringCloud】多机部署, 负载均衡-LoadBalance
  • 使用 Seaborn 热图的 5 种方法(Python 教程)
  • Vue+Flask
  • Pencils Protocol 全面推动市场,生态通证 DAPP 将持续通缩
  • 【数据结构初阶】排序算法(下)冒泡排序与归并排序
  • Jupyter Notebook 产生 jupyter_notebook_config.py 配置文件
  • Html jquery下拉select美化插件——selectFilter.js
  • C++网络编程之IP地址和端口
  • 看似容易赚钱的炒股真的赚钱吗
  • 行为设计模式 -模板方法模式- JAVA
  • 计算机毕业设计 养老院管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • 59 双向循环神经网络_by《李沐:动手学深度学习v2》pytorch版
  • 在2核2G服务器安装部署MySQL数据库可以稳定运行吗?