springcloud -服务注册治理之nacos

任务

查询: CPU密集型和IO密集型对 CPU内核之间的关系。—线程池

什么是Nacos

**服务(Service)**是 Nacos 世界的一等公民。Nacos 支持几乎所有主流类型的“服务”的发现、配置和管理:

Kubernetes Service

gRPC & Dubbo RPC Service

Spring Cloud RESTful Service

image-20231207141817265

nacos问题修复

问题描述: 读取nacos远程,多级数据出错。

user:username: admin
spring:cloud:nacos:config:server-addr: 192.168.201.107:8848namespace: a3f1db25-a200-47bc-b6f7-13aad8cc9ba8name: ssc-configgroup: DEV#配置文件格式file-extension: yamlapplication:name: ssc-alibaba-nacos

自动读取新配置

@RefreshScope

Nacos的版本更新

image-20231207100652127

image-20231207095137894

image-20231207095254159

下载安装

下载

image-20231207095605060

上传到linux

image-20231207095654903

解压三个

[root@localhost software]# 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
drwxr-xr-x. 5 root root 72 127 09:57 nacos_8848
drwxr-xr-x. 5 root root 72 127 09:58 nacos_8858
drwxr-xr-x. 5 root root 72 127 09:59 nacos_8868
[root@localhost nacos]# pwd
/usr/local/software/nacos

配置nacos(单8848)

image-20231207100823540

修改applicaiton.properties.example文件, 修改文件名application.properties

 33 #*************** Config Module Related Configurations ***************#34 ### If use MySQL as datasource:35 spring.datasource.platform=mysql36 37 ### Count of DB:38 db.num=139 40 ### Connect URL of DB:41 db.url.0=jdbc:mysql://192.168.201.81:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=30    00&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai42 db.user.0=root43 # db.password.0=12344 45 ### Connection pool configuration: hikariCP46 db.pool.config.connectionTimeout=3000047 db.pool.config.validationTimeout=1000048 db.pool.config.maximumPoolSize=2049 db.pool.config.minimumIdle=2

创建数据库

image-20231207101329398

image-20231207101434057

image-20231207101708513

nacos作为配置中心

image-20231207104445563

image-20231207105102946

命名空间

用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。

image-20231207104952846

image-20231207105019224

配置集 ID

Nacos 中的某个配置集的 ID。配置集 ID 是组织划分配置的维度之一。Data ID 通常用于组织划分系统的配置集。一个系统或者应用可以包含多个配置集,每个配置集都可以被一个有意义的名称标识。Data ID 通常采用类 Java 包(如 com.taobao.tc.refund.log.level)的命名规则保证全局唯一性。此命名规则非强制。

配置分组

Nacos 中的一组配置集,是组织配置的维度之一。通过一个有意义的字符串(如 Buy 或 Trade )对配置集进行分组,从而区分 Data ID 相同的配置集。当您在 Nacos 上创建一个配置时,如果未填写配置分组的名称,则配置分组的名称默认采用 DEFAULT_GROUP 。配置分组的常见场景:不同的应用或组件使用了相同的配置类型,如 database_url 配置和 MQ_topic 配置。

nacos_data_model

配置管理 (Configuration Management)

在数据中心中,系统中所有配置的编辑、存储、分发、变更管理、历史版本管理、变更审计等所有与配置相关的活动统称为配置管理。

配置案例

nacos配置

image-20231207105447648

image-20231207105602627

springcloud

bootstrap.yml
  • fileExtension

image-20231207110101520

  • shared-configs

image-20231207110156228

image-20231207110313495 image-20231207110330213

spring:application:name: ssc-cloud-alibaba-nacoscloud:nacos:config:#配置nacos服务器ip:portserver-addr: 192.168.201.107:8848#与nacos命名空间对应namespace: ssc-cloud-id#文件配置格式yaml/properties(默认)file-extension: yamlshared-configs:#读取db.yaml配置文件- data-id: db.yaml#组名group: DEV#自动读取发布更新refresh: true- data-id: es.yamlgroup: DEVrefresh: true

image-20231207110924764

image-20231207111256890

启动
2023-12-07 11:14:09.437  INFO 10328 --- [           main] c.a.c.n.refresh.NacosContextRefresher    : [Nacos Config] Listening config: dataId=db.yaml, group=DEV
2023-12-07 11:14:09.440  INFO 10328 --- [           main] c.a.c.n.refresh.NacosContextRefresher    : [Nacos Config] Listening config: dataId=es.yaml, group=DEV

nacos作为服务治理中心

引入服务发现(discover)依赖

image-20231207142139117

bootstrap.yml

spring:application:name: ssc-cloud-alibaba-nacoscloud:nacos:discovery:register-enabled: trueserver-addr: ${spring.cloud.nacos.config.server-addr}config:#配置nacos服务器ip:portserver-addr: 192.168.201.107:8848#与nacos命名空间对应namespace: ssc-cloud-id#文件配置格式yaml/properties(默认)file-extension: yamlshared-configs:#读取db.yaml配置文件- data-id: db.yaml#组名group: DEV#自动读取发布更新refresh: true- data-id: es.yamlgroup: DEVrefresh: true

启动类

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

image-20231207143015266

测试注册

  1. 生成可运行jar包

        <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
    
  2. 部署jar包

    java -jar xxxx.jar
    

nacos集群

为什么要使用集群

CAP,

Nacos: AP

image-20210824203054846

nacos集群方案

image-20231207100652127

配置nacos集群

nacos的conf文件夹

image-20231207152840097

image-20231207152935985

image-20231207153015787

在nacos_8848,nacos_8858,nacos_8868中的clustor.conf文件中添加服务ip:port

#it is ip
#example
192.168.201.107:8848
192.168.201.107:8858
#192.168.201.107:8868
~                         

开放端口号

image-20230813120409615

序号服务器端口号Rpc端口
1nacos_884888489848
2nacos_885888589858
3nacos_886888689868
[root@localhost conf]# firewall-cmd --add-port=9858/tcp --permanent 
success[root@localhost conf]# firewall-cmd --list-ports 
8848/tcp 9848/tcp 9859/tcp 8858/tcp 9858/tcp

配置8858

 cp application.properties ../../nacos_8858/conf

image-20231207154602341

启动集群

./startup.sh

         ,--.,--.'|,--,:  : |                                           Nacos 2.2.3
,`--.'`|  ' :                       ,---.               Running in cluster mode, All function modules
|   :  :  | |                      '   ,'\   .--.--.    Port: 8858
:   |   \ | :  ,--.--.     ,---.  /   /   | /  /    '   Pid: 30829
|   : '  '; | /       \   /     \.   ; ,. :|  :  /`./   Console: http://192.168.201.107:8858/nacos/index.html
'   ' ;.    ;.--.  .-. | /    / ''   | |: :|  :  ;_
|   | | \   | \__\/: . ..    ' / '   | .; : \  \    `.      https://nacos.io
'   : |  ; .' ," .--.; |'   ; :__|   :    |  `----.   \
|   | '`--'  /  /  ,.  |'   | '.'|\   \  /  /  /`--'  /
'   : |     ;  :   .'   \   :    : `----'  '--'.     /
;   |.'     |  ,     .-./\   \  /            `--'---'
'---'        `--`---'     `----'2023-12-07 15:47:47,151 INFO The server IP list of Nacos is [192.168.201.107:8848, 192.168.201.107:8858]

image-20231207154918367

shell脚本控制集群环境启动

image-20231207161442251

启动脚本

                                                                                                  21,0-1       全部
#!/bin/bash# Copyright 1999-2018 Alibaba Group Holding Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.echo "我们准备开启多个nacos服务集群..."#调用启动nacos的脚本
/usr/local/software/nacos/nacos_8848/bin/startup.sh
/usr/local/software/nacos/nacos_8858/bin/startup.sh

关闭脚本

#!/bin/bash# Copyright 1999-2018 Alibaba Group Holding Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
cd `dirname $0`/../target
target_dir=`pwd`pid=`ps ax | grep -i 'nacos.nacos' | grep ${target_dir} | grep java | grep -v grep | awk '{print $1}'`
if [ -z "$pid" ] ; thenecho "No nacosServer running."exit -1;
fiecho "The nacosServer(${pid}) is running..."kill ${pid}echo "Send shutdown request to nacosServer(${pid}) OK"

nginx+nacos集群

序号服务器端口号Rpc端口nginx(http)nginx(rpc)
1nacos_88488848984877778777
2nacos_88588858985877778777
3nacos_886888689868

8848/8858 ---->nginx监听7777

9848/9858----->nginx监听8777

docker run -it \
--name nginx \
-p 8080:8080 \
-p 8075:80 \
-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 
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 hereupstream 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 hereupstream 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;
}

image-20231207175608824

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

打卡今天内存管理

首先我们的体系结构是这样的&#xff0c;根据小林coding 来写的笔记 寄存器&#xff0c;速度非常快&#xff0c; 32位的可以存4个字节&#xff0c;64位的可以存8个字节 多少位只是在32位以上 地址空间 分为两种地址空间 &#xff1a; 物理&#xff0c;逻辑 地址空间 地址空间…

【文献管理】zotero插件4——获取知网pdf、中文文献识别与目录生成

文章目录 zotero获取知网PDFzotero——中文文献识别&#xff08;茉莉花插件&#xff09;学位论文目录生成 zotero获取知网PDF zotero——中文文献识别&#xff08;茉莉花插件&#xff09; 为下载的学位论文添加目录中文文献识别&#xff1a;jasminum 下载pdflabs下载茉莉花插…

百度翻译相关介绍

官网地址&#xff1a;百度翻译(baidu.com) 通用文本翻译API 通用翻译API是百度翻译依托领先的自然语言处理技术推出的在线文本翻译服务&#xff0c;可支持中、英、日、韩等200语言互译&#xff0c;100语种自动检测。 传入待翻译内容&#xff0c;并指定要翻译的源语言&#xf…

2.27数据结构

1.链队 //link_que.c #include "link_que.h"//创建链队 Q_p create_que() {Q_p q (Q_p)malloc(sizeof(Q));if(qNULL){printf("空间申请失败\n");return NULL;}node_p L(node_p)malloc(sizeof(node));if(LNULL){printf("申请空间失败\n");return…

Spring中的事务和事务的传播机制

事务是一组操作的集合&#xff0c;不可以被分割。事务会把所有的操作作为一个整体&#xff0c;这组操作要么全部成功&#xff0c;要么全部失败。 事务有三种操作&#xff1a; 开启事务&#xff1b;提交事务&#xff1b;回滚事务。 如果代码的执行逻辑是这样&#xff1a; 开…

[C++][C++11][四] -- [lambda表达式]

目录 1.为什么要有lambda表达式&#xff1f;2.lambda表达式3.lambda表达式语法4.函数对象与lambda表达式 1.为什么要有lambda表达式&#xff1f; 在C98中&#xff0c;如果想要对一个数据集合中的元素进行排序&#xff0c;可以使用std::sort方法 如果待排序元素为自定义类型&am…

车牌识别-只用opencv的方式

项目简述 本文描述如何只使用opencv将车牌中的车牌号提取出来&#xff0c;整个过程大致分为三个过程&#xff1a;车牌定位&#xff0c;车牌号元素分割&#xff0c;模式匹配。 在做完这个实验后&#xff0c;我感触是&#xff0c;只用opencv的方式能使用的场景有限&#xff0c;不…

大模型(LLM)的token学习记录-I

文章目录 基本概念什么是token?如何理解token的长度&#xff1f;使用openai tokenizer 观察token的相关信息open ai的模型 token的特点token如何映射到数值&#xff1f;token级操作&#xff1a;精确地操作文本token 设计的局限性 tokenizationtoken 数量对LLM 的影响训练模型参…

【MySQL】DCL

DCL英文全称是Data Control Language(数据控制语言)&#xff0c;用来管理数据库用户、控制数据库的访问权限。 1. 管理用户 在MySQL数据库中&#xff0c;DCL&#xff08;数据控制语言&#xff09;是用来管理用户和权限的语句集合。通过DCL语句&#xff0c;可以创建、修改、删…

C# 打包nuget包

类库等项目开发好之后打开csproj&#xff0c;添加如下代码 <PropertyGroup><!--<TargetFramework>netstandard2.0</TargetFramework>--><PackageId>Test01</PackageId><Version>1.0.0</Version><Authors>wjl</Autho…

安防视频监控EasyCVR平台使用GB28181协议接入时,如何正确配置端口?

国标GB28181协议EasyCVR安防视频监控平台可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、云存储等丰富的视频能力&#xff0c;平台支持7*24小时实时高清视频监控&#xff0c;能同时播放多路监控视频流…

05-Linux部署MySQL

Linux部署MySQL 在今后的使用过程中&#xff0c;需要频繁使用Linux系统&#xff0c;所以在Linux上安装软是必不可少的操作 。 前置要求 需要学习前四章知识&#xff0c;初识Linux、Linux基础命令、Linux权限管理、Linux高阶技巧这4个章节。需要开启多态虚拟机&#xff0c;电…