服务提供者搭建集群
服务调用者,依次显示集群中各服务的信息
1)修改服务提供方的controller,打印服务端端口号
package com.czxy.controller;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
/**
* @author 桐叔
* @email liangtong@itcast.cn
*/
@RestController
public class EchoController {
@Resource
private HttpServletRequest request;
@RequestMapping(value = "/echo/{string}", method = RequestMethod.GET)
public String echo(@PathVariable String string) {
int serverPort = request.getServerPort();
return "Hello Nacos Discovery " + string + ":" + serverPort;
}
}
2)编写yml配置
#端口号
server:
port: 8170
spring:
application:
name: service-provider #服务名
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848 #nacos服务地址
#端口号
server:
port: 8270
spring:
application:
name: service-provider #服务名
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848 #nacos服务地址
3)配置idea启动项
-Dspring.profiles.active=8170
查看nacos控制台
3.4.5章节/第4步
内容进行详解A: 共享配置:(过时),使用 shared-configs 替代
?
spring.cloud.nacos.config.shared-dataids
?
spring.cloud.nacos.config.refreshable-dataids
B: 加载多配置:(过时),使用 extension-configs 替代
?
spring.cloud.nacos.config.ext-config[n]
C: 内部规则拼接:?
spring.cloud.nacos.config.prefix
?
spring.cloud.nacos.config.file-extension
?
spring.cloud.nacos.config.group
spring:
application:
name: config-service # 服务名
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848 # nacos 服务地址
# shared-dataids: test1.yml # 4.1 共享配置 (已过时)
# refreshable-dataids: test1.yml
shared-configs: # 4.1 共享配置【最新】
- data-id: test1-1.yml
group: DEFAULT_GROUP
refresh: true
- data-id: test1-2.yml
group: DEFAULT_GROUP
refresh: true
# ext-config: # 4.2 配置多个 (已过时)
# - data-id: test2-1.yml
# group: DEFAULT_GROUP
# refresh: true
# - data-id: test2-2.yml
# group: DEFAULT_GROUP
# refresh: true
extension-configs: # 4.2 配置多个 【最新】
- data-id: test2-1.yml
group: DEFAULT_GROUP
refresh: true
- data-id: test2-2.yml
group: DEFAULT_GROUP
refresh: true
prefix: ${spring.application.name} # 4.3 data ID的前缀,默认服务名
file-extension: yaml # data ID的后缀:config-service.yaml
group: DEFAULT_GROUP # 组名
discovery:
server-addr: 127.0.0.1:8848 #nacos服务地址
后面加载的dataId将覆盖前面加载的dataId设置的内容
查看日志
Located property source: [
BootstrapPropertySource {name='bootstrapProperties-test3-demo.yaml'}, BootstrapPropertySource {name='bootstrapProperties-test3.yaml'}, BootstrapPropertySource {name='bootstrapProperties-test2-2.yml'}, BootstrapPropertySource {name='bootstrapProperties-test2-1.yml'}, BootstrapPropertySource {name='bootstrapProperties-test1.yml'}]
Data ID
、Group
、Namespace
。概念 | 描述 |
---|---|
Data ID | 数据唯一标识,可理解为Spring Cloud应用的配置文件名 |
Group | 用来对Data ID 做集合管理,相当于小分类 |
Namespace | 用于进行租户粒度的配置隔离。相当于大分类 |
组group配置
spring.cloud.nacos.config.group= #组名称
命名空间 namespace配置 注意:namespace的ID
spring.cloud.nacos.config.namespace= #namespace的ID
在nacos 控制台配置namespace
在nacos控制台显示namespace
嵌入式数据库
实现数据存储,0.7版本后增加了mysql存储数据。在conf目录下,提供了nacos-mysql.sql
SQL语句,进行数据库的初始化
要求:5.6+ mysql
注意:如果使用mysql 5.5,需要修改sql语句
提供的SQL语句没有创建database,手动创建nacos_config
application.properties
可以修改数据库配置信息### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config_2_1?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=1234
添加配置信息
检查数据库存储
3个或3个以上Nacos节点才能构成集群
配置数据源
使用内置数据源
startup.cmd -p embedded
使用外置数据源(MySQL,参考4.4.2)
在一台主机配置多个节点的端口号不能连续。
拷贝nacos,并重命名 nacos-2.1.0-8841
配置数据源
修改端口号:8841
配置集群配置文件:拷贝conf/cluster.conf.example
,重名为cluster.conf
启动服务:startup.cmd
成功启动
复制节点nacos-2.1.0-8841,并重命名nacos-2.1.0-8843
修改端口号
启动服务
复制节点nacos-2.1.0-8841,并重命名nacos-2.1.0-8845
修改端口号
启动服务
错误提示:db.num is null
原因:没有配置数据库
错误提示:unable to start embedded tomcat
原因1:没有编写集群配置文件
原因2:安装目录有中文
提示信息:
原因:内存不足,修改分配内存大小
C:\Users\Administrator\AppData\Local\Temp\/librocksdbjni1411968517689619912.dll: Can't find dependent libraries
因:内存不足,修改分配内存大小
[外链图片转存中…(img-0X76yvOW-1705319663136)]
C:\Users\Administrator\AppData\Local\Temp\/librocksdbjni1411968517689619912.dll: Can't find dependent libraries