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地址就行。