java架构之-负载均衡-Ribbon 的使用
一、 什么是负载均衡
负载均衡就是分发请求流量到不同的服务器。
负载均衡一般分为两种:
1、 服务器端负载均衡(nginx)

2、 客户端负载均衡(Ribbon)

二、 spring- - cloud- - provide) (服务提供者) :
实体类 :
package com.roncoo.education.bean;
import java.util.Date;
/**
* 实体类
*
* @author wujing
*/
public class User {
private int id;
private String name;
private Date createTime;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
@Override
public String toString() {
return "RoncooUser [id=" + id + ", name=" + name + ",
createTime=" + createTime + "]";
}
}
接口 类:
package com.roncoo.education.controller;
import java.util.Date;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import com.roncoo.education.bean.User;
/**
* @author wujing
*/
@RestController
@RequestMapping(value = "/api/user")
public class ApiUserController {
protected final Logger logger =
LoggerFactory.getLogger(this.getClass());
@RequestMapping(value = "/{id}", method =
RequestMethod.GET)
public User view(@PathVariable int id) {
User user = new User();
user.setId(id);
user.setName("无境");
user.setCreateTime(new Date());
logger.info("请求接口返回:{}", user);
return user;
}
}
三、 spring- - cloud- - consumer( 服务 消费者) ) :
package com.roncoo.education.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
/**
* @author wujing
*/
@RestController
@RequestMapping(value = "/user", method = RequestMethod.POST)
public class UserController {
private static final String
URL="http://localhost:7777/api/user/{id}";
@Autowired
private RestTemplate restTemplate;
@RequestMapping(value = "/{id}", method =
RequestMethod.GET)
public String get(@PathVariable(value = "id") int id) {
return restTemplate.getForObject(URL, String.class, id);
}
}
使用RestTemplate进行调用,所以要先定义这个Bean
@Bean
protected RestTemplate restTemplate() {
return new RestTemplate();
}
四、 查看
provide : http://localhost:7777 /api/user/1
consumer: http://localhost:8888/user/1
五、 如何 通过 Ribbon 进行调用
1、 在 RestTemplate 中添加注解 @LoadBalanced
2、 修改调用的 URL=http://spring-cloud-provider/api/user/{id}
注意:控制台的应用名字为大写,我们统一为小写,更不能大小写都存在。
六、 如何实现负载均衡
我们把提供者的应用,启动多个,进行测试。
为了区分,我们修改实体的名字。
注意:修改应用的时候,端口也要修改。
七、 结论
1 1、 、 Ribbon 通过@LoadBalanced 进行负载均衡。
2 2、 、 默认的负载策略是轮询算法。
java视频教程:http://www.angelasp.com/news/20196231880.html
java架构之-负载均衡-Ribbon 的使用的更多相关文章
- java架构师负载均衡、高并发、nginx优化、tomcat集群、异步性能优化、Dubbo分布式、Redis持久化、ActiveMQ中间件、Netty互联网、spring大型分布式项目实战视频教程百度网盘
15套Java架构师详情 * { font-family: "Microsoft YaHei" !important } h1 { background-color: #006; ...
- SpringCloud之实现客户端的负载均衡Ribbon(二)
一 Ribbon简介 Ribbon是Netflix发布的负载均衡器,它有助于控制HTTP和TCP的客户端的行为.为Ribbon配置服务提供者地址后,Ribbon就可基于某种负载均衡算法,自动地帮助服务 ...
- 2.【Spring Cloud Alibaba】实现负载均衡-Ribbon
负载均衡的两种方式 如何实现负载均衡 目前已经实现让A总能找到B,如何实现负载均衡 负载均衡的两种方式 服务器端负载均衡 客户端负载均衡 使用Ribbo实现负载均衡 Ribbon是什么 ==Netfl ...
- 学习一下 SpringCloud (三)-- 服务调用、负载均衡 Ribbon、OpenFeign
(1) 相关博文地址: 学习一下 SpringCloud (一)-- 从单体架构到微服务架构.代码拆分(maven 聚合): https://www.cnblogs.com/l-y-h/p/14105 ...
- SpringCloud初体验:三、Feign 服务间调用(FeignClient)、负载均衡(Ribbon)、容错/降级处理(Hystrix)
FeignOpenFeign Feign是一种声明式.模板化的HTTP客户端. 看了解释过后,可以理解为他是一种 客户端 配置实现的策略,它实现 服务间调用(FeignClient).负载均衡(Rib ...
- Spring Cloud第四篇 | 客户端负载均衡Ribbon
本文是Spring Cloud专栏的第四篇文章,了解前三篇文章内容有助于更好的理解本文: Spring Cloud第一篇 | Spring Cloud前言及其常用组件介绍概览 Spring Cl ...
- SpringCloud 源码系列(4)—— 负载均衡 Ribbon
一.负载均衡 1.RestTemplate 在研究 eureka 源码上篇中,我们在 demo-consumer 消费者服务中定义了用 @LoadBalanced 标记的 RestTemplate,然 ...
- SpringCloud 源码系列(5)—— 负载均衡 Ribbon(下)
SpringCloud 源码系列(4)-- 负载均衡 Ribbon(上) SpringCloud 源码系列(5)-- 负载均衡 Ribbon(下) 五.Ribbon 核心接口 前面已经了解到 Ribb ...
- 客户端负载均衡Ribbon
客户端负载均衡Ribbon 一.Ribbon是什么 二.Ribbon实现客户端负载均衡 三.Ribbon负载均衡策略 四.Rest请求模板类解读 4.1 RestTemplate的GET请求 第一种: ...
随机推荐
- mysql重点中的重点---->查询中的关键字优先级
1.from 找到表 2.where 拿着where指定的约束条件,去文件/表中取出一条条记录 3.group by 将取出的一条条记录进行分组group by ,如果没有group by ,则整体作 ...
- 图文结合深入理解JS中的this值
文章目录 Js 中奇妙的this值 1. 初探this 2. this指向总结 2.1 普通函数调用 2.2 对象的方法调用 2.3 构造函数调用 2.4 利用call,apply,bind方法调用函 ...
- Real World CTF一日游
今天去感受了长亭举办的RWCTF现场,参加了技术论坛,也学到了很多的知识 比较有印象的就是 智能安全在Web防护中的探索和实践 阿里云安全防护构建的AI架构体系: 基线检测 基础过滤 异常检测 攻击识 ...
- B站上传字幕问题解决
博客:blog.shinelee.me | 博客园 | CSDN B站上传字幕时,如果srt文件中出现如下空行,则会报错,仅上传了空行前的部分 于是写了个python脚本,如下: import pys ...
- JS---另一个定时器:一次性的
之前学的定时器:setInterval和清除定时器 clearInterval(定时器id); //常用的,反复的执行 window.setInterval(function () { alert(& ...
- 初识PMP PMBOK初解(指南第一章引论)
引论 1.1指南概述和目的 普遍认可:大多数时候是适用于大多数项目,价值和有效性已获得一致认可. 良好实践:知识.技能.工具和技术能够达到预期的商业价值和成果,提高很多项目成功的可能性. 确定过程.输 ...
- B树概述与简单应用示例(C#)
引言: 天不生仲尼,万古如长夜.在计算机科学中,也有一个划时代的发明,B树(多路平衡查找树)及其变体(B树,b*树,b+树): 由德国科学家(鲁道夫·拜尔 Rudolf Bayer),美国科学家(爱德 ...
- IT兄弟连 HTML5教程 CSS3属性特效 自定义文字
字体使用是网页设计中不可或缺的一部分.经常地,我们希望在网页中使用某一特定字体,但是该字体并非主流操作系统的内置字体,这样用户在浏览页面的时候就有可能看不到真实的设计.美工设计师最常做的办法是把想要的 ...
- 流式计算(二)-Kafka Stream
前面说了Java8的流,这里还说流处理,既然是流,比如水流车流,肯定得有流的源头,源可以有多种,可以自建,也可以从应用端获取,今天就拿非常经典的Kafka做源头来说事,比如要来一套应用日志实时分析框架 ...
- Nacos Cluster Building
原文链接:https://www.javaspring.net/nacos/nacos-cluster-building Continue to talk about the Nacos build ...