IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> nacos搭建注册中心 -> 正文阅读

[Java知识库]nacos搭建注册中心

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

随着目前自个业务系统的拓展,单体的服务要解决问题变得越来越臃肿,拓展性也变得很差,随之产生了服务的拆分,每个微服务只关心自己的业务,但在一个服务集群中,呈现的是整个对外的一致性。这里先以比较重要的注册中心来说。


提示:以下是本篇文章正文内容,下面案例可供参考

一、nacos是什么?

Alibaba nacos 是对比Eureka的 轻量级注册中心,操作简单,拓展性强,提供可视界面

二、使用步骤

1.项目创建

? ? ? pom.xml

<!-- 有几处需要注意的地方-->
<!-- 1,在maven 管理的项目中parent 引入 项目的主springboot 版本 -->
 <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>2.2.6.RELEASE</version>
  </parent>

<!-- 特别注意springboot 与springcloud 版本之间的关系,如果版本不对会导致服务配置异常,坑无数-->
 <properties>
        <alibaba-version>2.2.6.RELEASE</alibaba-version>
        <tomcat.version>9.0.33</tomcat.version>
        <spring-cloud.version>Hoxton.SR10</spring-cloud.version>
 </properties>


<!-- 2,  -->
<dependencyManagement>
        <!-- 引入alibaba nacos -->
        <dependencies>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${alibaba-version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

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

构建完上述的pom.xml 。便可以开始搭建项目

1.1 下载Nacos 服务到对应的机器?

Quick Start for Nacos Spring Cloud Projects

Spring Cloud Alibaba

Nacos 2.0.3 下载地址???????1

1.2? 下载完成之后解压出来,是个jar文件并带有一些配置

?bin 文件夹里 包含有核心的启动及停止sh

conf 是所有的配置在这里,主要配置服务的启动,数据源的配置,集群的配置等;

注意: 这里需要修改几处地方

1.1.1 application.properties?

#*************** Spring Boot Related Configurations ***************#
### Default web context path:
server.servlet.contextPath=/nacos
### Default web server port:
server.port=8848

#*************** Network Related Configurations ***************#
### If prefer hostname over ip for Nacos server addresses in cluster.conf:
# nacos.inetutils.prefer-hostname-over-ip=false

### Specify local server's IP:
# nacos.inetutils.ip-address=

# 以下是重点配置,不配置直接启动会报错
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
spring.datasource.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://localhost:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=123456

1.1.2 执行Sql

创建一个数据库,默认使用的库名为nacos , 并执行以下的sql 语句

nacos-mysql.sql

schema.sql

1.1.3 更新 cluster.conf.example配置文件

将文件名改成?cluster.conf

#2021-10-15T10:49:10.806
127.0.0.1:8847

这样单机版本就能启动了

1.1.4 启动 bin 目录下的 /bin/startup.sh?

sh startup.sh 
/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/bin/java -Djava.ext.dirs=/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/jre/lib/ext:/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/lib/ext  -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/Users/shefenfei/Documents/Server/nacos/logs/java_heapdump.hprof -XX:-UseLargePages -Dnacos.member.list= -Xloggc:/Users/shefenfei/Documents/Server/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/Users/shefenfei/Documents/Server/nacos/plugins/health,/Users/shefenfei/Documents/Server/nacos/plugins/cmdb -Dnacos.home=/Users/shefenfei/Documents/Server/nacos -jar /Users/shefenfei/Documents/Server/nacos/target/nacos-server.jar  --spring.config.additional-location=file:/Users/shefenfei/Documents/Server/nacos/conf/ --logging.config=/Users/shefenfei/Documents/Server/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288
nacos is starting with cluster
nacos is starting,you can check the /Users/shefenfei/Documents/Server/nacos/logs/start.out

以上如果没有问题,服务可正常启动。 在浏览器中,输入 http://localhost:8848/nacos/index.html

用户名密码默认是 nacos / nacos 启动界面如下

?

2. 构建一个服务提供者 Service-Provider?

?在 docker-spring-nacos 项目中的我们只需要加入以下两个就可以;

    <dependencies>
<!--        <dependency>-->
<!--            <groupId>com.alibaba.cloud</groupId>-->
<!--            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>-->
<!--        </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-web</artifactId>
        </dependency>
    </dependencies>

2.2 主程序中?

@SpringBootApplication
// 这个注解很重要,标识为一个向nacos注册的客户端
@EnableDiscoveryClient
public class NacosApplication {

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


@RestController
@RequestMapping("/nacos")
public class NacosController {

    @GetMapping("/hello")
    public ResponseEntity hello() {
        Map<String, Object> objectMap = new HashMap<String, Object>();
        objectMap.put("hello", "world");
        return ResponseEntity.ok(objectMap);
    }
}

?application.yml 配置

spring:
  application:
    name: nacos-server1
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
server:
  port: 9998

启动 NacosApplication 应用 ,启动没有问题,在Nacos的管理界面中会有一个服出现;并以 spring.application.name 为服务名? ,这个也很重要,将来暴露给其他的调用的时候就用这个名

2.3? 创建另外一个service-consumer?

创建是跟之前一样的流程,只需要将端口及服务名修改

// 这里的名就我们注册的provider的名
@FeignClient(name = "nacos-server1")
public interface ConsumerClient {

    @GetMapping("/nacos/hello")
    String getResp();
}


@RestController
@RequestMapping("/feign")
public class FeignInckController {

    @Autowired
    private ConsumerClient consumerClient;

    @GetMapping("/fetch")
    public ResponseEntity feign() {
        String resp = consumerClient.getResp();
        return ResponseEntity.ok(resp);
    }
}

postman 调用测试下


总结

在这里做一个服务注册发现就已经全部完成了,需要增加的功能可根据自己情况,加定制,后续我会再写一个关于配置中心的文章。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-10-16 19:30:54  更:2021-10-16 19:31:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 22:10:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码