SpringCloud教程一:服务注册与发现(Eureka)
来源:互联网 发布:怎样淘宝网购详细步骤 编辑:程序博客网 时间:2024/05/16 10:12
Spring Cloud
Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线)。分布式系统的协调导致了样板模式, 使用Spring Cloud开发人员可以快速地支持实现这些模式的服务和应用程序。他们将在任何分布式环境中运行良好,包括开发人员自己的笔记本电脑,裸机数据中心,以及Cloud Foundry等托管平台。
特性
Spring Cloud专注于提供良好的开箱即用经验的典型用例和可扩展性机制覆盖。
分布式/版本化配置
服务注册和发现
路由
service - to - service调用
负载均衡
断路器
分布式消息传递
SpringCloud分布式开发五大神兽 服务发现——Netflix Eureka 客服端负载均衡——Netflix Ribbon 断路器——Netflix Hystrix 服务网关——Netflix Zuul 分布式配置——Spring Cloud Config
创建服务注册中心eureka server
在这里,我们需要用的的组件上Spring Cloud Netflix的Eureka ,eureka是一个服务注册和发现模块。1:首先创建一个主maven工程
2:在1创建的的工程中创建model,名称为server,作为eureka server
创建过程如下
创建完成后的pom.xml如下
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.springcloud</groupId> <artifactId>server</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>server</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.8.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <spring-cloud.version>Edgware.RELEASE</spring-cloud.version> </properties> <dependencies> <!--eureka server --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>
4.启动服务注册中心,创建完成后的pom.xml如下
只需要一个注解@EnableEurekaServer,这个注解需要在springboot工程的启动application类上加
/** * 启动一个服务注册中心 * * @author wang_ */@EnableEurekaServer@SpringBootApplicationpublic class ServerApplication { public static void main(String[] args) { SpringApplication.run(ServerApplication.class, args); }}5:修改配置文件:
#端口号server.port= 7080#eureka.instance.hostname= localhost##false来表明自己是一个eureka servereureka.client.register-with-eureka=false ##false来表明自己是一个eureka servereureka.client.fetch-registry=falseeureka.client.service-url.defaultZone= http://${eureka.instance.hostname}:${server.port}/eureka/#关闭springboot自带的iocspring.mvc.favicon.enabled = false6:启动工程,访问http://127.0.0.1:7080/
因为现在没有注册服务,所以显示没有服务被发现
创建服务提供者eureka client
当client向server注册时,它会提供一些元数据,例如主机和端口,URL,主页等。Eureka server 从每个client实例接收心跳消息。 如果心跳超时,则通常将该实例从注册server中删除。
1:创建过程同server大致相同,创建完成后pomr如下:
<name>client</name><description>Demo project for Spring Boot</description><parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.8.RELEASE</version> <relativePath/> <!-- lookup parent from repository --></parent><properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <spring-cloud-services.version>1.5.0.RELEASE</spring-cloud-services.version> <spring-cloud.version>Edgware.RELEASE</spring-cloud.version></properties><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> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency></dependencies><dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Dalston.RC1</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies></dependencyManagement><build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins></build><repositories> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </repository></repositories>
主程序如下通过注解@EnableEurekaClient 表明自己是一个eurekaclient.
创建完成后的pom.xml如下
/** * @author wang_ * @EnableEurekaClient 表明自己是一个eurekaclient. */@SpringBootApplication@EnableEurekaClient@RestControllerpublic class ClientApplication { public static void main(String[] args) { SpringApplication.run(ClientApplication.class, args); } @Value("${server.port}") String port; @RequestMapping("/hi") public String home(@RequestParam String name) { return "hi "+name+",i am from port:" +port; }}修改配置文件如下:
eureka.client.service-url.defaultZone= http://localhost:7080/eureka/server.port= 8082spring.application.name= service-hi#在application.properties加入认证的用户名和密security.user.name=rootsecurity.user.password=123456
,启动工程,再次访问http://127.0.0.1:7080/
可以发现有一个服务已经注册了,服务名称和端口号都显示在浏览器中
f访问:
http://127.0.0.1:8082/hi?name=%E7%8E%8B
返回结果:hi 王,i am from port:8082
创建完成后的pom.xml如下
阅读全文
0 0
- SpringCloud教程一:服务注册与发现(Eureka)
- SpringCloud 学习记录(一):服务注册与发现(eureka+feign)
- springcloud学习笔记一:eureka服务注册与发现
- SpringCloud服务的注册与发现(Eureka)
- SpringCloud的服务注册与发现Eureka
- springcloud eureka服务注册与发现
- SpringCloud--服务的注册与发现(Eureka)
- SpringCloud : 服务的注册与发现(Eureka)
- 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)
- 史上最简单的SpringCloud教程 | 第一篇: 服务的注册与发现(Eureka)
- 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)
- 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)
- SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)
- 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)
- 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)
- 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)
- 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)
- SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)
- 上班族和独立开发的不归路
- 【工业大数据】李杰:工业大数据的前半生和后半生
- 【工业智能】天泽智云带你解读工业智能热门科技 – 大数据、工业互联网、云计算、边缘计算、CPS
- JAVA多线程系列--Unsafe和CAS,Volatile---concurrent包的基石
- 前端速查表,分享一些技术和工具的简明教程
- SpringCloud教程一:服务注册与发现(Eureka)
- ie6安全证书上的名称无效或者与站点不匹配
- IEEE和SCI等的通俗简介
- 【工业智能】工业智能的正确打开方式-用技术的创新做服务的价值
- Hibernate之环境搭建及demo
- 在MySQL中执行脚本根据MySQL表生成hive建表语句
- 【工业智能】天泽智云揭秘:人工智能如何打造“无忧风场”
- Caffe安装中多版本protobuf选择问题
- 大型网站技术架构(七)——网站的可扩展性架构