NACOS部署,微服务框架之NACOS-单机、集群方式部署

一、部署模式


1、单机模式-用于测试和单机使用;

2、集群模式-用于生产环境、确保高可用;

3、多数据中心-多用于数据中心场景;

二、单机模式部署

1、必要前提

  • 安装jdk

    具体安装步骤略

    [root@loaclhost jier]# java -version
    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)
    [root@loaclhost jier]#
    
    
  • 安装mysql

    在0.7版本之前,在单机模式时nacos使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况。0.7版本增加了支持mysql数据源能力,具体的操作步骤:

    1.安装数据库,版本要求:5.6.5+,貌似不支持8.0以上的版本,需注意

    2.初始化mysql数据库,数据库初始化文件:nacos-mysql.sql

    3.修改conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。

spring.datasource.platform=mysql
 
db.num=1
db.url.0=jdbc:mysql://11.162.196.16:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=nacos_devtest
db.password=youdontknow

2、安装nacos

下载Nacos,地址如下:

使用1.3.1版本吧,1.3.2版本貌似有点儿问题,待研究

https://github.com/alibaba/nacos/releases/tag/1.3.1

https://github.com/alibaba/nacos/releases/tag/1.3.2

3、上传解压

[root@loaclhost jier]# tar xf nacos-server-1.3.1.tar.gz 
[root@loaclhost jier]# ls
nacos  nacos-server-1.3.1.tar.gz

4、启动Nacos

[root@loaclhost jier]# cd nacos
[root@loaclhost nacos]# ./bin/startup.sh -m standalone

5、查看启动日志

logs/start.out  # 无ERROR错误即表示成功

如果报错如下:

nacos安装 Cannot get LocalHost InetAddress, please check your network!

/etc/hosts文件中写上ip地址和主机名,再次重启即可。

6、开启防火墙

默认端口是8848,如果要修改的话,需要修改conf/application.properties文件;

[root@loaclhost nacos]# firewall-cmd --add-port=8848/tcp --permanent
Success
[root@loaclhost nacos]# firewall-cmd --reload
Success
[root@loaclhost nacos]# 

7、浏览器访问

PS:在服务启动的过程中就会在日志中输出地址,例如:

http://10.1.1.15:8848/nacos/index.html

默认用户名/密码:nacos/nacos

8、采用数据库

PS:使用数据库的话,好处是让数据具有了持久性,所有的信息都写入了数据库里面

  • 安装数据库过程略;

新建数据库:

mysql> create database nacos DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.01 sec)

mysql> create user 'nacos'@'%' identified by '123456';
Query OK, 0 rows affected (0.01 sec)

mysql> 
mysql> grant ALL PRIVILEGES on nacos.* to 'nacos'@'%';
Query OK, 0 rows affected (0.02 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql> exit
Bye

找到初始化sql:

nacos服务的conf目录下找到nacos-mysql.sql文件,使用以下命令导入我们上面创建的nacos数据库里面:

[root@loaclhost nacos]# mysql -unacos -p123456 nacos < conf/nacos-mysql.sql

导入成功之后登陆数据库进行验证:

[root@loaclhost nacos]# mysql -unacos -p
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| nacos              |
+--------------------+
2 rows in set (0.00 sec)

mysql> 
mysql> use nacos;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+----------------------+
| Tables_in_nacos      |
+----------------------+
| config_info          |
| config_info_aggr     |
| config_info_beta     |
| config_info_tag      |
| config_tags_relation |
| group_capacity       |
| his_config_info      |
| permissions          |
| roles                |
| tenant_capacity      |
| tenant_info          |
| users                |
+----------------------+
12 rows in set (0.00 sec)

mysql> 

修改nacosapplication.properties文件:

[root@loaclhost nacos]# vim conf/application.properties
#*************** Config Module Related Configurations ***************#
### If user MySQL as datasource:
spring.datasource.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://10.1.1.15:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=nacos
db.password=123456

重启nacos服务:

[root@loaclhost nacos]# ./bin/shutdown.sh 
The nacosServer(1230) is running...
Send shutdown request to nacosServer(1230) OK
[root@loaclhost nacos]# ./bin/startup.sh -m standalone
[root@loaclhost nacos]ps -ef | grep nacose
root     22200     1 99 05:06 pts/0    00:00:12 /usr/local/jdk1.8/bin/java -Xms512m -Xmx512m -Xmn256m -Dnacos.standalone=true -Djava.ext.dirs=/usr/local/jdk1.8/jre/lib/ext:/usr/local/jdk1.8/lib/ext -Xloggc:/home/jier/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/home/jier/nacos/plugins/health,/home/jier/nacos/plugins/cmdb,/home/jier/nacos/plugins/mysql -Dnacos.home=/home/jier/nacos -jar /home/jier/nacos/target/nacos-server.jar --spring.config.location=classpath:/,classpath:/config/,file:./,file:./config/,file:/home/jier/nacos/conf/ --logging.config=/home/jier/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288 nacos.nacos
root     22368 10295  0 05:06 pts/0    00:00:00 grep --color=auto nacos
[root@loaclhost nacos]#

再次登陆:

http://10.1.1.15:8848/nacos/index.html

三、集群部署

PS:为了节约测试资源,我是在一台服务器上采用了不同的端口来进行集群测试的,集群数量貌似没有限制

1、部署同样的版本

  • 采用同样的数据库连接配置(集群必须使用数据库)

  • 不同服务器的相同端口

  • 同一台服务器上的不同端口(否则会端口冲突)

2、拷贝文件

[root@loaclhost nacos]# cp conf/cluster.conf.example conf/cluster.conf

3、编辑cluster.conf文件

在此文件中添加节点信息,如下(有几个节点,就写几个):

剩余内容请转至VX公众号 “运维家” ,回复 “163” 查看。

------ “运维家” ,回复 “163” ------
------ “运维家” ,回复 “163” ------
------ “运维家” ,回复 “163” ------

linuxmpi安装,linux的特点是什么,linux定位段错误的是,linux流量攻击,linuxreadv,linux停止ftp服务,centos和linux是一个操作系统吗,linuxqt32,linux建立递归目录树,gpsrtk使用linux,linuxjad,linux服务器启动方法,linux嵌入式tcp协议栈,psqllinux登录,linux下载tar的包,linux的文件挂载方式,linux给用户sudo全息,linux创建pv,linux安装pycham,linux服务器加网卡。

### Nacos与Dubbo在微服务架构中的集成使用 #### 一、环境准备 为了成功地将Nacos作为注册中心集成到基于Spring Boot的应用程序中并利用Dubbo的服务治理特性,需确保开发环境中已安装必要的工具服务。这包括但不限于JDK、Maven或Gradle等构建工具,以及运行Nacos服务器所需的Docker容器或其他部署方式。 对于版本兼容性问题,在选择具体的技术栈组合时应特别注意各组件之间的适配情况[^3]。推荐采用经过测试验证过的稳定版次来减少潜在的风险因素影响项目进度。 #### 二、引入依赖项 在`pom.xml`文件内添加如下所示的相关库支持: ```xml <dependencies> <!-- Spring Boot Starter --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- Dubbo Spring Boot Starter --> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>${dubbo.version}</version> </dependency> <!-- Nacos Discovery --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> ... </dependencies> ``` 以上代码片段展示了如何通过Maven管理器向工程导入所需的基础包集合,其中包含了对HTTP请求处理的支持、Apache Dubbo的核心功能模块及其针对云原生场景优化后的增强型插件——即能够无缝对接阿里集团内部广泛使用的动态配置管理系统Nacos实例完成自动化运维操作[^1]。 #### 三、配置应用属性 编辑位于资源目录下的`application.properties`文档,定义好连接至远端服务中心的基本参数设定: ```properties server.port=8081 # dubbo config dubbo.application.name=demo-provider dubbo.registry.address=nacos://localhost:8848 dubbo.protocol.name=dubbo dubbo.protocol.port=-1 # nacos discovery properties spring.cloud.nacos.discovery.server-addr=localhost:8848 ``` 上述设置指定了当前节点在网络通信过程中所监听的具体地址端口;明确了应用程序名称以便于后续跟踪定位;声明了目标集群的位置信息(此处假设本地启动了一个单机模式下工作的Nacos Server),并通过指定协议类型为“dubbo”,允许客户端发起跨进程间交互调用的同时也启用了内置的安全机制防止未授权访问行为的发生[^2]。 #### 四、编写业务逻辑代码 创建一个简单的RESTful API控制器类,并在其内部注入由框架自动生成好的代理对象用于执行远程过程呼叫动作: ```java @RestController @RequestMapping("/api/v1") public class DemoController { @Reference(version = "1.0.0", url = "dubbo://demo-consumer") private IDemoService demoService; @GetMapping("/hello/{name}") public String sayHello(@PathVariable String name){ return this.demoService.sayHello(name); } } ``` 此段示例说明了怎样借助注解形式快速绑定接口实现体,从而简化编码流程提高工作效率。当接收到外部传入的消息后会自动转发给对应的处理器函数做进一步解析加工处理,最终返回预期的结果集给前端页面显示出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值