1. 快速开始
1.1. 导入初始化表结构
执行 client-implement/client-mysql/sql/schema.sql 数据库脚本导入初始化表结构。
1.2. 加入Maven依赖
分别在consumer和producer服务中加入依赖
<dependency>
<groupId>cn.codeforfun</groupId>
<artifactId>discovery-client-mysql</artifactId>
<version>1.0.3</version>
</dependency>
1.3. 编写配置文件
-
consumer配置
server:
port: 50021
spring:
application:
name: client-consumer
datasource:
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/codeforfun-discovery
-
producer配置
server:
port: 50011
spring:
application:
name: client-producer
datasource:
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/codeforfun-discovery
1.4. 编写服务调用代码
-
consumer允许FeignClient:
@EnableFeignClients(basePackages = "com.example.feign")
-
consumer FeignClient:
@FeignClient("client-producer")
public interface TestClient {
@GetMapping("/test1")
String test1();
}
-
consumer接口
@RestController
public class TestController {
@Resource
TestClient testClient;
@GetMapping("/test")
public String test() {
return testClient.test1();
}
}
-
producer接口
@RestController
public class TestController {
@GetMapping("/test1")
public String test1() {
return "producer client test1";
}
}
1.5. 启动服务
分别启动producer和consumer服务,等待程序启动。
访问 http://localhost:50011/test1 后显示 producer client test1 则表示成功。
访问 http://localhost:50021/test 后同样显示 producer client test1 则表示成功。
1.6. 示例代码
示例代码在 example 目录下,example-client-producer为被调用方示例代码,example-client-consumer为调用方示例代码。
2. 目前支持的数据存储
-
MySQL
-
ElasticSearch
3. 配置项
key |
说明 |
默认值 |
discovery.service.service-active-interval |
服务激活间隔,单位:秒。 每隔多长时间激活一次自身服务 |
10 |
discovery.service.refresh-service-list-interval |
刷新服务列表间隔,单位:秒。 每隔多长时间刷新一次服务列表 |
20 |
discovery.service.service-active-timeout |
服务激活超时时间,单位:秒。 超过这个时间后该服务就会被认为是有故障的,之后就不会调用这个服务 |
60 |
discovery.service.name |
服务名,如果没设置的话会取(spring.application.name)的值,如果都没有则报错 |
|
discovery.service.port |
服务端口,如果没设置的话会取(server.port)的值,如果还是没有则默认8080 |
8080 |
discovery.service.host |
服务地址,如果没设置会取本地ip |
本地ip |
3.1. MySQL配置项
由于MySQL是使用 mysql-connector-java 和 spring-boot-starter-jdbc 实现的,所以配置项也是直接继承这两个。没用过的话,正常配置数据源就行了。
3.2. ElasticSearch配置项
由于ElasticSearch是使用 spring-boot-starter-data-elasticsearch 实现的,所以配置项也是直接继承下来的。