Nacos、Seata和Sentinel部署
流程概览
前置工作
需要您部署好mysql、redis、elaticsearch、rabbitmq 这些基础设施。详情参考:基础设施部署
nacos配置文件准备
nacos的安装
基于docker部署文档:Nacos安装文档
nacos配置文件导入
tip
我们已经准备好了seata和javashop在nacos中的配置包,需要导入到nacos,然后在修改相应的配置项
请下载下面的两个文件包导入到nacos中:
注意:
- seata的group是: SEATA_GROUP
- javashop的group是:DEFAULT_GROUP
seata的安装与配置
Seata服务端配置
在启动seata server之前我们需要配置好seata相关参数,我们可以选择使用数据库来持久化,相应的配置文件为:
group | dataid | 说明 |
---|---|---|
SEATA_GROUP | store.mode | 根据情况选择:redis、db |
创建seata所用的数据库,并导入如下sql:
然后修改如下配置:
dataid | 说明 | 可选值 |
---|---|---|
store.db.datasource | db模式数据源类型 | dbcp、druid、hikari;无默认值,store.mode=db时必须指定。 |
store.db.dbType | db模式数据库类型 | mysql、oracle、db2、sqlserver、sybaee、h2、sqlite、access、postgresql、oceanbase;无默认值,store.mode=db时必须指定。 |
store.db.driverClassName | db模式数据库驱动 | |
store.db.url | db模式数据库url | |
store.db.user | db模式数据库账户 | |
store.db.password | db模式数据库密码 |
Seata服务启动
经过上述配置文件的修改,我们已经做好了seata的启动工作。
默认使用docker,非docker版
创建配置文件,执行
cd /opt/data
mkdir seata-config
vi registry.conf
粘贴如下内容(注意修改那nacos连接地址):
registry {
# file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
type = "nacos"
nacos {
application = "seata-server"
serverAddr = "192.168.2.186:8848"
group = "SEATA_GROUP"
namespace = "public"
cluster = "default"
username = "nacos"
password = "nacos"
}
}
config {
# file、nacos 、apollo、zk、consul、etcd3
type = "nacos"
nacos {
serverAddr = "192.168.2.186:8848"
namespace = "public"
group = "SEATA_GROUP"
username = "nacos"
password = "nacos"
}
}
执行创建命令(注意修改SEATA_IP为服务器内网ip)
docker run --rm -d --name seata-server \
-p 8091:8091 \
-e SEATA_IP=192.168.2.186 \
-e SEATA_PORT=8091 \
-e SERVER_NODE=1 \
-e SEATA_CONFIG_NAME=file:/root/seata-config/registry \
-v /opt/data/seata-config:/root/seata-config \
registry.cn-beijing.aliyuncs.com/javashop-k8s-images/seata:1.3.0
验证,查看nacos中的服务列表:
修改seata-client端的配置
javashop已经集成了seata client,相关的配置在DEFAULT_GROUP.seata-client.yaml中,关键配置为registry.server-addr,需要修改成nacos的地址
其他配置参数意义请参考:
集群版参考:
sentinel控制台
第一步:安装
docker run --rm -d -p 8081:8080 --name=sentinel registry.cn-beijing.aliyuncs.com/javashop-k8s-images/sentinel-dashboard:1.8.0
参考:
第二步:修改sentinel控制台地址
Javashop已经集成了sentinel的客户端,需要我们在配置中心修改相应的地址,配置文件位置为:DEFAULT_GROUP.sentinel.yaml,我们需要修改spring.cloud.sentinel中相应的参数:
注:修改sentinel控制台地址,用上面命令端口应该是8081,ip为所在服务器IP地址
修改nacos地址
sentinel规则配置
在sentinel.yaml中指定了nacos作为配置规则数据源,规则的dataid规则为:
${spring.application.name}-{rule-type}-rules
如需指定某服务的sentinel规则,需要新建相应的配置。
配置文件修改
Javashop数据库参数配置
Javashop每个服务的数据库需要单独配置,配置文件位置见下表:
group | dataid | 说明 |
---|---|---|
DEFAULT_GROUP | system-service.yaml | 系统服务数据库 |
DEFAULT_GROUP | trade-service.yaml | 交易服务数据库 |
DEFAULT_GROUP | statistics-service.yaml | 统计服务数据库 |
DEFAULT_GROUP | promotion-service.yaml | 促销服务数据库 |
DEFAULT_GROUP | payment-service.yaml | 支付服务数据库 |
DEFAULT_GROUP | member-service.yaml | 会员服务数据库 |
DEFAULT_GROUP | live-video-service.yaml | 直播服务数据库 |
DEFAULT_GROUP | goods-service.yaml | 商品服务数据库 |
DEFAULT_GROUP | consumer.yaml | 消费者服务数据库 |
DEFAULT_GROUP | distribution-service.yaml | 分销服务数据库 |
分别打开上述配置文件,编辑其中的数据库参数:
其他基础设施的配置
其他基础设施:nacos发现服务、redis、elasticsearch、rabbitmq配置在 DEFAULT_GROUP.common.yaml中:
请根据具体情况设置相应参数