当前位置:网站首页>[Nacos cloud native] the first step of reading the source code is to start Nacos locally
[Nacos cloud native] the first step of reading the source code is to start Nacos locally
2022-07-05 12:51:00 【Shizhenzhen's grocery store】
Preface
Before we read Nacos Before source code , We have to understand Nacos do , And how to use it , This makes it easier for us to understand the source code ;
see Nacos Official documents of , We know Naocs It has the following characteristics :
- Configuration center
- Service registration and discovery
- …
Nacos It provides us with a management interface , To facilitate the configuration of data ; Let's take the whole Nacos The source code is cloned , Local boot ; Familiarize yourself with how to use it
start-up Nacos project
1. clone Nacos Source code
git clone https://github.com/alibaba/nacos.git
Import to Idea in
2. To configure Mysql data source
Nacos Built in embedded derby database , But it is only suitable for development testing , It's not good for us to observe the data ; So let's change the database to Mysql
In the use of Mysql Before , You need to create nacos_config The database of sql File in module distribution
Medium conf/nacos-mysql.sql
; Execute this file ;
In the module nacos/distribution
Add Mysql Configuration file for
## The database for mysql
spring.datasource.platform=mysql
## Database number Because there may be multiple data sources configured Master-slave
db.num=1
db.url.0=jdbc:mysql://XX.XX.XXX.XX:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user.0=name
db.password.0=password
3. Package and publish the project
Execute package command
mvn -Prelease-nacos clean install -U -Dmaven.test.skip=true
Pack up , Execute startup script
sh distribution/target/nacos-server-{version}/nacos/bin/startup.sh -m standalone
here -m standalon
e Stand alone mode start , Other optional parameters are :
-f [config/naming]
Boot mode Only one module can be started ,config: Configuration center ; naming: Service registration and discovery , When not set, all modules will start-s Followed by the service package name ; The default value is
nacos-server
You can specify the startup Jar Package name ;
Check if the start is successful
After successful startup , You can access the management background
http://localhost:8848/nacos/index.html The password of the login account is : nacos
The management background after login
If you add parameters when you just start -f config
Now all we see is Configuration Management and Namespace Two menu bars
For detailed explanation of use, please refer to the official documents Console manual
Nacos Configuration center database table structure description
tenant_info Tenant information table ( The namespace table )
Nacos be based on Namespace Help users logically isolate multiple namespaces , This can help users better manage tests 、 Advance 、 Production and other multi environment services and configurations , Let each environment have the same configuration ( Such as database data source ) You can define different values .
The data in this namespace is the existence table tenant_info
in
tenant_info
Field | remarks |
---|---|
id | The primary key increases automatically |
kp | Set value 1 |
tenant_id | Namespace id, It's a UUID character string |
tenant_name | Namespace name |
tenant_desc | Namespace description |
create_source | founder |
gmt_create | Creation time |
gmt_modified | Modification time |
(kp
,tenant_id
) Make up a unique constraint
config_info Configuration information table
All configured data is stored in this table ;
Field | describe |
---|---|
id | Since the primary key |
data_id | data ID |
group_id | Group ID, Default DEFAULT_GROUP |
content | Configure the content , It's a longtext type |
md5 | content Of md5 |
tenant_id | Tenant ID, Corresponding tenant_ino Medium tenant_id |
app_name | ascription App name |
type | json、properties、text、xml And so on |
gmt_create | Creation time |
gmt_modified | Modification time |
c_desc | describe |
config_info_beta Gray configuration information
Nacos Grayscale publishing function in , If you click grayscale Publishing , And fill in the grayscale publishing server Ip; Information will be stored here ;
Field | describe |
---|---|
id | The primary key increases automatically |
data_id | data id |
group_id | Group id |
app_name | apply name |
content | Configure the content |
beta_ips | Machines requiring grayscale Publishing , If ip In this , The configuration information will be obtained |
md5 | content Of md5 |
tenant_id | Tenant ID, Different namespaces |
gmt_create | Creation time |
gmt_modified | Modification time |
(data_id
,group_id
,tenant_id
) Make up a unique constraint
config_tags_relation tag A relational table
Each configuration file can be marked with tag label ; This table records the configuration file and tag Binding relationship of
Field | describe |
---|---|
id | Primary key . |
tag_name | The tag name |
tag_type | Label type |
data_id | data id |
group_id | Group id |
tenant_id | Tenant ID, Different namespaces |
nid | The primary key grows by itself |
(id
,tag_name
,tag_type
) Make up a unique constraint
his_config_info Historical configuration table
Nacos The historical configuration will be recorded , Used to facilitate rollback configuration ; By default, it exceeds 30 The record of days will be deleted ;
Field | describe |
---|---|
id | id |
nid | Primary key , Self increasing |
data_id | data id |
group_id | Group id |
app_name | apply name |
content | Configure the content |
md5 | content Of md5 |
tenant_id | Tenant ID, Different namespaces |
gmt_create | Creation time |
gmt_modified | Modification time |
op_type | I、U、D Operation type , Add, replace and delete |
How to debug locally Jar Package start source code
Due to the above startup mode , We may not be able to do local Debug; But we can turn it on at startup Debug port , Through remote monitoring Debug Port to carry on Debug;
Let's modify the startup script first , Open the debug port to modify
file distribution/target/nacos-server-{version}/nacos/bin/startup.sh
# Add debug port 6666 The debug port can be set at will
JAVA_DEBUG_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=6666,server=y,suspend=n"
echo "$JAVA ${JAVA_DEBUG_OPTS} ${JAVA_OPT} " > ${
BASE_DIR}/logs/start.out 2>&1 &
nohup $JAVA ${
JAVA_DEBUG_OPTS} ${
JAVA_OPT} nacos.nacos >> ${
BASE_DIR}/logs/start.out 2>&1 &
Restart
Stop the project first sh distribution/target/nacos-server-{version}/nacos/bin/shutdown.sh
And then restart it sh distribution/target/nacos-server-1.1.3/nacos/bin/startup.sh -m standalone
Successful launch , Check whether the debug port is open
There is already one 6666 The port of LISTEN It's in ;
Configuration debugging
stay Idea Create a new one in remote start-up ;
Start debugging
Start debugging ; Make a breakpoint , Then manage the back-end operations ; Look at the effect
Debugging successful
The project started , The debugging is also successful ; Then we can easily start reading the source code !
边栏推荐
- 石臻臻的2021总结和2022展望 | 文末彩蛋
- Pinduoduo flag insertion remarks API
- Kotlin function
- 研究:数据安全工具在 60% 的情况下无法抵御勒索软件
- Introduction to relational model theory
- 2021.12.16-2021.12.20 empty four hand transaction records
- GNN(pytorch-geometric)
- Reshape the power of multi cloud products with VMware innovation
- Experimental design - using stack to realize calculator
- DNS的原理介绍
猜你喜欢
Simply take stock reading notes (4/8)
Pytoch loads the initialization V3 pre training model and reports an error
Redis clean cache
Lepton 无损压缩原理及性能分析
About LDA model
Hexadecimal conversion summary
JDBC exercise - query data encapsulated into object return & simple login demo
【云原生】Nacos中的事件发布与订阅--观察者模式
Tips and tricks of image segmentation summarized from 39 Kabul competitions
Keras implements verification code identification
随机推荐
stm32和电机开发(从架构图到文档编写)
Pytorch two-layer loop to realize the segmentation of large pictures
Add a new cloud disk to Huawei virtual machine
DNS的原理介绍
Full text search of MySQL
Transactions from January 6 to October 2022
2021.12.16-2021.12.20 empty four hand transaction records
Taobao short videos are automatically released in batches without manual RPA open source
Resnet18 actual battle Baoke dream spirit
How can labels/legends be added for all chart types in chart. js (chartjs.org)?
A possible investment strategy and a possible fuzzy fast stock valuation method
【云原生】Nacos-TaskManager 任务管理的使用
以VMware创新之道,重塑多云产品力
你的下一台电脑何必是电脑,探索不一样的远程操作
Detailed steps for upgrading window mysql5.5 to 5.7.36
超高效!Swagger-Yapi的秘密
Pytoch monolayer bidirectional_ LSTM implements MNIST and fashionmnist data classification
GPON other manufacturers' configuration process analysis
Wechat enterprise payment to change access, open quickly
研究:数据安全工具在 60% 的情况下无法抵御勒索软件