Nacos AP架构集群搭建(Windows)

手写SpringCloud项目地址,求个star
github:https://github.com/huangjianguo2000/spring-cloud-lightweight
gitee:https://gitee.com/huangjianguo2000/spring-cloud-lightweigh

目录:

一:初始化MySQL

二:复制粘贴三份Nacos文件,修改配置文件

2.1 修改数据库连接
2.2 修改集群文件

三: 启动服务

四: 注册服务

五:Nginx改造,实现代理加负载均衡

六:服务注册失败,400

一:初始化MySQL

MySql中执行conf文件夹下的nacos-mysql.sql,建表。 直接复制粘贴运行SQL语句就行。

在这里插入图片描述

二:复制粘贴三份Nacos文件,修改配置文件

在这里插入图片描述

2.1 修改数据库连接

在这里插入图片描述
在这个文件夹里面添加

在这里插入图片描述

spring.datasource.platform=mysql
 
db.num=1
 
db.url.0=jdbc:mysql://ip:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=root

数据库地址账号密码记得修改。

2.2 修改集群文件

在conf文件夹下新建这个文件。里面内容是nacos集群的ip地址的端口。

在这里插入图片描述
在这里插入图片描述

四:注册服务

这里随便填写集群中的一个IP地址, 启动应用可以看见就注册进去了,可以看见所以的集群里面都可以看见这个实例。
server:
  port: 9001

spring:
  application:
    name: nacos-payment-provider
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848

五:Nginx搭建

配置文件配置负载均衡策略。启动nginx, 用8847代理我们的集群。后序我们访问和注册都访问8847, 8848,8849,8850就不用了。

在这里插入图片描述


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}




http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
	
	upstream myserver {
		ip_hash;
		server 127.0.0.1:8848 weight=1;
		server 127.0.0.1:8850 weight=1;
		server 127.0.0.1:8849 weight=1;
	}
	
    server {
        listen       8847;
        server_name  localhost;



        location / {
            root   html;
            index  index.html index.htm;
			location ~ .* {
				 proxy_pass http://myserver;
			}
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

}

六:注册服务失败

: nacos registry, nacos-payment-provider register failed...NacosRegistration Caused by: com.alibaba.nacos.api.exception.NacosException: failed to req API:/api//nacos/v1/ns/instance after all servers([127.0.0.1:8848]) tried:

Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.

Sun Aug 13 14:01:12 CST 2023
There was an unexpected error (type=Bad Request, status=400).
receive invalid redirect request from peer 127.0.0.1
at com.alibaba.nacos.client.naming.net.NamingProxy.reqAPI(NamingProxy.java:496) ~[nacos-client-1.2.1.jar:na] at com.alibaba.nacos.client.naming.net.NamingProxy.reqAPI(NamingProxy.java:401) ~[nacos-client-1.2.1.jar:na] at com.alibaba.nacos.client.naming.net.NamingProxy.reqAPI(NamingProxy.java:397) ~[nacos-client-1.2.1.jar:na] at com.alibaba.nacos.client.naming.net.NamingProxy.registerService(NamingProxy.java:212) ~[nacos-client-1.2.1.jar:na]

IP地址配置错了(据说是网卡原因), 这里会多出来四个地址,我们把之前的IP地址改成新出来的那个IP地址就行。

在这里插入图片描述