哈尔滨住房和城乡建设厅官方网站,如何提高搜索引擎优化,网站服务器怎么看是哪个厂家的,微网站建设的第一步是进行首页的设置1.SpringCloud SpringCloud是目前国内使用最广泛的微服务框架。官网地址#xff1a;Spring Cloud SpringCloud集成了各种微服务功能组件#xff0c;并基于SpringBoot实现了这些组件的自动装配#xff0c;从而提供了良好的开箱即用体验#xff1a; SpringCloud与SpringBoo…1.SpringCloud SpringCloud是目前国内使用最广泛的微服务框架。官网地址Spring Cloud SpringCloud集成了各种微服务功能组件并基于SpringBoot实现了这些组件的自动装配从而提供了良好的开箱即用体验 SpringCloud与SpringBoot的版本兼任关系如下 2.服务拆分及远程调用
拆分注意事项
1.不同微服务不要重复开发相同业务
2.微服务数据独立不要访问其他微服务的数据库
3.微服务可以将自己的业务接口暴露为接口供其他微服务调用
导入服务拆分Demo
1.导入课前资料提供的工程cloud-demo
链接百度网盘 请输入提取码 提取码ksw1 2.项目结构 3.将课前资料准备的sql导入数据库
链接百度网盘 请输入提取码 提取码ksw1 总结 1.微服务需要根据业务模块拆分做到单一职责不要重复开发相同业务 2.微服务可以将业务暴露为接口供其他微服务使用 3.不同微服务都应该有自己独立的数据库 3.服务拆分-服务远程调用
使用远程调用方式查询到用户信息 可以使用RestTemplate发送请求 RestTemplate 是发送各种HTTP请求那么就可以使用 RestTemplate 发起远程http请求
在order_service 模块中的启动配置类中 /*** 在启动配置类注入 RestTemplate bean容器* return*/Beanpublic RestTemplate restTemplate() {return new RestTemplate();}
修改查询实现方法
Autowiredprivate RestTemplate restTemplate;
public Order queryOrderById(Long orderId) {// 1.查询订单Order order orderMapper.findById(orderId);// 2利用RestTemplate发送Http请求查询用户// 2.1 url的地址为user-service模块启动的端口因为是向user-service发送请求String url http://localhost:8081/user/ order.getUserId();// 发送请求完成远程调用User user restTemplate.getForObject(url, User.class);// 封装userorder.setUser(user);// 4.返回return order;}
} 4.Eureka
4.1.eureka-消费者与提供者
提供者一次业务中被其他微服务调用的服务 提供接口给其他微服务接口被调用了
消费者一次业务中调用其他微服务的服务调用其他微服务提供的接口调用别人的接口
上面的demo中user就是服务提供者接口被调用order就是服务消费者调用了别人的接口 思考服务A调用服务B服务B调用服务C那么服务B是什么角色 主要是要看怎么调用 如果是服务B调用了服务C那么服务B就是服务消费者 2.如果是服务B被服务A调用了那么服务B就是服务提供者 总结 服务调用关系 服务提供者暴露接口给其它微服务调用 服务消费者调用其它微服务提供的接口 提供者与消费者角色其实是相对的 一个服务可以同时是服务提供者和服务消费者 4.2.eureka原理分析 调用出现的问题 服务消费者该如何获取服务提供者的地址信息 如果有多个服务提供者消费者该如何选择 消费者如何得知服务者的健康状态 4.2.1Eureka的作用 再来回答上面第一部分的遗留问题
1.消费者该如何获取服务提供者具体信息 服务提供者启动时向eureka注册自己的信息 eureka保存这些信息 消费者根据服务名称向eureka拉取提供者信息
2.如果有多个服务提供者消费者该如何选择 服务消费者利用负载均衡算法从服务列表中挑选一个
3.消费者如何感知服务提供者健康状态 服务提供者会每隔30秒向EurekaServer发送心跳请求报告健康状态 eureka会更新记录服务列表信息心跳不正常会被剔除 消费者就可以拉取到最新的信息 在Eureka架构中微服务角色有两类 1.EurekaServer服务端注册中心 记录服务信息 心跳监控 2.EurekaClient客户端 Provider服务提供者例如案例中的 user-service 注册自己的信息到EurekaServer 每隔30秒向EurekaServer发送心跳 consumer服务消费者例如案例中的 order-service 根据服务名称从EurekaServer拉取服务列表 基于服务列表做负载均衡选中一个微服务后发起远程调用