SpringCloud-Eureka
父工程
<!--SpringCloud-->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Greenwich.SR1</version>
</dependency>
<!--SpringBoot-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.1.4.RELEASE</version><type>pom</type><scope>import</scope>
</dependency>
</project>
eureka 注册中心
- 依赖
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka-server</artifactId><version>1.4.6.RELEASE</version>
</dependency>
- 启动类开启Eureka服务端
@EnableEurekaServer
- 配置信息
server:port: 7001
# Eureka
eureka:instance:# Eureka服务端的实例名称hostname: localhostclient:# false表示不向Eureka注册自己register-with-eureka: false# false表示自己是注册中心fetch-registry: falseservice-url:# 单机:defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/# 集群(配置要关联的eureka客户端)defaultZone: http://eureka7002:7002/eureka/,http://eureka7003:7003/eureka/
- 主机名称配置文件:C:\Windows\System32\drivers\etc\hosts “ip 名称”
服务提供者
- 依赖
<!--eureka-->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId><version>1.4.6.RELEASE</version>
</dependency>
<!--监控-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!--实体类-->
- 配置信息
server:port: 8081
mybatis:# 别名配置type-aliases-package: com.example.pojo# 配置类的位置config-location: classpath:mybatis/mybatis-config.xml# 扫描映射文件mapper-locations: classpath:mybatis/mapper/*.xml
spring:application:name: springcloud-provider-deptdatasource:username: rootpassword: rooturl: jdbc:mysql://localhost:3306/spring_cloud?useSSL=true&useUnicode=true&charsetEncoding=UTF-8&serverTimezone=UTCdriver-class-name: com.mysql.jdbc.Driver
# eureka
eureka:# 客户端注册client:service-url: # 注册到哪里defaultZone: http://eureka7001:7001/eureka/,http://eureka7002:7002/eureka/,http://eureka7003:7003/eureka/instance:# 设置客户端实例的访问链接描述instance-id: springcloud-provider-dept-8081
# 客户端info配置
info:# 访问 localhost:8081/actuator/info 得到json数据:{"app":{"name":"部门信息"}}app.name: 部门信息
- 启动类添加注解
开启Eureka@EnableEurekaClient
服务发现@EnableDiscoveryClient
import org.springframework.cloud.client.discovery.DiscoveryClient;
// 获取配置信息,得到具体的微服务等
@Autowired
private DiscoveryClient client;
@GetMapping("/discovery")
public Object discovery(){// 获取微服务列表List<String> services = client.getServices();// 获取具体的微服务的信息List<ServiceInstance> instances = client.getInstances("springcloud-provider-dept");return client;
}
消费者
- 引入实体类模块的依赖
- 配置端口号
- 添加配置类
@Configuration
public class ConfigBean {@Beanpublic RestTemplate restTemplate(){return new RestTemplate();}
}
- 无需引入远程服务,直接通过http请求,通过 RestTemplate 实现
@RestController
@RequestMapping("/consumer/dept")
public class DeptController {@Autowiredprivate RestTemplate restTemplate;@GetMapping("/query/{deptNo}")public Dept queryByDeptNo(@PathVariable("deptNo") Long deptNo){return restTemplate.getForObject("http://localhost:8081/dept/query/" + deptNo, Dept.class);}
}