SpringCloud 框架的演变由来是就很少介绍了。git
我这里使用spring
IntelliJ IDEA (2018.2)api
JDK:1.8springboot
Maven 3.3.9bash
直接上干货,方便学习(不喜勿喷)~服务器
主要能够理解为三个部分app
1.Eureka Server:用于提供服务注册与发现功能,Eureka没有提供后台的存储而是将服务保存在内存的注册中心,经过心跳来保持最新状态。负载均衡
2.Eureka Provider:服务提供者是Eureka的客户端,向服务端注册服务、向服务器发送心跳、获取服务注册列表。当服务注册到服务端时,会提供本身的元信息(主机、端口、服务名等)。框架
3.Eureka Consumer:对于注册发布到服务端的服务,服务消费者能够对其进行查找与调用,服务调用者也是一个Eureka客户端,但其主要职责是查找与调用服务。maven
File -> New -> Project - Maven
建立一个maven项目
点击next,建立包名
建立完目录结构,并删除src文件,pom.xml 文件暂时不用修改,进入第三节吧。
选中scloud项目,右击 New - Module - Spring Initializr (springcloud是一个基于springboot实现的一系列框架的集合,若是你的父pom.xml已经依赖Spring-boot 这个就建立maven模块吧)
生成以下目录结构
修改主工程的pom.xml 和 eureka_server 的pom.xml 文件
主工程的pom.xml
eureka_server 模块 pom.xml
@SpringBootApplication
@EnableEurekaServer public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
复制代码
到此,eureka_server 服务已经配置完成,如今咱们启动项目 访问 http://localhost:8666 端口
当服务提供者向server注册时,它会提供一些元数据,例如主机和端口,URL,主页等。Eureka server 从每一个client实例接收心跳消息。 若是心跳超时,则一般将该实例从注册server中删除。
建立步骤相似eureka_server模块,依赖不同,以下图
建立完成修改项目下的pom.xml
经过注解@EnableEurekaClient 代表本身是一个eureka client。
@SpringBootApplication
@EnableEurekaClientpublic class EurekaClientApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaClientApplication.class, args);
}
}
复制代码
为了简单的演示效果,我在程序入口在加入一个Restful接口
@SpringBootApplication
@EnableEurekaClient@RestControllerpublic class EurekaClientApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaClientApplication.class, args);
}
@Value("${server.port}")Stringport;
@RequestMapping("/hello")
public String home(@RequestParam(value ="name", defaultValue ="gdl") String name) {
return "hello: " + name +" ,from port:" +port;
}
}
复制代码
建立步骤和步骤四建立服务提供者同样。
而后修改项目下的pom.xml文件 和 服务提供者相似,修改下包名等便可。
nice~,至此 SpringCloud Eureka服务发现与注册已经讲解完毕,下一章在服务消费者中集成Feign提供一个负载均衡的http客户端。
附源码地址:gitee.com/dolan/sclou…
并切换到f_eureka 分支!!!