我拥有的领事设置:
我有一个由三个节点和一个数据中心组成的领事集群。
设想
我已经启动了一个 spring 服务,它使用我的域名 xxx.mydomain.com 的 ngnix 在 consul 集群上注册自己到启动时的任何一个代理。
当注册代理节点关闭时,完整的服务将从领事集群中注销。
此外,当使用健康检查端点获取服务健康状态时,那里没有服务。
我在春季服务中所做的配置
---
spring:
cloud:
consul:
token: a528cdde-a9fe-8b96-f0e9-xxxxxxxxxx
enabled: true
host: xxx.mydomain.com
port: 6014
scheme: https
retry:
initial-interval: 5000
max-attempts: 6
max-interval: 600000
multiplier: 3
discovery:
instanceId: ${spring.application.name}:${spring.cloud.client.hostname}
preferIpAddress: true
ipAddress: ${spring.cloud.client.hostname}
healthCheckPath: /${spring.application.name}/actuator/health
healthCheckInterval: 20s
port: 8080
catalogServicesWatch:
enabled: false
discovery:
client:
composite-indicator:
enabled: false
profiles: test
---
我添加了春季领事听众
@Configuration
@ConditionalOnConsulEnabled
@ConditionalOnMissingBean(type= "org.springframework.cloud.consul.discovery.ConsulLifecycle")
@AutoConfigureAfter(ConsulAutoServiceRegistrationAutoConfiguration.class)
public class ConsulListener implements ApplicationContextAware {
@Autowired(required=false)
private ConsulAutoServiceRegistration registration;
public void setApplicationContext(ApplicationContext context) throws BeansException {
if (registration != null){
registration.start();
}
}
}
实例上的领事配置
{
"server": true,
"node_name": "102",
"datacenter": "dc_1",
"data_dir": "C:\\consul\\data",
"bind_addr": "192.168.X.102",
"client_addr": "0.0.0.0",
"advertise_addr": "192.168.X.102",
"bootstrap_expect": 2,
"retry_join": [
"192.168.X.101",
"192.168.X.102",
"192.168.X.100"
],
"enable_script_checks": true,
"ui": true,
"log_level": "DEBUG"
}