springcloud 客户端负载均衡 ribbon

本文涉及的产品
网络型负载均衡 NLB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介:      ------------------------------------------------------------------------------------------------------------  springcloud (零) springboo...
@SpringBootApplication
@EnableDiscoveryClient
public class SpringBootSampleApplication {

    
     
    
    @Bean
    @LoadBalanced
    RestTemplate restTemplate() {
        return new RestTemplate();
    }
    public static void main(String[] args) {
        SpringApplication.run(SpringBootSampleApplication.class, args);
    }


}

 

@RestController
@RequestMapping(value="/web/users")
public class UserController {

   
    @Autowired
    RestTemplate restTemplate;
    
    
    
    @RequestMapping(value="/{userId}", method=RequestMethod.GET)
    public User  getUserById(@PathVariable int userId){ 
        
        return restTemplate.getForEntity("http://COMPUTE-SERVICE/user/"+userId, User.class).getBody();
        
    }

}

 

 

@Entity
@Table(name = "t_user")
public class User implements Serializable{

    

    /**
     * 
     */
    private static final long serialVersionUID = 1381806832842693234L;

    

    @Id
    private int id;

    @Column(name = "user_name")
    private String userName;
    
    @Column(name = "password")
    private String password;
    
    @Column(name = "tel")
    private String tel;
    
    @Column(name = "sex")
    private String sex;
     
    @Column(name = "description")
    private String description;
    
    

    public int getId() {
        return id;
    }

    public String getUserName() {
        return userName;
    }

    public String getPassword() {
        return password;
    }

    public String getTel() {
        return tel;
    }

    public String getSex() {
        return sex;
    }

    public String getDescription() {
        return description;
    }

    public void setId(int id) {
        this.id = id;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public void setTel(String tel) {
        this.tel = tel;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public void setDescription(String description) {
        this.description = description;
    }
    
    
    
    
}

 

 
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp


spring.application.name=ribbon-consumer
server.port=1003
server.session-timeout=60
# server.address=192.168.16.11

eureka.client.serviceUrl.defaultZone=http://localhost:1000/eureka/

 

  4.0.0
  com.curiousby.cn
  SpringCloudDemo-Ribbon
  war
  0.0.1-SNAPSHOT
  SpringCloudDemo-Ribbon Maven Webapp
  http://maven.apache.org
  



    
        
            spring-snapshots
            http://repo.spring.io/libs-snapshot
        
    

    
        
            spring-snapshots
            http://repo.spring.io/libs-snapshot
        
    
    

	
        org.springframework.boot
        spring-boot-starter-parent
        1.3.5.RELEASE
         
    

    
        UTF-8
        1.7
    

    
    
     
        org.springframework.cloud
        spring-cloud-starter-ribbon
    
    
        org.springframework.cloud
        spring-cloud-starter-eureka
    
    
			org.springframework.boot
			spring-boot-starter-web
		
		 
			org.springframework.boot
			spring-boot-starter-tomcat
			provided
		
		
			org.apache.tomcat.embed
			tomcat-embed-jasper
			provided
		
		
			javax.servlet
			jstl
		
		
			org.springframework.boot
			spring-boot-starter-test
			test
		
		
			org.springframework.boot
			spring-boot-starter-data-jpa
			runtime
		 
		
			mysql
			mysql-connector-java
			runtime
		
        
    
    
	
	        
	            
	                org.springframework.cloud
	                spring-cloud-dependencies
	                Brixton.RELEASE
	                pom
	                import
	            
	        
	    
	    
	
		SpringCloudDemo-Ribbon
		
			
				org.springframework.boot
				spring-boot-maven-plugin
			
			
			
				org.apache.maven.plugins
				maven-compiler-plugin
				
					1.7
					1.7
				
			
			
				org.apache.maven.plugins
				maven-surefire-plugin
				
					false
				
			
			
		

	
	

 

 

 

 

 

 

 

  

 

 

 

 

 

 

 

 

 

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
8月前
|
负载均衡 算法
ribbon的7种负载均衡算法和替换方法
ribbon的7种负载均衡算法和替换方法
198 0
ribbon的7种负载均衡算法和替换方法
|
2月前
|
负载均衡 Java Nacos
Ribbon负载均衡
Ribbon负载均衡
38 1
Ribbon负载均衡
|
5月前
|
负载均衡 算法 架构师
Ribbon负载均衡
上一节就已经实现的负载均衡笔者并未深入探讨,本节通过分析负载均衡算法、Ribbon实现负载均衡的底层原理和实现过程,让大家对负载均衡有了一个大体认识,同时针对Ribbon自定义负载均衡策略,饥饿加载让大家对于Ribbon的了解又多一些。Ribbon实现的负载均衡只是方案之一,我们可以尽量多了解但不要局限于此。
|
2月前
|
负载均衡 算法 Java
除了 Ribbon,Spring Cloud 中还有哪些负载均衡组件?
这些负载均衡组件各有特点,在不同的场景和需求下,可以根据项目的具体情况选择合适的负载均衡组件来实现高效、稳定的服务调用。
128 5
|
1月前
|
负载均衡 Java Nacos
常见的Ribbon/Spring LoadBalancer的负载均衡策略
自SpringCloud 2020版起,Ribbon被弃用,转而使用Spring Cloud LoadBalancer。Ribbon支持轮询、随机、加权响应时间和重试等负载均衡策略;而Spring Cloud LoadBalancer则提供轮询、随机及Nacos负载均衡策略,基于Reactor实现,更高效灵活。
94 0
|
4月前
|
负载均衡 Java Nacos
SpringCloud基础1——远程调用、Eureka,Nacos注册中心、Ribbon负载均衡
微服务介绍、SpringCloud、服务拆分和远程调用、Eureka注册中心、Ribbon负载均衡、Nacos注册中心
SpringCloud基础1——远程调用、Eureka,Nacos注册中心、Ribbon负载均衡
|
5月前
|
存储 设计模式 缓存
OpenFeign集成Ribbon负载均衡-过滤和选择服务核心实现
该文章主要介绍了如何在OpenFeign中集成Ribbon以实现负载均衡,并详细分析了Ribbon中服务选择和服务过滤的核心实现过程。文章还涉及了Ribbon中负载均衡器(ILoadBalancer)和负载均衡策略(IRule)的初始化方式。
OpenFeign集成Ribbon负载均衡-过滤和选择服务核心实现
|
5月前
|
缓存 负载均衡 Java
OpenFeign最核心组件LoadBalancerFeignClient详解(集成Ribbon负载均衡能力)
文章标题为“OpenFeign的Ribbon负载均衡详解”,是继OpenFeign十大可扩展组件讨论之后,深入探讨了Ribbon如何为OpenFeign提供负载均衡能力的详解。
OpenFeign最核心组件LoadBalancerFeignClient详解(集成Ribbon负载均衡能力)
|
6月前
|
负载均衡 算法 网络协议
Ribbon 负载均衡源码解读
Ribbon 负载均衡源码解读
71 15
Ribbon 负载均衡源码解读
|
4月前
|
负载均衡 Java 开发者
Ribbon框架实现客户端负载均衡的方法与技巧
Ribbon框架为微服务架构中的客户端负载均衡提供了强大的支持。通过简单的配置和集成,开发者可以轻松地在应用中实现服务的发现、选择和负载均衡。适当地使用Ribbon,配合其他Spring Cloud组件,可以有效提升微服务架构的可用性和性能。
53 0