springcloud实战之2 服务注册与发现(eureka实现)
来源:互联网 发布:java.util.base64 编辑:程序博客网 时间:2024/06/05 14:31
服务注册与发现
由于Spring Cloud为服务治理做了一层抽象接口,所以在Spring Cloud应用中可以支持多种不同的服务治理框架,比如:Netflix Eureka、Consul、Zookeeper。在Spring Cloud服务治理抽象层的作用下,我们可以无缝地切换服务治理实现,并且不影响任何其他的服务注册、服务发现、服务调用等逻辑。
Spring Cloud Eureka是Spring Cloud Netflix项目下的服务治理模块。而Spring Cloud Netflix项目是Spring Cloud的子项目之一,主要内容是对Netflix公司一系列开源产品的包装,它为Spring Boot应用提供了自配置的Netflix OSS整合。通过一些简单的注解,开发者就可以快速的在应用中配置一下常用模块并构建庞大的分布式系统。它主要提供的模块包括:服务发现(Eureka),断路器(Hystrix),智能路由(Zuul),客户端负载均衡(Ribbon)等。
Springcloud庞大的分布式系统:
服务发现与注册(Eureka)
- 断路器(Hystrix)
- 智能路有,服务网关(Zuul)
- 客户端负载均衡(Ribbon)
- 分布式配置中心(config)
- 消息总线(Bus)
- 安全框架(Security)
- 调度中心(Zookeeper)
本篇介绍如何使用spring-cloud-starter-eureka-server来搭建Spring Cloud服务注册与发现模块。
创建服务注册中心(springcloud-eureka-server)
创建一个提供服务的客户端,并向服务注册中心注册自己。
创建springboot项目
添加依赖
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> <relativePath /></parent><modelVersion>4.0.0</modelVersion><dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency></dependencies><dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Edgware.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies></dependencyManagement>
创建入口类
@EnableEurekaServer@SpringBootApplicationpublic class SpringCloudEurekaServerApplication { public static void main(String[] args) { new SpringApplicationBuilder(SpringCloudEurekaServerApplication.class).web(true).run(args); }}
创建配置文件
新建application.yml
server: port: 8000eureka: instance: hostname: localhost client: registerWithEureka: false fetchRegistry: false serviceUrl: defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
为了与后续要进行注册的服务区分,这里将服务注册中心的端口通过server.port属性设置为8000。
启动入口类,可以发现如下界面
目前没有注册任何应用
创建服务提供方
添加依赖
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> <relativePath /></parent><modelVersion>4.0.0</modelVersion><dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency></dependencies><dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Edgware.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies></dependencyManagement>
创建入口类
使用EnableEurekaClient注解。
@SpringBootApplication@EnableDiscoveryClientpublic class SpringCloudServiceRestApplication { public static void main(String[] args) { SpringApplication.run(SpringCloudServiceRestApplication.class,args) ; }}
创建配置文件
新建application.yml
server: port: 8001spring: application: name: springcloud-service-resteureka: client: serviceUrl: defaultZone: http://localhost:8000/eureka/
创建restful接口
@RestController@RequestMapping(value = "/api/rest")public class RestfulController { @Autowired private RestTemplate restTemplate ; @Value("${server.port}") String port ; @Value("${spring.application.name}") String name ; @GetMapping(value = "/info") public String getInfo(){ return "I am info from port("+port+") from application name("+name+")" ; }}
启动项目
启动入口类项目,发现如下截图
访问服务,截图如下
源码
springcloud-eureka-server
springcloud-service-rest
源码可能在后面的文章中会复用,有部分修改,按照博客操作就行,不是很难的东西
参考资料
netflix-eureka-client-starter
netflix-eureka-server-starter
- springcloud实战之2 服务注册与发现(eureka实现)
- SpringCloud服务的注册与发现(Eureka)
- SpringCloud的服务注册与发现Eureka
- springcloud eureka服务注册与发现
- SpringCloud--服务的注册与发现(Eureka)
- SpringCloud : 服务的注册与发现(Eureka)
- SpringCloud教程一:服务注册与发现(Eureka)
- SpringCloud 之第一篇: 服务的注册与发现(Eureka)
- springcloud(第三篇)springcloud eureka 服务注册与发现
- springcloud(第一篇)springcloud eureka 服务注册与发现
- springcloud(第三篇)springcloud eureka 服务注册与发现 *****
- springcloud(第三篇)springcloud eureka 服务注册与发现
- SpringCloud 学习记录(一):服务注册与发现(eureka+feign)
- springcloud学习笔记一:eureka服务注册与发现
- SpringCloud第一篇-Eureka:服务的注册与发现
- 【Spring Cloud】--SpringCloud的服务注册与发现【Eureka】
- 【微服务架构】SpringCloud之Eureka(服务注册和服务发现基础篇)(二)
- 【微服务架构】SpringCloud之Eureka(服务注册和服务发现基础篇)(二)
- 反射设置和获取值
- python 读取并显示图片的两种方法
- JMM浅析
- 解决APP启动会有短暂的白屏出现
- 八数码第二境界——暴力反向BFS+康托展开判重
- springcloud实战之2 服务注册与发现(eureka实现)
- VsVim配置教程
- 学会用好 Visual Studio Code
- Eclipse中Maveng工程,add dependency没有包,解决办法
- jquery练习9 弹出层样式设置(TBC)
- 图像的梯度(The Gradient of Image)
- 真正的个性化Rss 阅读器
- Cmake编译opencv3.1出现project files may be invalid,编译后的opencv3.1的debug附加依赖项在最后
- 12年经验老程序员的5次转型