Consul 注册中心接入
<p class="shortdesc">本示例快速上手 Consul 接入注册中心,应用微服务化,方便微服务信息注册与发现。</p>
<section class="section prereq" id="dc_apaas_cfg_0137__prereq_i4d_3yj_fsb"><div class="tasklabel"><h2 class="doc-tairway">前提条件</h2></div>
<p class="p">在开始开发前,请确保您已经完成以下工作:</p>
<ul class="ul" id="dc_apaas_cfg_0137__ul_ojn_3yj_fsb">
<li class="li">成功运行Hello world。</li>
<li class="li">已准备好 Consul 注册中心。</li>
</ul>
</section>
<section><div class="tasklabel"><h2 class="doc-tairway">操作步骤</h2></div><ol class="ol steps"><li class="li step stepexpand">
<span class="ph cmd"><strong class="ph b">pom.xml文件配置</strong></span>
<div class="itemgroup info">
<p class="p">pom.xml引入pafa-cloud-service-starter、spring-cloud-starter-consul-discovery,排除spring-cloud-starter-netflix-eureka-client依赖。</p>
<p class="p">核心框架 1.10.13.RELEASE 2.6.14.RELEASE HT2.2.9.RELEASE HT2.3.2.RELEASE
及以上版本支持。</p>
<div class="p">
<pre class="pre codeblock" id="dc_apaas_cfg_0137__codeblock_qml_kyj_fsb"><code><dependencies>
<dependency>
<groupId>com.pingan.pafa.cloud</groupId>
<artifactId>pafa-cloud-service-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.pingan.pafa.cloud</groupId>
<artifactId>pafa-cloud-dependencies</artifactId>
<version>{版本参考核心框架简介}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- pafa cloud 1.X.RELEASE请添加如下依赖管理 -->
<dependency>
<groupId>com.ecwid.consul</groupId>
<artifactId>consul-api</artifactId>
<version>1.4.5</version>
</dependency>
</dependencies>
</dependencyManagement></code></pre>
</div>
</div>
</li><li class="li step stepexpand">
<span class="ph cmd"><strong class="ph b">bootstrap配置文件</strong></span>
<div class="itemgroup info">示例:<div class="p">
<pre class="pre codeblock" id="dc_apaas_cfg_0137__codeblock_qy5_4yj_fsb"><code>spring:
application:
name: service-a
cloud:
consul:
enabled: true
host: localhost
port: 8500
discovery:
preferIpAddress: true
pafa-cloud:
namespace-enabled: true
namespace: stg2
ignore-management: true</code></pre>
</div><table class="table" id="dc_apaas_cfg_0137__table_xrx_pyj_fsb"><caption></caption><colgroup><col><col><col><col></colgroup><thead class="thead">
<tr class="row">
<th class="entry align-left" id="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__1">
<p class="p">名称</p>
</th>
<th class="entry align-left" id="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__2">
<p class="p">是否必填</p>
</th>
<th class="entry align-left" id="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__3">
<p class="p">说明</p>
</th>
<th class="entry align-left" id="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__4">
<p class="p">默认值</p>
</th>
</tr>
</thead><tbody class="tbody">
<tr class="row">
<td class="entry align-left" headers="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__1 ">
<p class="p">spring.application.name</p>
</td>
<td class="entry align-left" headers="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__2 ">
<p class="p">是</p>
</td>
<td class="entry align-left" headers="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__3 ">
<p class="p">服务名称</p>
</td>
<td class="entry align-left" headers="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__4 "></td>
</tr>
<tr class="row">
<td class="entry align-left" headers="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__1 ">
<p class="p">spring.cloud.consul.enabled</p>
</td>
<td class="entry align-left" headers="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__2 ">
<p class="p">否</p>
</td>
<td class="entry align-left" headers="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__3 ">
<p class="p">是否使用consul</p>
</td>
<td class="entry align-left" headers="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__4 ">
<p class="p">true</p>
</td>
</tr>
<tr class="row">
<td class="entry align-left" headers="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__1 ">
<p class="p">spring.cloud.consul.host</p>
</td>
<td class="entry align-left" headers="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__2 ">
<p class="p">是</p>
</td>
<td class="entry align-left" headers="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__3 ">
<p class="p">consul的主机地址</p>
</td>
<td class="entry align-left" headers="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__4 ">
<p class="p">无</p>
</td>
</tr>
<tr class="row">
<td class="entry align-left" headers="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__1 ">
<p class="p">spring.cloud.consul.port</p>
</td>
<td class="entry align-left" headers="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__2 ">
<p class="p">是</p>
</td>
<td class="entry align-left" headers="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__3 ">
<p class="p">consul的端口</p>
</td>
<td class="entry align-left" headers="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__4 ">
<p class="p">无</p>
</td>
</tr>
<tr class="row">
<td class="entry align-left" headers="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__1 ">
<p class="p">spring.cloud.consul.discovery.preferIpAddress</p>
</td>
<td class="entry align-left" headers="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__2 ">
<p class="p">否</p>
</td>
<td class="entry align-left" headers="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__3 ">
<p class="p">是否优先使用IP地址注册</p>
</td>
<td class="entry align-left" headers="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__4 ">
<p class="p">false</p>
</td>
</tr>
<tr class="row">
<td class="entry align-left" headers="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__1 ">
<p class="p">spring.cloud.consul.discovery.pafa-cloud.namespace-enabled</p>
</td>
<td class="entry align-left" headers="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__2 ">
<p class="p">否</p>
</td>
<td class="entry align-left" headers="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__3 ">
<p class="p">是否开启支持consul namespace隔离</p>
</td>
<td class="entry align-left" headers="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__4 ">
<p class="p">false</p>
</td>
</tr>
<tr class="row">
<td class="entry align-left" headers="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__1 ">
<p class="p">spring.cloud.consul.discovery.pafa-cloud.namespace</p>
</td>
<td class="entry align-left" headers="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__2 ">
<p class="p">否</p>
</td>
<td class="entry align-left" headers="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__3 ">
<p class="p">namespace 值,需开启 namespace 隔离</p>
</td>
<td class="entry align-left" headers="dc_apaas_cfg_0137__table_xrx_pyj_fsb__entry__4 ">
<p class="p">false</p>
</td>
</tr>
</tbody></table></div>
</li></ol></section>
<section class="section postreq" id="dc_apaas_cfg_0137__postreq_ur5_yjr_fsb"><div class="tasklabel"><h2 class="doc-tairway">后续操作</h2></div>
<p class="p">如果同时引用了eureka、consul的注册中心starter包,因不支持多注册中心,应用启动会报错。解决方式:可配置禁止启动eureka即可,请在配置bootstrap文件。</p>
<p class="p">示例:</p>
<pre class="pre codeblock" id="dc_apaas_cfg_0137__codeblock_uwl_tyj_fsb"><code>eureka:
client:
enabled: false</code></pre>
<table class="table" id="dc_apaas_cfg_0137__table_izs_5yj_fsb"><caption></caption><colgroup><col><col><col><col></colgroup><thead class="thead">
<tr class="row">
<th class="entry" id="dc_apaas_cfg_0137__table_izs_5yj_fsb__entry__1">名称</th>
<th class="entry" id="dc_apaas_cfg_0137__table_izs_5yj_fsb__entry__2">是否必填</th>
<th class="entry" id="dc_apaas_cfg_0137__table_izs_5yj_fsb__entry__3">说明</th>
<th class="entry" id="dc_apaas_cfg_0137__table_izs_5yj_fsb__entry__4">默认值</th>
</tr>
</thead><tbody class="tbody">
<tr class="row">
<td class="entry" headers="dc_apaas_cfg_0137__table_izs_5yj_fsb__entry__1 ">
<p class="p">eureka.client.enabled</p>
</td>
<td class="entry" headers="dc_apaas_cfg_0137__table_izs_5yj_fsb__entry__2 ">
<p class="p">否</p>
</td>
<td class="entry" headers="dc_apaas_cfg_0137__table_izs_5yj_fsb__entry__3 ">
<p class="p">是否启用eureka</p>
</td>
<td class="entry" headers="dc_apaas_cfg_0137__table_izs_5yj_fsb__entry__4 ">
<p class="p">true</p>
</td>
</tr>
</tbody></table>
</section>
提交成功!非常感谢您的反馈,我们会继续努力做到更好!