在idea环境下构建springCloud项目
springCloud是基于springboot搭建的微服务。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。
spring cloud官方文档:http://projects.spring.io/spring-cloud/
spring cloud 中文网 : https://springcloud.cc/
最终搭建后的工程源代码:https://github.com/onpwerb/SpringCloud
一、新建maven工程
根据spring cloud官方文档,在pom.xml导入如下代码
<!-- spring cloud 配置 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.5.RELEASE</version> </parent> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Camden.SR6</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency>
二、建立注册中心
新建名称为 discovery 的 module
1.在该module下的pom.xml导入如下配置:
<!-- @EnableEurekaServer --> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-netflix-eureka-server</artifactId> <!--<version>1.1.6.RELEASE</version>--> </dependency> </dependencies>
2.在src/main/java目录下新建discovery文件夹,然后新建一个application
package discovery; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication @EnableEurekaServer public class DiscoveryApplicaion { public static void main(String[] args) { SpringApplication.run(DiscoveryApplicaion.class, args); } }
3.在该module下的src/main/resources文件夹下,新建文件application.yml,配置注册中心eureka的相关服务
server: port: 8081 eureka: instance: hostname: localhost client: registerWithEureka: false fetchRegistry: false serviceUrl: defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
三、构建一个服务A
新建一个名为service的module
1.在src/main/java目录下新建service文件夹,然后新建一个application
package service; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @SpringBootApplication @EnableDiscoveryClient @RestController public class ServiceApplication { @GetMapping("/service") public String service(){ return "service"; } public static void main(String[] args) { SpringApplication.run(ServiceApplication.class, args); } }
2.在该module下的src/main/resources文件夹下,新建文件application.yml
spring: application: name: service.service eureka: client: serviceUrl: defaultZone: http://localhost:8081/eureka/ server: port: 8082
四、构建第二个服务B
新建一个名为service2的module
1.在src/main/java目录下新建service2文件夹,然后新建一个application
package service2; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @SpringBootApplication @EnableDiscoveryClient @RestController public class Service2Application { @RequestMapping("/service2") public String service2(){ return "service2"; } public static void main(String[] args) { SpringApplication.run(Service2Application.class, args); } }
2.在该module下的src/main/resources文件夹下,新建文件application.yml
spring: application: name: service2 eureka: client: serviceUrl: defaultZone: http://localhost:8081/eureka/ server: port: 8083
五、配置网关
新建名称为 gateway 的 module
1.在该module下的pom.xml导入如下配置:
package gateway; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; import org.springframework.cloud.netflix.zuul.EnableZuulProxy; @SpringBootApplication @EnableZuulProxy @EnableEurekaClient public class GatewayApplication { public static void main(String[] args) { SpringApplication.run(GatewayApplication.class, args); } }
2.在src/main/java目录下新建gateway文件夹,然后新建一个application
eureka: client: serviceUrl: defaultZone: http://localhost:8081/eureka/ spring: application: name: gateway server: port: 8084 zuul: routes: service: /service/** service2: /service2/**
3.在该module下的src/main/resources文件夹下,新建文件application.yml
六、启动服务
先启动discovery模块,再启动其他模块
在浏览器依次输入:
http://localhost:8081/
http://localhost:8082/service
http://localhost:8083/service2
http://localhost:8084/service/service
http://localhost:8084/service2/service2
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
- 你必须知道的23个最有用的Elasticseaerch检索技巧
- Elasticsearch Jest实战深入详解
- 在oracle中计算时间差
- 【Go 语言社区】GO中怎么处理URL编码?
- C语言库函数rename
- Oracle 12c DG新特性Far Sync(r10笔记第67天)
- iOS微信特殊字符保护方案
- 简单易学的机器学习算法——谱聚类(Spectal Clustering)
- oracle数据库 如何查询某个表的约束条件
- 结构体存入文件并且取出
- 【Go 语言社区】使用 Redis 实现排行榜功能
- 使用12c PDB整合环境的总结 (r10笔记第66天)
- 【Go 语言社区】Redis(ZADD)简单排名
- C得到文件的大小
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- ubuntu下rz/sz命令的安装与使用说明
- Linux环境变量配置的完整攻略
- linux中使用boost.python调用c++动态库的方法
- linux下pip的安装步骤及使用详解
- CentOS7安装配置 Redis的方法步骤
- Linux下Oracle如何导入导出dmp文件详解
- Linux中samba服务器的搭建教程
- linux环境搭建图数据库neo4j的讲解
- Linux编程之ICMP洪水攻击
- linux搭建squid代理服务器的完整步骤
- 使用wget递归镜像网站
- 整理Linux中字符串的相关操作技巧
- Ubuntu 16.04下无法安装.deb的解决方法
- 关于linux中系统输入输出的管理详解
- Linux下IP设置脚本的实例及遇到问题解决办法