尚硅谷springcloud2020day12(p95-100)

今天是2020-12-14,开始spring cloud alibaba。
一。nacos简介
简单来说,nacos=eureka+config+bus,替代了eureka和config
二。docker 安装 nacos单机版
算是被网上的错误文章折磨疯了,搞了一个多小时终于找到正确步骤,如下:
1.`docker pull docker pull nacos/nacos-server:1.3.2`
2. mkdir -p /usr/docker/data/nacos/logs/                 
   mkdir -p /usr/docker/data/nacos/init.d/          
   touch /usr/docker/data/nacos/init.d/custom.properties  
   vim /usr/docker/data/nacos/init.d/custom.properties      
3.进入配置文件,粘贴:
server.contextPath=/nacos
server.servlet.contextPath=/nacos
server.port=8848
 
spring.datasource.platform=mysql
 
db.num=1
db.url.0=jdbc:mysql://ip:3306/dbname?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=pwd
 
 
nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
 
management.metrics.export.elastic.enabled=false
 
management.metrics.export.influx.enabled=false
 
 
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{
    
    User-Agent}i
 
 
nacos.security.ignore.urls=/,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/login,/v1/console/health/**,/v1/cs/**,/v1/ns/**,/v1/cmdb/**,/actuator/**,/v1/console/server/**
nacos.naming.distro.taskDispatchThreadCount=1
nacos.naming.distro.taskDispatchPeriod=200
nacos.naming.distro.batchSyncKeyCount=1000
nacos.naming.distro.initDataRatio=0.9
nacos.naming.distro.syncRetryDelay=5000
nacos.naming.data.warmup=true
nacos.naming.expireInstance=true

注意:
(1).数据库url那里,ip是你mysql所在服务器的ip,dbname是你连接的数据库名,如果是mysql8,url后面请添加&serverTimezone=UTC
(2).db.password是你数据库的密码
3.访问你的nacos所在ip:8848/nacos即可
三。注册一个生产者服务到nacos
1.pom文件添加:

  <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    

2.application.yml:

server:
  port: 9001
spring:
  application:
    name: nacos-payment-provider
  cloud:
    nacos:
      discovery:
        server-addr:   #你的ip
management:
  endpoints:
    web:
      exposure:
        include: "*"

3.主启动类添加:@EnableDiscoveryClient
启动后在nacos界面的服务列表即可看到注册的服务
三。注册消费者服务到nacos
1.pom与生产者一致
2.写配置类注入resttemplate,注意,添加@LoadBalanced启动负载均衡功能
3.写控制器使用resttemplate.getforobject调用生产者,注意,这里nacos集成了负载均衡,所以url要按eureka使用ribbon时的写法
四。nacos与其他注册中心的对比
1.nacos支持AP/CP切换,C:要求所有节点在同一时间访问得到的数据必须是一致的,A:要求所有请求都要得到响应
2.AP模式:如果不需要存储服务级别的信息且服务信息是通过nacaos-client注册,且服务能保持与nacos的心跳连接,就可以选择AP模式。当前的spring cloud与dubbo都适用于AP,为了服务的可用性而减弱了一致性,所以AP模式下只支持注册临时实例
3.CP模式:如果需要在服务级别去编辑或者存储配置信息,必须选择CP模式。K8S与DNS服务适用于CP模式,该模式支持注册持久化实例,此时以Raft协议为集群运行模式。注意,该模式下在注册实例之前必须先注册服务,如果服务不存在则返回错误。
今日总结:nacos是真的牛…光是现在看了看可视化界面都不知道比eureka的舒服多少- -

猜你喜欢

转载自blog.csdn.net/qq_44727091/article/details/111178714
今日推荐