工作笔记 · 2024年1月26日 0

Nacos1.4.1

https://github.com/alibaba/nacos/releases?page=3

配置文件

conf/application.properties

启动文件

bin/startup.sh

MOD=“cluster”    默认是集群模式

单机启动

如果换成单机模式  改成  standalone

雪崩模式概念

雪崩保护是 如果来了大量的 并发,当前承载能力不够,,就将 已经 停止的服务或者无效的服务推动给 调用方,让调用方 看到 崩溃页面 

开发项目的客户端配置

Spring cloud 项目中

父项目

     pom.xml

       之前添加过spring-cloud-alibaba 依赖可以自动添加 nacos discovery 

    子项目

         pom.xml

              增加 nacos服务 discovery

       src–main–resources

            application.yml

#单机模式nacos
server:
   port:8010
spring:
   application:
      name:stock-nacos #微服务名称--供给方服务
  cloud:
    nacos:
       server-addr:127.0.0.1:8848
       discovery:
         username:nacos #nacos默认值
         password:nacos #nacos默认值
         namespace:public #默认值
         
         
         
#集群模式nacos
server:
   port:8010
spring:
   application:
      name:stock-nacos #微服务名称--供给方服务
  cloud:
    nacos:
       server-addr:192.168.2.95:80
       discovery:
         username:nacos #nacos默认值
         password:nacos #nacos默认值
         namespace:public #默认值
         

application 级别的负载均衡机制—–开发环境—–

在开发工具中—run dashboard

spring Boot:

     Running

         #项目名称–运行中的

         点右键—copy –configured

         open configured UI—–rename applicationname –add over parameter:server.port:8022

     Configured

         when added ,,will list a named application 

上述操作结果,会在开发工具启动 两个 application ,用于验证nacos的负载机制

nacos心跳机制

心跳机制—-app service 默认为 临时类型

nacos的心跳 每隔5秒 报备心跳,如果缺失nacos标记为 失效,30秒后移除app service

集群配置

集群的结构

nginx —-nacos8849 / nacos8850 /nacos8851

nginx后有三个nacos

同一个服务器解压三个nacos1.4.1 重命名

前期准备

数据源准备

nacos 集群的 数据源为 mysql

选择 192.168.2.56 –教程说明需要 mysql5.7 + ,这个观察下

创建一个数据库实例 nacos —三个nacos 应用链接一个数据库

在nacos的加压包-conf 有个 nacos-mysql.sql ,执行

maven准备

解压 mave 386 ==/opt/maven386

修改 启动路径 ~/.bashrc

export PATH=/opt/maven386/bin:$PATH

jdk准备

java version “1.8.0_91”

Java(TM) SE Runtime Environment (build 1.8.0_91-b14)

Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

添加路径到启动文件~/.bashrc

配置application.properties

../nacosXXXX/conf/application.properties

注意三个目录的配置的端口要修改

配置 cluster.conf

../nacosXXXX/conf/cluster.conf

同一个服务器 ,3个端口 给nacos

修改启动文件startup.sh

由于做实验,服务器的内存不够大,因此需要修改 nacos的启动文件

默认启动 集群环境的 nacos ,内存要求是2G

本次测试服务器的是 8G内存,修改NACOS 启动内存 128 M ,max 512 ,min 128

../nacosXXXX/bin/startup.sh—下方截图做过修改,不是最终值

128 / 512 / 128

本次 参考单机版的启动参数进行修改,修该完成后,覆盖其他几个nacos

测试 是否能启动 —-先启动一个单机的nacos

内存 微调下 –Xms256m ,启动占用内存为 256即可 ,过高会出现内存不足的问题

集群式启动后

最后一句—-Nacos started successfully in cluster mode. use external storage

三个nacos启动场景

内存问题

有可能启动三个nacos还要改

报错信息 分享下

内存占用大了,导致 tomcat启动不起来,这还只是一个 nacos,集群启动,后续三个的时候,会再次更新这个 内存配置的问题
8G 的服务器内存不够,无法启动三个 nacos,改成了 16g的就可以
并且启动改成了 128m

修改 nginxyum install nginx

本次采用 80端口正常选择nacos默认端口8848

# configuration file /usr/local/nginx/conf/vhosts/nacos.conf:
upstream nacos_server {
server 192.168.2.95:8849;
server 192.168.2.95:8850;
server 192.168.2.95:8851;
}

server {
listen       80;
server_name  localhost; # 将此域名替换为你自己的域名

location / {
rewrite ^/(.*)$ /nacos/$1 break;
proxy_pass http://nacos_server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
}

location /nacos/ {
proxy_pass http://nacos_server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
}
}

# cat nginx.conf
user  nginx;
worker_processes  8;
worker_rlimit_nofile 65535;
error_log  /usr/local/nginx/logs/error.log warn;
pid        /usr/local/nginx/logs/nginx.pid;

events {
use epoll;
worker_connections  1028;
multi_accept on;
}


http {
include       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';

server_tokens off;
sendfile        on;
tcp_nopush  on;
tcp_nodelay on;


keepalive_timeout  65;
client_header_timeout 20;
client_body_timeout 20;
send_timeout 30;

gzip on;
gzip_min_length 1k;
gzip_buffers    4 16k;
gzip_http_version 1.0;
gzip_comp_level 6;
gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
gzip_vary on;

client_max_body_size   50m;
client_body_buffer_size   128k;
proxy_connect_timeout   600s;
proxy_send_timeout   600s;
proxy_read_timeout   600s;
proxy_buffer_size   4k;
proxy_buffers   4 32k;
proxy_busy_buffers_size   64k;
proxy_temp_file_write_size  64k;
proxy_temp_path   /usr/local/nginx/proxy_temp 1 2;

include        fastcgi_params;
include /usr/local/nginx/conf/vhosts/*.conf;

}

上面配置的结果是

http://192.168.2.95

会自动跳转为 http://192.168.2.95/nacos —-进入登陆页面

NACOS 日志

/opt/nacos8849/logs

/opt/nacos8850/logs

/opt/nacos8851/logs

access_log.2024-10-10.log