时间:2024-6-20 作者:老大夫 分类: SpringCloud
各个微服务在不同端口都是灵活变动的,如果在代码里写死,修改会很麻烦。
不使用Eureka:1.停止更新、2.使用麻烦,有自我保护机制、3.注册中心与业务模块耦合度高、4.阿里的Nacos
Consult已经纳入Spring管理
<!--SpringCloud consul discovery -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
spring:
application:
name: cloud-payment-service
cloud:
consul:
host: localhost
port: 8500
discovery:
service-name: ${spring.application.name}
启动服务,就会被发现了。(首次入驻服务可能比较慢)。
使用微服务名称来定位地址
P是一定要保证的。
AP和CP的区别就是当各个服务之间数据未完成同步时数据不一致时,
AP注重可用性拿到数据就会返回,
CP注重一致性,未完成同步拿不到数据。
Consul既可以完成服务注册还可以完成配置中心,而Eureka是不支持配置中心的。
<!--SpringCloud consul config-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
bootstrap.yml
spring:
application:
name: cloud-payment-service
####Spring Cloud Consul for Service Discovery
cloud:
consul:
host: localhost
port: 8500
discovery:
service-name: ${spring.application.name}
config:
profile-separator: '-' # default value is ",",we update '-'
format: YAML
# config/cloud-payment-service/data
# /cloud-payment-service-dev/data
# /cloud-payment-service-prod/data
application.yml
server:
port: 8001
# ==========applicationName + druid-mysql8 driver===================
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/db2024?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true
username: root
password: 123456
profiles:
active: dev # 多环境配置加载内容dev/prod,不写就是默认default配置
# ========================mybatis===================
mybatis:
mapper-locations: classpath:mapper/*.xml
type-aliases-package: com.atguigu.cloud.entities
configuration:
map-underscore-to-camel-case: true
建立config文件夹
在config中继续建立文件夹
再在文件夹中建立data文件就可以了,注意:文本不能使用缩进tab,只能是一个空格
spring:
application:
name: cloud-payment-service
####Spring Cloud Consul for Service Discovery
cloud:
consul:
host: localhost
port: 8500
discovery:
service-name: ${spring.application.name}
config:
profile-separator: '-' # default value is ",",we update '-'
format: YAML
watch:
wait-time: 1//配置同步等待时间,默认55秒
将Consul注册进Windows服务中,开机就会启动,这样微服务启动就会注册进来
@echo.服务启动......
@echo off
@sc create Consul binpath= "C:\DEV\myConsulData\consul.exe agent -server -ui -bind=127.0.0.1 -client=0.0.0.0 -bootstrap-expect 1 -data-dir C:\DEV\myConsulData\mydata "
@net start Consul
@sc config Consul start= AUTO
@echo.Consul start is OK......success
@pause
推荐阅读: