linux搭建nacos集群

准备

检查是否安装jdk
[root@hao /usr/local/software/elk/logstash]# java -version
java version "1.8.0_341"
Java(TM) SE Runtime Environment (build 1.8.0_341-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.341-b10, mixed mode)

配置nacos

去github下载nacos:2.2.3:https://github.com/alibaba/nacos/tags
上传到linux的nacos文件夹并解压
[root@hao /usr/local/software/nacos]# tar -zxvf nacos-server-2.2.3.tar.gz
nacos/LICENSE
nacos/NOTICE
nacos/target/nacos-server.jar
nacos/conf/
nacos/conf/derby-schema.sql
nacos/conf/1.4.0-ipv6_support-update.sql
nacos/conf/application.properties.example
nacos/conf/nacos-logback.xml
nacos/conf/announcement.conf
nacos/conf/mysql-schema.sql
nacos/conf/cluster.conf.example
nacos/conf/application.properties
nacos/bin/startup.sh
nacos/bin/startup.cmd
nacos/bin/shutdown.sh
nacos/bin/shutdown.cmd
[root@hao /usr/local/software/nacos]# ls
nacos  nacos-server-2.2.3.tar.gz
改名为nacos_8848
[root@hao /usr/local/software/nacos]# mv nacos nacos_8848
[root@hao /usr/local/software/nacos]# ls
nacos_8848  nacos-server-2.2.3.tar.gz
复制两份分别为nacos_8858、nacos_8868
[root@hao /usr/local/software/nacos]# cp -r nacos_8848 nacos_8858
[root@hao /usr/local/software/nacos]# cp -r nacos_8848 nacos_8868
[root@hao /usr/local/software/nacos]# ls
nacos_8848  nacos_8858  nacos_8868  nacos-server-2.2.3.tar.gz
删除application.properties文件,把application.properties.example改为application.properties文件
[root@hao /usr/local/software/nacos]# cd nacos_8848/
[root@hao /usr/local/software/nacos/nacos_8848]# ls
bin  conf  LICENSE  NOTICE  target
[root@hao /usr/local/software/nacos/nacos_8848]# cd conf/
[root@hao /usr/local/software/nacos/nacos_8848/conf]# ls
1.4.0-ipv6_support-update.sql  application.properties          cluster.conf.example  mysql-schema.sql
announcement.conf              application.properties.example  derby-schema.sql      nacos-logback.xml
[root@hao /usr/local/software/nacos/nacos_8848/conf]# rm -rf application.properties
[root@hao /usr/local/software/nacos/nacos_8848/conf]# mv application.properties.example application.properties
[root@hao /usr/local/software/nacos/nacos_8848/conf]# ls
1.4.0-ipv6_support-update.sql  announcement.conf  application.properties  cluster.conf.example  derby-schema.sql  mysql-schema.sql  nacos-logback.xml
再修改application.properties文件

分类/spring/nacos_10.png  0 → 100644

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

### Connect URL of DB:
db.url.0=jdbc:mysql://192.168.133.100:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai
db.user.0=root
db.password.0=123456
运行sql文件[解压文件夹下的conf/nacos-mysql.sql]
运行nacos:官网
启动:进入bin/文件夹下面
启动命令(standalone代表着单机模式运行,非集群模式):
sh startup.sh -m standalone
访问地址:http://192.168.133.100:8848/nacos,账号密码:nacos

SpringCloud-alibaba整合nacos作为配置中心

nacos作为项目的配置中心,替代config模块

新建命名空间

分类/spring/nacos_1.png  0 → 100644

分类/spring/nacos_2.png  0 → 100644

配置管理
新建配置

分类/spring/nacos_3.png  0 → 100644

分类/spring/nacos_4.png  0 → 100644

分类/spring/nacos_5.png  0 → 100644

点击发布
SpringBoot整合SpringCloud-alibaba
配置文件bootstrap.yml、application.yml文件
spring:
  cloud:
    nacos:
      config:
        server-addr: 192.168.133.100:8848
        namespace: b4d78fc0-d403-43d0-b721-93375733c9d2
        name: smart-config
        group: dev
        file-extension: yaml
  application:
    name: smart-alibaba-nacos

server:
  port: 15360
logging:
  level:
    com.wnhz.smart.cloud.alibaba: debug
测试
package com.wnhz.smart.cloud.alibaba.nacos.controller;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author Hao
 * @date 2023-12-06 17:13
 */
@RestController
@RequestMapping("/api/nacos")
@RefreshScope
@Slf4j
public class NacosController {
    @Value("${name}")
    private String name;

    @GetMapping("ali")
    public String ali() {
        log.debug("读取nacos的配置数据:{}", name);
        return name;
    }
}

分类/spring/nacos_9.png  0 → 100644

分类/spring/nacos_7.png  0 → 100644

其中@RefreshScope注解是实时监控配置内容的变化
下面是启动一次程序,换了次配置文件的返回结果由xxx变为yyy

分类/spring/nacos_8.png  0 → 100644

SpringCloud-alibaba整合nacos作为服务中心

为什么要使用集群

CAP,nacos实现了AP

配置nacos集群

进入/usr/local/software/nacos/nacos_8848/conf文件夹
把cluster.conf.example文件重命名为cluster.conf
[root@hao /usr/local/software/nacos/nacos_8848/conf]# ls
1.4.0-ipv6_support-update.sql  announcement.conf  application.properties  cluster.conf.example  derby-schema.sql  mysql-schema.sql  nacos-logback.xml
[root@hao /usr/local/software/nacos/nacos_8848/conf]# mv cluster.conf.example cluster.conf
编辑cluster.conf文件
[root@hao /usr/local/software/nacos/nacos_8848/conf]# vim cluster.conf

分类/nacos/nacos_3.png  0 → 100644

进入/nacos_8858/conf修改application.properties文件和cluster.conf文件,同上
分别启动8848和8858
[root@hao /usr/local/software/nacos/nacos_8848/bin]# ./startup.sh
[root@hao /usr/local/software/nacos/nacos_8858/bin]# ./startup.sh
进入网页:http://192.168.133.100:8848/nacos

分类/nacos/nacos_11.png

成功
配置一键启动脚本

startup.sh

echo "准备开启nacos服务集群..."

#调用启动nacos的脚本
/usr/local/software/nacos/nacos_8848/bin/startup.sh
/usr/local/software/nacos/nacos_8858/bin/startup.sh

shutdown.sh

echo "准备关闭nacos服务集群..."

#调用启动nacos的脚本
/usr/local/software/nacos/nacos_8848/bin/shutdown.sh
/usr/local/software/nacos/nacos_8858/bin/shutdown.sh

restart.sh

echo "准备重启nacos服务集群..."

#调用关闭、启动nacos的脚本
/usr/local/software/nacos/nacos_8848/bin/shutdown.sh
/usr/local/software/nacos/nacos_8858/bin/shutdown.sh
/usr/local/software/nacos/nacos_8848/bin/startup.sh
/usr/local/software/nacos/nacos_8858/bin/startup.sh
3个文件给777权限
完成

实现负载均衡

删除docker的nginx容器
修改nginx.conf文件
user  nginx;
worker_processes  auto;
error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
stream {
   #loadBlance is here
    upstream nacos-tcp{
      server 192.168.201.107:9848;
      server 192.168.201.107:9858;
    }
    #server  code is here....
    server {
      listen 8777;
      proxy_pass     nacos-tcp;
    }
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  65;
    #gzip  on;
    #loadBlance is here
    upstream nacos-http{
      server 192.168.201.107:8848;
      server 192.168.201.107:8858;
    }
    #server  code is here....
    server {
      keepalive_requests 120;
      listen 7777;
      location /{
         proxy_pass             http://nacos-http;
         proxy_redirect         off;
      }
    }
    include /etc/nginx/conf.d/*.conf;
}
创建新容器
docker run -it \
--name nginx \
-p 8075:80 \
-p 8080:8080 \
-p 7777:7777 \
-p 8777:8777 \
--privileged=true \
--network wn_docker_net \
--ip 172.18.12.90 \
-v /etc/localtime:/etc/localtime \
-v /usr/local/software/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/software/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /usr/local/software/nginx/html:/usr/share/nginx/html \
-v /usr/local/software/nginx/logs:/var/log/nginx \
-d nginx
访问地址:http://192.168.133.100:7777/nacos

分类/nacos/nacos_8.png  0 → 100644

idea中的bootstrap.yml文件中修改ip和端口

分类/nacos/nacos_5.png  0 → 100644

启动idea,查看是否成功

分类/nacos/nacos_6.png  0 → 100644

完成

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

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

相关文章

一文3000字从0到1用Python进行gRPC接口测试!

gRPC 是一个高性能、通用的开源RPC框架,其由 Google 主要面向移动应用开发并基于HTTP/2 协议标准而设计,基于 ProtoBuf(Protocol Buffers) 序列化协议开发,且支持众多开发语言。 自gRPC推出以来,已经广泛应用于各种服务之中。在测…

Vue2脚手架搭建+项目基础依赖安装

文章目录 1. 安装 node.js2. 安装 vue-cli 脚手架3. 创建 vue2 项目4. 安装基础依赖 1. 安装 node.js 可以参考这篇文章 https://blog.csdn.net/weixin_43721000/article/details/134284418 2. 安装 vue-cli 脚手架 安装 vue-clinpm install -g vue/cli查看是否安装成功vue -…

用23种设计模式打造一个cocos creator的游戏框架----(七)代理模式

1、模式标准 模式名称:代理模式 模式分类:结构型 模式意图:为其他对象提供一种代理以控制对这个对象的访问。 结构图: ​ 适用于: 远程代理:也称为大使,这是最常见的类型,在分…

Data Mining数据挖掘—2. Classification分类

3. Classification Given a collection of records (training set) – each record contains a set of attributes – one of the attributes is the class (label) that should be predicted Find a model for class attribute as a function of the values of other attribu…

vuepress-----14、保护私密信息

秘钥存储文件 使用秘钥 忽略提交

通过异步序列化提高图表性能 Diagramming for WPF

通过异步序列化提高图表性能 2023 年 12 月 6 日 MindFusion.Diagramming for WPF 4.0.0 添加了异步加载和保存文件的功能,从而提高了响应能力。 MindFusion.Diagramming for WPF 提供了一个全面的工具集,用于创建各种图表,包括组织结构图、图…

『PyTorch学习笔记』如何快速下载huggingface模型/数据—全方法总结

如何快速下载huggingface模型/数据—全方法总结 文章目录 一. 如何快速下载huggingface大模型1.1. IDM(Windows)下载安装连接1.2. 推荐 huggingface 镜像站1.3. 管理huggingface_hub cache-system(缓存系统) 二. 参考文献 一. 如何快速下载huggingface大模型 推荐 huggingface…

苹果mac电脑如何彻底删除卸载软件?

在苹果电脑上安装和使用软件非常容易,但是卸载软件却可能会变得复杂和困难。不像在Windows上,你不能简单地在控制面板中找到已安装的程序并卸载它们。因此,在这篇文章中,我们将讨论苹果电脑怎么彻底删除软件。 CleanMyMac X全新版…

通信线缆是什么

通信线缆 电子元器件百科 文章目录 通信线缆前言一、通信线缆是什么二、通信线缆的类别三、通信线缆应用实例四、通信线缆的作用原理总结前言 每种线缆都有其特定的特性和用途。通信线缆起到连接和传输信号的作用,是实现通信和数据传输的重要组成部分。 一、通信线缆是什么 …

高级搜索——ST表,离线RMQ问题

文章目录 前言可重复贡献问题ST表的定义ST表的存储结构ST表的预处理预处理的实现 ST表的区间查询对于k的获取区间查询的实现 OJ链接 前言 对于查询区间最值的方法,我们常用的就是线段树,树状数组,单调队列,而树状数组更适合用于快…

AI报告专题:创造性和生成式人工智能

今天分享的AI系列深度研究报告:《AI报告专题:创造性和生成式人工智能》。 (报告出品方:Capgemini) 报告共计:64页 AI一代 生成式人工智能 (AI)正在迅速改变我们与技术的交互方式,使机器能够创…

Java实现屏幕截图程序(一)

在Java中,可以使用Robot类来实现屏幕截图程序。Robot类提供了一组用于生成输入事件和控制鼠标和键盘的方法。 Java实现屏幕截图的步骤如下: 导入Robot类 import java.awt.Robot;创建Robot对象 Robot robot new Robot();获取屏幕分辨率信息 Dimensi…

redis-学习笔记(hash)

Redis 自身已经是 键值对 结构了 Redis 自身的键值对就是通过 哈希 的方式来组织的 把 key 这一层组织完成后, 到了 value 这一层, 还可以用 哈希类型 来组织 (简单的说就是哈希里面套哈希 [数组里面套数组 -> 二维数组] ) [ field value ] hset key field value [ field va…

urllib 异常、cookie、handler及代理(四)

目录 一、urllib异常 二、urllib cookie登录 三、urllib handler 处理器的基本使用 四、urllib 代理和代理池 参考 一、urllib异常 URLError/HTTPError 简介: 1.HTTPError类是URLError类的子类 2.导入的包urllib.error.HTTPError urllib.error.URLError 3.h…

如何将idea中导入的文件夹中的项目识别为maven项目

问题描述 大家经常遇到导入某个文件夹的时候,需要将某个子文件夹识别为maven项目 解决方案

XUbuntu22.04之8款免费UML工具(一百九十七)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

【计算机组成体系结构】SRAM和DRAM

RAM — Random Access Memory 随机访问存储器 —指定某一存储单元地址的时候,存储单元的读取速度并不会因为存储单元的物理位置改变 SRAM即为 Static RAM 静态随机访问存储器 — 用于主存DRAM即为 Dynamic RAM 动态随机访问存储器 — 用于Cache 一、SRAM和DRAM的特…

oomall课堂笔记

一、项目分层结构介绍 controller层(控制器层): 作用:负责输出和输入,接收前端数据,把结果返回给前端。 1.处理用户请求,接收用户参数 2.调用service层处理业务,返回响应 servi…

Javaweb之Maven仓库的详细解析

2.3 Maven仓库 仓库:用于存储资源,管理各种jar包 仓库的本质就是一个目录(文件夹),这个目录被用来存储开发中所有依赖(就是jar包)和插件 Maven仓库分为: 本地仓库:自己计算机上的一个目录(用来存储jar包) 中央仓库&a…

利用R语言heatmap.2函数进行聚类并画热图

数据聚类然后展示聚类热图是生物信息中组学数据分析的常用方法,在R语言中有很多函数可以实现,譬如heatmap,kmeans等,除此外还有一个用得比较多的就是heatmap.2。最近在网上看到一个笔记文章关于《一步一步学heatmap.2函数》,在此与…