当前位置: 首页 > news >正文

效果好的网站制作公司做直播网站

效果好的网站制作公司,做直播网站,个人主页设计孙悟空示例,建筑网络教育目录 1.注册中心 1.1.nacos注册中心 1.2. 微服务注册和拉取注册中心的内容 2.3.修改订单微服务的代码 3.负载均衡组件 3.1.什么是负载均衡 3.2.什么是Ribbon 3.3.Ribbon 的主要作用 3.4.Ribbon提供的负载均衡策略 4.openfeign完成服务调用 4.1.什么是OpenFeign 4.2…目录 1.注册中心 1.1.nacos注册中心 1.2. 微服务注册和拉取注册中心的内容 2.3.修改订单微服务的代码 3.负载均衡组件 3.1.什么是负载均衡 3.2.什么是Ribbon 3.3.Ribbon 的主要作用 3.4.Ribbon提供的负载均衡策略 4.openfeign完成服务调用 4.1.什么是OpenFeign 4.2.完成openfeign的调用 继  微服务工程  文章扩展的注册中心及负载均衡 1.注册中心 服务治理是微服务架构中最核心最基本的模块。用于实现各个微服务的自动化注册与发现。 服务注册在服务治理框架中都会构建一个注册中心每个服务单元向注册中心登记自己提供服务的详细信息。并在注册中心形成一张服务的清单服务注册中心需要以心跳30s 90s的方式去监测清单中 的服务是否可用如果不可用需要在服务清单中剔除不可用的服务。 服务发现服务调用方向服务注册中心咨询服务并获取*所有服务*的实例清单实现对具体服务实例的访问。 通过上面的调用图会发现除了微服务还有一个组件是服务注册中心它是微服务架构非常重要的一个组件在微服务架构里主要起到了协调者的一个作用。注册中心一般包含如下几个功能 1. 服务发现 服务注册保存服务提供者和服务调用者的信息 服务订阅服务调用者订阅服务提供者的信息注册中心向订阅者推送提供者的信息 2. 服务配置 配置订阅服务提供者和服务调用者订阅微服务相关的配置 配置下发主动将配置推送给服务提供者和服务调用者 3. 服务健康检测 检测服务提供者的健康情况如果发现异常执行服务剔除 1.1.nacos注册中心 官网nacos nacos资源已上传 解压后打开 修改 默认它启动模式为--集群模式---修改它为单机模式    修改后保存退出 访问: http://localhost:8848/nacos账号和密码: nacos 1.2. 微服务注册和拉取注册中心的内容 商品微服务 引入依赖 !--引入nacos的依赖--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependency 修改配置文件 #nacos注册中心的地址 spring.cloud.nacos.discovery.server-addrlocalhost:8848 #为微服务定义名称 spring.application.nameqy165-product 发现: 2.3.修改订单微服务的代码 引入依赖 !--引入nacos的依赖--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependency 修改配置文件 #nacos注册中心的地址 spring.cloud.nacos.discovery.server-addrlocalhost:8848 #为微服务定义名称 spring.application.nameqy165-order 解决硬编码问题 package com.wqg.order.controller;import com.wqg.entity.Order; import com.wqg.entity.Product; import com.wqg.order.service.OrderService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.discovery.DiscoveryClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate;import java.util.List;RestController RequestMapping(order) public class OrderController01 {Autowiredprivate OrderService orderService;Autowiredprivate RestTemplate restTemplate;//在springcloud依赖中存在一个类DiscoveryClient 该类可以从注册中心拉取指定的服务列表清单Autowiredprivate DiscoveryClient discoveryClient;GetMapping(insert)public String insert(Long pid, Integer num) {//创建订单--添加数据Order order new Order();order.setUid(5L);order.setUsername(笔记本);order.setNumber(num);ListServiceInstance instances discoveryClient.getInstances(qy165-product);ServiceInstance serviceInstance instances.get(0);//根据服务实例对象获取相对应的ip和端口号String path serviceInstance.getUri().toString();//商品信息Product product restTemplate.getForObject(path/product/getById/pid, Product.class);order.setPid(product.getPid());order.setPname(product.getPname());order.setPprice(product.getPprice());int i orderService.saveOrder(order);return i 0 ? 下单成功 : 下单失败;} }3.负载均衡组件 3.1.什么是负载均衡 通俗的讲 负载均衡就是将负载工作任务访问请求进行分摊到多个操作单元服务器,组件上进行执行。 根据负载均衡发生位置的不同,一般分为服务端负载均衡和客户端负载均衡。 服务端负载均衡指的是发生在服务提供者一方,比如常见的nginx负载均衡 而客户端负载均衡指的是发生在服务请求的一方也就是在发送请求之前已经选好了由哪个实例处理请求 我们在微服务调用关系中一般会选择客户端负载均衡也就是在服务调用的一方来决定服务由哪个提供者执行. 演示:---手动完成负载均衡 模拟搭建商品微服务n台 手动实现负载均衡----随机负载均衡 修改OrderController订单代码 RestController RequestMapping(order) public class OrderController02 {Autowiredprivate OrderService orderService;Autowiredprivate RestTemplate restTemplate;Autowiredprivate DiscoveryClient discoveryClient;GetMapping(insert)public String insert(Long pid, Integer num) {//创建订单--添加数据Order order new Order();order.setUid(5L);order.setUsername(笔记本);order.setNumber(num);ListServiceInstance instances discoveryClient.getInstances(qy165-product);int index new Random().nextInt(instances.size());ServiceInstance serviceInstance instances.get(index);String s serviceInstance.getUri().toString();//商品信息Product product restTemplate.getForObject(s/product/getById/pid, Product.class);order.setPid(product.getPid());order.setPname(product.getPname());order.setPprice(product.getPprice());int i orderService.saveOrder(order);return i 0 ? 下单成功 : 下单失败;} }上面通过手动完成了负载均衡的调用存在的问题: 它采用的随机负载均衡如何我想使用轮询负载均衡策略。 只能修改源代码。耦合。---springcloud提供了一个组件--可以灵活的完成负载均衡。--ribbon 3.2.什么是Ribbon 是 Netflix 发布的一个负载均衡器有助于控制 HTTP 和 TCP 客户端行为。在 Springcloud中 nacos 一般配合 Ribbon 进行使用Ribbon 提供了客户端负载均衡的功能Ribbon 利用从 nacos 中读 取到的服务信息在调用服务节点提供的服务时会合理(策略) 的进行负载。在Springcloud 中可以将注册中心和Ribbon 配合使用Ribbon 自动的从注册中心中获取服务提供者的 列表信息并基于内置的负载均衡算法请求服务。 3.3.Ribbon 的主要作用 (1)服务调用 基于 Ribbon 实现服务调用是通过拉取到的所有服务列表组成 ( 服务名-请求路径的 ) 映射关系。借助 RestTemplate最终进行调用. (2)负载均衡 当有多个服冬提供者时Ribbon 可以根据负载均衡的算法自动的选择需要调用的服务地址 如何使用Ribbon实现负载均衡 在RestTemplate生成类上加入LoadBalanced 修改OrderController订单代码 RestController RequestMapping(order) public class OrderController03 {Autowiredprivate OrderService orderService;Autowiredprivate RestTemplate restTemplate;GetMapping(insert)public String insert(Long pid, Integer num) {//创建订单--添加数据Order order new Order();order.setUid(5L);order.setUsername(笔记本);order.setNumber(num);//商品信息Product product restTemplate.getForObject(http://qy165-product/product/getById/pid, Product.class);order.setPid(product.getPid());order.setPname(product.getPname());order.setPprice(product.getPprice());int i orderService.saveOrder(order);return i 0 ? 下单成功 : 下单失败;} } 测试 3.4.Ribbon提供的负载均衡策略 Ribbon内置了多种负载均衡策略内部负载均衡的顶级接口为com.netflix.loadbalancer.IRule,具体的负载策略如下所示 策略名策略描述实现说明BestAvailableRule选中一个最小的并发请求的server逐个考察Server如果Server被 tripped了则忽略在选择其中ActiveRequestsCount最小的serverRandomRule随机选择一个server在index上随机选择index对应位置的serverRoundRobinRule轮询方式轮询选择轮询index选择index对应位置的AvailabilityFilteringRule过滤掉那些因为一直连接失败的被标记为circuittripped的后端server并过滤掉 那些高并发的的后端server (activeconnections 超过配置的阈值)使用一个AvailabilityPredicate来包含过滤server的逻辑其实就是检查 status里记录的各个server的运行状态WeightedResponseTimeRule根据相应时间分配一个weight相应时间越长weight越小被选中的可能性越低一个后台线程定期的从status里面读取评价响应时间为每个server计算一个weight。Weight的计算也比较简单responsetime减去每个server自己平均的responsetime是server的权重。当刚开始运行没有形成statas时使用roubine策略选择server。RetryRule对选定的负载均衡策略机上重试机制在一个配置时间段内当选择server不成功则一直尝试使用subRule的方式选择一个可用的serverZoneAvoidanceRule复合判断server所在区域的性能和server的可用性选择server使用ZoneAvoidancePredicate和AvailabilityPredicate来判断是否选择某个server前一个判断判定一个zone的运行性能是否可用剔除不可用的zone(的所有server)AvailabilityPredicate用于过滤掉 ribbon内置的负载均衡策略默认轮询也可以自定义负载均衡。 如何修改ribbon组件的负载均衡策略----修改配置文件 修改为随机 #修改ribbon的负载均衡策略---随机 qy165-product.ribbon.NFLoadBalancerRuleClassNamecom.netflix.loadbalancer.RandomRule 4.openfeign完成服务调用 4.1.什么是OpenFeign OpenFeign是Spring Cloud提供的一个声明式的伪Http客户端 它使得调用远程服务就像调用本地方法一样简单 只需要创建一个接口并添加一个注解即可。 Nacos很好的兼容了OpenFeign OpenFeign负载均衡默认集成了 Ribbon 所以在Nacos下使用OpenFeign默认就实现了负载均衡的效果。 4.2.完成openfeign的调用 订单微服务 (1)依赖 !--openfeign依赖--dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId/dependency (2)创建openfeign接口 FeignClient(value qy165-product) public interface ProductFeign {//接口的方法 必须 和被调用者的接口的参数一致GetMapping(/product/getById/{id})public Product getById(PathVariable Long id); //springcloud 扫描到FeignClient注解时--生产一个代理实现类. }(3)开启openfeign注解驱动 (4)修改OrderController RestController RequestMapping(order) public class OrderController04 {Autowiredprivate OrderService orderService;Autowiredprivate ProductFeign productFeign;GetMapping(insert)public String insert(Long pid, Integer num) {//创建订单--添加数据Order order new Order();order.setUid(5L);order.setUsername(笔记本);order.setNumber(num);//商品信息Product product productFeign.getById(pid);order.setPid(product.getPid());order.setPname(product.getPname());order.setPprice(product.getPprice());int i orderService.saveOrder(order);return i 0 ? 下单成功 : 下单失败;} }
http://www.yutouwan.com/news/332044/

相关文章:

  • 光电工程东莞网站建设dtc建站服务
  • 学校网站建设招标方案长沙多迪php网站开发培训学校
  • 网站上咱们做鱼饵镇江峻程网络科技有限公司
  • 仲恺建设局网站朋友圈广告30元 1000次
  • 优秀的网站设计图片企业网站排名技巧
  • 郑州制作网站设计成都今天消息
  • 广州出名的网站软件开发过程的五个阶段
  • 一起做网站广州厦门在线制作网站
  • 个人网站链接怎么做宁波网站建设设计服务公司
  • 用自家宽带做网站服务器宁波seo教程行业推广
  • 关于建设网站的请示wordpress的登录
  • 网站设计运行费用网站设计的国际专业流程
  • 免费建设网站制作兼职网站开发
  • 景宁县建设局网站做网站买服务器
  • 示范高职院校建设专题网站3d设计网站
  • 用电脑做兼职的网站凉山州城乡和住房建设厅网站
  • 网站案例 中企动力技术支持产品营销推广的方案
  • 网站申请备案流程深圳建站软件
  • 淮北市矿务局工程建设公司网站全国当先的网络建站推广
  • 那个网站做的刀比较好wordpress的注册文件在哪
  • asp网站免费模板下载天河建设网站服务
  • 学校网站怎么做优化网站建设多少钱宋柯
  • 厦门无忧网站建设有限公司wordpress优秀免费主题
  • 网站备案时核验单静态网站规范
  • 做影视网站有什么风险北京好的前端培训机构
  • 做私房蛋糕在哪些网站写东西免费网络电话app
  • ps可以在哪个网站上做兼职互联网营销的概念
  • 网站标准尺寸如果自己建立网站
  • 个人网站效果图网站设计服务费英文
  • 嘉兴公司网站制作网站设计培训学校有哪些