springcloud 子项目怎么导入_使用eclipse一步一步创建SpringCloud项目(二)—— 使用feign和ribbon调用微服务...
一、创建服务提供者service-hi
1、创建子项目方法类似eureka,略
2、修改pom文件,主要是添加jar包
4.0.0
com.landcode
land
1.0.0-SNAPSHOT
land-service-hi
com.landcode
land-common
1.0.0-SNAPSHOT
org.springframework.cloud
spring-cloud-starter-netflix-eureka-server
land-service-hi // jar包名
org.springframework.boot
spring-boot-maven-plugin
repackage
org.apache.maven.plugins
maven-compiler-plugin
utf-8
1.8
1.8
3、resource目录下添加配置文件application.yml
server:
port: 8855
spring:
application:
name: service-hi
eureka:
instance:
prefer-ip-address: true #开启显示IP地址
instance-id: ${spring.cloud.client.ip-address}:${server.port} #eureka页面显示IP地址:端口号
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
4、新建启动类,注意加上@EnableEurekaClient 注解,到eureka 注册服务
@SpringBootApplication
@EnableEurekaClientpublic classHiApplication {public static voidmain(String[] args) {
SpringApplication.run(HiApplication.class, args);
}
}
5、新建一个测试controller,方便服务调用方测试。测试功能中会返回服务方的端口号,方便做负载均衡测试
@RestControllerpublic classHiController {
@Value("${server.port}")privateString port;
@RequestMapping(value= "/hi")publicString hi() {return "hi " + port; //返回端口号,方便负载均衡功能测试
}
}
6、新建子项目service-consumer 作为服务调用方,方法类似eureka(略),修改pom文件,添加eureka、openfeign的jar包
4.0.0
com.landcode
land
1.0.0-SNAPSHOT
land-service-consumer
com.landcode
land-common
1.0.0-SNAPSHOT
org.springframework.cloud
spring-cloud-starter-netflix-eureka-server
org.springframework.cloud
spring-cloud-starter-openfeign
land-service-consumer
org.springframework.boot
spring-boot-maven-plugin
repackage
org.apache.maven.plugins
maven-compiler-plugin
utf-8
1.8
1.8
7、resource目录添加项目配置文件application.yml
server:
port: 8866
spring:
application:
name: service-consumer
eureka:
instance:
prefer-ip-address: true #开启显示IP地址
instance-id: ${spring.cloud.client.ip-address}:${server.port} #eureka页面显示IP地址:端口号
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
8、添加项目启动类,@EnableFeignClients 表示使用feign调用服务接口,Ribbonclient 注解表示采用ribbon做负载均衡,configuration = RibbonConfig.class, RibbonConfig 是Ribbon 负载均衡机制配置类
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients(basePackages= { "com.landcode.service.consumer.service"})
@RibbonClient(name= "service-hi", configuration = RibbonConfig.class)public classConsumerApplication {public static voidmain(String[] args) {//TODO Auto-generated method stub
SpringApplication.run(ConsumerApplication.class, args);
}
@Bean
@LoadBalancedpublicRestTemplate restTemplate() {return newRestTemplate();
}
}
9、RibbonConfig配置类,指定使用某种负载均衡策略
@Configurationpublic classRibbonConfig {
@Resource
IClientConfig clientConfig;
@BeanpublicIRule ribbonRule(IClientConfig clientConfig) {//return new RandomRule();//随机选择策略
return newWeightedResponseTimeRule();
}
}
10、新建service,调用服务service-hi,会自动采用ribbon的负载均衡策略
@FeignClient(value = "service-hi")public interfaceITestHi {
@RequestMapping("/hi")publicString testHi();
}
11、新建测试 controller,测试服务调用和负载均衡。这里注意:如果ITestHi还有实现类bean的话,注入时注意通过name区分
@RestControllerpublic classTestHiController {
@AutowiredprivateITestHi testHi;
@RequestMapping("/consumer/hi")publicString testHi() {returntestHi.testHi();
}
}
12、启动eureka,启动几个service-hi服务(只需修改为不同端口号),启动service-consumer服务,打开浏览器输入http://192.168.0.3:8866/consumer/hi 调用服务消费测试接口,可以看见每次调用打印了服务提供方不同的端口号。
springcloud 子项目怎么导入_使用eclipse一步一步创建SpringCloud项目(二)—— 使用feign和ribbon调用微服务...相关推荐
- springcloud 子项目怎么导入_「 从0到1学习微服务SpringCloud 」09 补充篇-maven父子模块项目...
系列文章(更新ing): 作为微服务的项目,如果将每个项目都拆成一个完整的项目,很难开发,那得打开多少个idea.应该将它们归到一个项目里,使用maven父子模块项目的形式,如下图 之前我们项目的拆成 ...
- SpringCloud系列二:Restful 基础架构(搭建项目环境、创建 Dept 微服务、客户端调用微服务)...
声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.概念:Restful 基础架构 2.具体内容 对于 Rest 基础架构实现处理是 SpringCloud 核心所在,其基本操 ...
- SpringCloud 搭建项目环境、创建 Dept 微服务、客户端调用微服务
对于 Rest 基础架构实现处理是 SpringCloud 核心所在,其基本操作形式在 SpringBoot 之中已经有了明确 的讲解,那么本次为 了清晰可见,创建一套新的微服务架构:部门微服务(De ...
- Eclipse+Maven创建webapp项目二 (转)
Eclipse+Maven创建webapp项目<二> 1.开启eclipse,右键new-->other,如下图找到maven project 2.选择maven project,显 ...
- spring-cloud开发微服务笔记(二):高可用Eureka注册中心的搭建与RestTemplate和Fengin客户端调用微服务示例
引言:这一篇博客是将上一篇spring-cloud-eureka-server的单机模式改为集群模式,体现eureka的高可用特性.生产环境无论是Eureka注册中心还是Client客户端大多是部署在 ...
- springcloud 子项目怎么导入_Spring Cloud基础面试题大集合
整理自:ThinkWon 链接:blog.csdn.net/ThinkWon/article/details/104397367 本文知识点目录 为什么需要学习Spring Cloud 什么是Spr ...
- go语言mysql框架_超级详细:Go语言框架Gin和Gorm实现一个完整的待办事项微服务...
前言 本文通过一步一步的设计,最终实现一个完善的todo应用. 我们使用GO框架Gin用户路由控制和返回数据.使用Gorm用于操作数据库. 读者可根据本教程操作,最终实现列出的各项功能. 技术清单 本 ...
- pigx框架费用_【开源项目】一篇文章搞掂:Pig微服务框架
1.项目开发环境和运行步骤 1.1.项目开发环境 Idea:2018.1.6 Maven:3.5.3 JDK:1.8.0_172 MySQL:5.7.19(之前安装8.0.11会运行失败) Redis ...
- eclipse jee mars linux,【创建maven-web项目-eclipse-jee-mars-2-win32-x86_64-jdk1.8】
需要注意的是:创建的mavenweb项目是没有java源文件夹的需要手动添加: 创建项目完成以后,项目会报错,如下: 因为项目中没有添加servlet依赖解决jsp报错问题:添加依赖: javax.s ...
最新文章
- EDAS ScheduleX 问题
- r 多元有序logistic回归_R语言多元Logistic逻辑回归 应用案例
- angular 模板
- 计算机一级查找同类型文件,如何快捷找出电脑内的重复文件
- python3.5安装pip_pip和pip3 – 都指向python3.5?
- #3551. [ONTAK2010]Peaks加强版(kruskal 重构树 + 主席树)
- 【CentOS 7笔记】cp、mv、文档查看方式
- Python treelib库创建多叉树的用法介绍
- Effective C++ 笔记(1)让自己习惯c++
- PHP 可变变量的使用
- 如何使用云效看板,让需求持续快速地流动和交付...
- 这份好用视频拼接的软件干货分享,值得收藏
- 切比雪夫多项式c语言csdn,切比雪夫多项式(Chebyshev polynomials)
- HanLP中文分词、人名识别、地名识别
- 怎么用python画世界地图_用Python画世界地图
- 容联云 实现验证码发送
- 动态规划DP的概念与总结
- python imp模块
- vue 2 组件之间传值
- 【百度】智能音箱尝鲜价竟然才xx元!