spring-cloud学习之4.微服务请求打通
时间:2020-04-20
本文章向大家介绍spring-cloud学习之4.微服务请求打通,主要包括spring-cloud学习之4.微服务请求打通使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一:前提
我们上一篇中已经配置好了feign,本次我们配置服务端service,来实现getway->api->service的请求流程。
1.pom
<!--eureka 客户端 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
2.配置
本次只需要配置eureka客户端即可
server: port: 4001 spring: application: name: dandelion-service datasource: type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver druid: url: jdbc:mysql://localhost:3306/dandelion?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root password: 123456 mybatis-plus: mapper-locations: classpath*:/mapper/**/*Mapper.xml type-aliases-package: club.dandelion.cloud.service.entity eureka: client: service-url: defaultZone: http://localhost:1001/eureka instance: instance-id: ${spring.application.name}:${server.port} prefer-ip-address: true #访问路径可以显示IP地址
3.contr
import club.dandelion.cloud.common.R; import club.dandelion.cloud.service.base.BaseController; import club.dandelion.cloud.service.entity.SysDept; import club.dandelion.cloud.service.service.ISysDeptService; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * 部门 提供者 * * @author zmr * @date 2019-05-20 */ @RestController @RequestMapping("dept") @Slf4j public class SysDeptController extends BaseController { @Autowired private ISysDeptService sysDeptService; @Value("${server.port}") private String port; /** * 查询部门列表 */ @RequestMapping("list") public R list(SysDept sysDept) { log.info("端口:" + port); Page<SysDept> page = new Page<>(sysDept.getPageNum(), sysDept.getPageSize()); List<SysDept> list = sysDeptService.selectDeptList(page, sysDept); page.setRecords(list); return R.ok(port); } }
4.启动多个实例
idea可以启动多个实例,具体操作百度。
我们把之前的项目启动
1001:注册中心
2001:getwang网关
3001:feign
4001/4002:服务实现类,完全一样的项目,只是端口不同
5.示例
feign默认轮询,可单独配置某个服务比重。
6.配置负载均衡策略
server:
port: 3001
spring:
application:
name: dandelion-api
eureka:
client:
service-url:
defaultZone: http://localhost:1001/eureka
instance:
instance-id: ${spring.application.name}:${server.port}
prefer-ip-address: true
feign:
#开启feign熔断支持
hystrix:
enabled: true
#服务名
dandelion-service:
ribbon:
# 负载方式
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
具体的策略方式有很多,请查看官方文档或百度
原文地址:https://www.cnblogs.com/bchange/p/12711409.html
- 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 文档注释
- VSCode 中文乱码
- Python获取时间戳
- VScode Python no module的解决方法
- MacOS安装npm全局包的权限问题
- [已解决]报错run `npm audit fix` to fix them, or `npm audit` for details
- Hexo使用攻略-添加分类及标签
- print的简单使用
- 使用Pandas读取大型Excel文件
- 微信小程序获取页面高度
- vue简单实现九宫格抽奖
- [已解决]报错:xlrd.compdoc.CompDocError: Workbook: size exceeds expected 17920 bytes; corrupt?
- [已解决]报错:have mixed types. Specify dtype option on import or set low_memory=False
- Mysql删除表数据,表文件大小不变
- 抓取模板
- 利用os和pandas来合并当前目录下所有excel文件