网站建设定制开发SpringCloud之Ribbon

网站建设定制开发前面学习了,网站建设定制开发只是大概知道分布式的网站建设定制开发项目是什么搭建的。
分布式项目只是简单的将一个系统根据功能切割吗?
如果单个功能的服务器宕机了,那是不是只能等这个功能的服务重新启动?

如果我单个功能的服务器有多个,那不就可以在对应服务宕机的时候还能用吗?而且平时还可以分摊用户。

就好比你去银行柜台办理业务,有几个柜台能办理一样的业务,这个柜台人多,那就去其他的柜台


目录

一、ribbon的作用

  • 实现负载均衡
  • 通过服务名称,消费者就能使用服务

二、设计

2.1 注册中心

这个只需要按照创建即可

2.2 服务提供者

这里为了体现负载均衡,我创建了两个服务提供者:

  1. 使用一样的服务名称
  2. 提供一样的接口去请求同一数据库数据

2.3 服务消费者

  1. 将RestTemplate交给Spring容器管理,同时通过注解整合Ribbon使RestTemplate具备负载均衡
@SpringBootApplication@EnableDiscoveryClientpublic class DemoApplication {    @Bean    @LoadBalanced//添加LoadBalanced注解来整合Ribbon使其具有负载均衡的能力    public RestTemplate restTemplate(){        return new RestTemplate();    }    public static void main(String[] args) {        SpringApplication.run(DemoApplication.class, args);    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  1. RestTemplate通过服务名称去调用对应的服务
@RestController@RequestMapping("/user")public class UserController {    @Autowired    private RestTemplate restTemplate;//使用restTemplate请求User服务        private static final String REST_URL_PREFIX ="http://SERVICE-PROVIDER-USER";    @RequestMapping("/findAll")    @ResponseBody    public List<UserBean> queryAll() {        String url = REST_URL_PREFIX+"/user/findAll";        UserBean[] userBeans = restTemplate.getForObject(url,UserBean[].class);        return Arrays.asList(userBeans);    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

三、测试

将服务提供者(UserService-Provider1、UserService-Provider2)、服务消费者(UserService-Customer)注册到注册中心

通过服务消费者发起请求,系统调用了UserService-Provider1的接口

再次发起请求,系统调用了UserService-Provider2的接口

四、源码

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发