当前位置:网站首页>Detailed explanation of the construction process of Nacos cluster
Detailed explanation of the construction process of Nacos cluster
2022-08-05 06:44:00 【User Nickname 23】
I. Nacos cluster deployment architecture
In the actual development process, if Nacos is used, in order to ensure high availability, we generally deploy it in a cluster.Nacos stipulates that the number of Nacos nodes in the cluster must be greater than or equal to 3; at the same time, the data of Nacos in stand-alone mode is stored in its embedded database by default, which is inconvenient to observe the basic situation of data storage.Moreover, if multiple Nacos nodes with default configuration are started in the cluster, there is a consistency problem in data storage.In order to solve this problem, Nacos adopts a centralized storage method to support clustered deployment, and currently only supports MySQL storage; in addition, we also need to use Nginx to achieve load balancing.The deployment architecture diagram of this process is shown below:

Second, switch the default database of Nacos
(1) Before starting to build the cluster, we need to switch the default database derby of Nacos to mysql.
First start the local mysql, create the nacos_config database, and execute the nacos-mysql.sql script under the nacos_config database, as shown in the following figure: 
After successful execution, view the created data table:
(2) My Nacos is directly decompressed under the /opt path, find and modify the application.properties file under the /opt/nacos/conf path, and paste the following content directly to the end of application.properties (note thatdb.user and db.password should be modified to their own mysql username and password):
spring.datasource.platform=mysqldb.num=1db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=truedb.user=rootdb.password=123456Third, modify the cluster configuration of Nacos
(1) Similarly, in the /opt/nacos/conf directory, find and modify the cluster.conf file, as shown below:

(2) In the /opt/nacos/bin directory, find and modify the startup.sh file. The places to be modified are shown in the following figure:
① Before modification: 
After modification:
② Before modification:
After modification:

After the modification is completed, you can use the following command in the /opt/nacos/bin path to start the nacos node corresponding to the port number:

Fourth, configure Nginx to achieve load balancing
(1) Find and modify the nginx.conf file under the /usr/local/nginx/conf path. The places that need to be modified are shown in the following figure (for the convenience of demonstration, the nginx cluster will not be built here, only theAn nginx is used as an example to illustrate):

V. Test effect
(1) Start nginx first, and then start the nacos nodes of 3333, 4444, and 5555 in turn
(2) Close the linux local firewall or open the corresponding port number that needs to be accessed on linux
(3) For example, my linux ip is 192.168.1.103, so I can successfully access the nacos interface by accessing 192.168.1.103:1111/nacos on Windows (here is 1111 because it was just exposed in the nginx configuration fileThe port number is 1111).
(4) Create new configuration information in the nacos interface:


(5) You can view the newly created configuration information in mysql of linux:

(6) So far, the Nacos cluster + MySQL centralized storage + Nginx load balancing has been successfully built.
Let me introduce myself first. The editor graduated from Shanghai Jiaotong University in 2013. I worked in a small company and went to big factories such as Huawei and OPPO. I joined Alibaba in 2018, until now.I know that most junior and intermediate java engineers want to upgrade their skills, they often need to explore their own growth or sign up to study, but for training institutions, the tuition fee is nearly 10,000 yuan, which is really stressful.Self-learning that is not systematic is very inefficient and lengthy, and it is easy to hit the ceiling and the technology stops.Therefore, I collected a "full set of learning materials for java development" for everyone. The original intention is also very simple. I hope to help friends who want to learn by themselves but don't know where to start, and at the same time reduce everyone's burden.Add the business card below to get a full set of learning materials
边栏推荐
猜你喜欢

From "dual card dual standby" to "dual communication", vivo took the lead in promoting the implementation of the DSDA architecture

DevOps流程demo(实操记录)

Wireshark packet capture and common filtering methods

The 25 best free games on mobile in 2020

BIO,NIO,AIO实践学习笔记(便于理解理论)

config.js相关配置汇总

Transformer interprets and predicts instance records in detail

Chengyun Technology was invited to attend the 2022 Alibaba Cloud Partner Conference and won the "Gathering Strength and Going Far" Award

LaTeX 图片加标题 文本分栏自动换行

selenium模块的操作之拉钩
随机推荐
NAT experiment
NB-IOT智能云家具项目系列实站
disabledDate 日期选择器 datePicker
The use of three parameters of ref, out, and Params in Unity3D
深夜小酌,50道经典SQL题,真香~
Q 2020, the latest senior interview Laya soul, do you know?
Met with the browser page
[Problem has been resolved]-Virtual machine error contains a file system with errors check forced
LaTeX使用frame制作PPT图片没有标号
Native JS takes you to understand the implementation and use of array methods
Teach you simple steps to achieve industrial raspberries pie properly installed RS232 USB drive
记录vue-页面缓存问题
Collection of error records (write down when you encounter them)
LeetCode practice and self-comprehension record (1)
Matplotlib绘图笔记
Does flink cdc currently support Gauss database sources?
Mina的长连接和短连接
GetEnumerator method and MoveNext and Reset methods in Unity
Collision, character controller, Cloth components (cloth), joints in the Unity physics engine
System basics - study notes (some command records)