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

多媒体在网站开发的分析wordpress 网站标题

多媒体在网站开发的分析,wordpress 网站标题,百度首页排名优化公司,房产中介网站建设模板目录​​​​​​​ 1、Ribbon 1.1 Ribbon简介 1.2 Ribbon负载均衡 负载均衡原理 负载均衡策略 Ribbon和Nginx的区别 1.3 服务调用和Ribbon负载均衡实现 2、FeignopenFeign 3、Feign支持的配置 日志功能 连接池 feign-api远程包 1、Ribbon 1.1 Ribbon简介 Ribb…目录​​​​​​​ 1、Ribbon 1.1 Ribbon简介 1.2 Ribbon负载均衡 负载均衡原理 负载均衡策略 Ribbon和Nginx的区别 1.3 服务调用和Ribbon负载均衡实现 2、FeignopenFeign 3、Feign支持的配置 日志功能 连接池 feign-api远程包 1、Ribbon 1.1 Ribbon简介 Ribbon是一个用于客户端负载均衡的组件它是Netflix开源的一个项目。在微服务架构中系统会拆分为多个小型的服务每个服务都有自己独立的服务器实例。Ribbon所具有的特点客户端负载均衡将请求发送到多个服务实例中的一个。多种负载均衡算法Ribbon支持多种负载均衡算法如轮询、随机、权重等可以根据应用的需求选择适合的算法。服务实例自动发现Ribbon可以与服务注册中心集成自动发现可用的服务实例。容错和重试机制如果某个服务实例不可用Ribbon会自动选择另一个可用的实例进行请求提高系统的容错能力。 1.2 Ribbon负载均衡 负载均衡原理 服务提供者order-service通过发起请求localhost:8080/order/101远程调用http://user-service/user/1分别轮询转发到服务消费者user-service和user-service1。 //继承客户端请求的负载均衡拦截器 LoadBalancerInterceptor implements ClientHttpRequestInterceptorOverridepublic ClientHttpResponse intercept(final HttpRequest request, final byte[] body,final ClientHttpRequestExecution execution) throws IOException {final URI originalUri request.getURI(); //服务的路径String serviceName originalUri.getHost(); // 不同路径的服务名Assert.state(serviceName ! null,Request URI does not contain a valid hostname: originalUri);return this.loadBalancer.execute(serviceName, // 处理不同服务执行路径this.requestFactory.createRequest(request, body, execution));}//从服务列表中选择一个去执行 public T T execute(String serviceId, LoadBalancerRequestT request, Object hint)throws IOException {ILoadBalancer loadBalancer getLoadBalancer(serviceId);Server server getServer(loadBalancer, hint);if (server null) {throw new IllegalStateException(No instances available for serviceId);}RibbonServer ribbonServer new RibbonServer(serviceId, server,isSecure(server, serviceId),serverIntrospector(serviceId).getMetadata(server));return execute(serviceId, ribbonServer, request);} 负载均衡策略 实现类 名称 解释 RoundRobinRule 轮询策略 按照轮询的方式选择可用的服务实例依次轮流分发请求。 RandomRule 随机策略 随机选择可用的服务实例来处理请求。 WeightedResponseTimeRule 加权响应时间策略 根据每个服务实例的响应时间和权重来计算一个权重值选择权重值较小的实例处理请求。 RetryRule 重试策略 在选择可用的服务实例时会在一定次数内进行重试以提高容错能力。 BestAvailableRule 最低并发策略 会先过滤出并发连接数量最低的服务实例然后从中选择一个处理请求。 AvailabilityFilteringRule 可用性过滤策略 首先排除因故障而被标记为不可用的服务实例然后按照轮询的方式选择可用的服务实例。 ZoneAvoidanceRule 区域感知策略 Ribbon会根据服务实例所在的区域以及区域的可用性来选择服务实例。 Ribbon和Nginx的区别 架构上Ribbon是一个客户端负载均衡组件它通常与服务调用客户端集成在一起通过轮询、随机等算法选择可用的服务实例。而Nginx是一个独立的反向代理服务器用于将客户端请求转发给后端服务器。 协议上Ribbon主要用于HTTP、TCP等通信协议的负载均衡适用于微服务架构中的服务调用。而Nginx支持更多的协议如HTTP、HTTPS、SMTP、POP3等可以用于多场景的负载均衡和反向代理。 功能上Ribbon提供了更灵活的负载均衡策略、重试机制、服务健康检查等功能且可以与Spring Cloud等技术栈集成方便在微服务架构中使用。而Nginx不仅具有负载均衡和反向代理的功能还支持缓存、gzip压缩、SSL/TLS加密等高级特性。 部署管理上Ribbon通常作为客户端的一部分集成在应用程序中可以在应用中灵活配置和管理适合分布式部署。而Nginx是独立的服务器软件需要单独部署和配置可以集中管理多个应用的负载均衡配置。 1.3 服务调用和Ribbon负载均衡实现 Ribbon依赖于spring-cloud-starter-netflix-eureka-client包 自定义创建远程调用对象 /*** 远程调用和负载均衡* return*/LoadBalancedBeanpublic RestTemplate restTemplate(){return new RestTemplate();} controller发出的请求完成调用并进行负载均衡默认的轮询负载均衡 //远程调用 User user restTemplate.getForObject(http://user-service/user/ order.getUserId(), User.class); 自定义负载均衡策略对象 /*** 自定义负载均衡策略*/Beanpublic IRule randomRule(){return new RandomRule();} application.yml配置负载均衡策略 user-service:ribbon:NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule # 负载均衡规则 ribbon:eager-load:enabled: trueclients: userservice # 饥饿加载 以上是Ribbon完成的负载均衡调用远程微服务。 2、FeignopenFeign Feign是一个受Retrofit、JAXRS-2.0和WebSocket启发的Java到HTTP客户端绑定。是声明式客户端,通过发送Rest接口进行请求。为了维护请求参数让编程规范更统一使代码更有可读性。 官网 pom.xml !-- openfeign --dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId/dependency 主启动类OrderApplication 加上EnableFeignClients开启了远程调用。 EnableFeignClients MapperScan(com.itcast.order.mapper) SpringBootApplication public class OrderApplication {public static void main(String[] args) {SpringApplication.run(OrderApplication.class, args);} 自定义Feign客户端接口 FeignClient(userservice) public interface UserClient {GetMapping(/user/{id})User findById(PathVariable(id) Long id);} controller接口注入UserClient接口并使用Feign发出http的Get请求查询用户。 GetMapping({orderId})public Order queryOrderByUserId(PathVariable(orderId) Long orderId) {// 根据id查询订单并返回Order order orderService.queryOrderById(orderId);//远程调用 // User user restTemplate.getForObject(http://user-service/user/ order.getUserId(), User.class);//使用Feign发起http请求查询用户User user userClient.findById(order.getUserId());order.setUser(user);return order;} 这样代码优雅的可读性成功调用并实现负载均衡~ 3、Feign支持的配置 日志功能 日志级别 BASIC仅记录请求的方法URL以及响应状态码和执行时间。 FULL记录所有请求和响应的明细包括头信息、请求体、元数据。 HEADERS记录请求的方法URL以及响应状态码和执行时间额外记录了请求和响应的头信息。 NONE默认值不记录任何日志信息。 自定义config/DefaultFeignConfiguration日志级别的配置类 Configuration public class DefaultFeignConfiguration {Beanpublic Logger.Level feignLogLevel(){return Logger.Level.FULL; //日志级别}} 局部定义在远程接口上 FeignClient(value userservice, configuration DefaultFeignConfiguration.class) 全局定义主启动类上 EnableFeignClients(defaultConfiguration DefaultFeignConfiguration.class) application.yml feign:client:config: default # 某个微服务userservice设置的日志, default全局日志loggerLevel: FULL # 日志级别 后台打印日志级别FULL效果 连接池 pom.xml !-- httpclient --dependencygroupIdio.github.openfeign/groupIdartifactIdfeign-httpclient/artifactId/dependency application.yml feign:httpclient: # 连接池enabled: true # 开启feign对HttpClient的支持max-connections: 200 # 最大的连接数,默认200max-connections-per-route: 50 # 每个路径的最大连接数 默认 50 feign底层通过httpClient进行负载均衡的过程 feign-api远程包 新建feign-api模块 pom.xml !-- openfeign --dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId/dependency 指定feign扫描服务包 EnableFeignClients(defaultConfiguration DefaultFeignConfiguration.class, basePackages com.itcast.feign.client) 指定feign加载client服务接口 EnableFeignClients(defaultConfiguration DefaultFeignConfiguration.class, clients {UserClient.class})
http://www.w-s-a.com/news/583995/

相关文章:

  • 邢台网站建设电话网站界面类型
  • 网站制作合同模板做一个网站能挣多少钱
  • 汶上1500元网站建设互联网高端官网
  • 广州做公司网站网站开发培训机构
  • 网站建设与维护 课件网页版qq安全中心登录入口
  • 做三个月网站广告收入dw如何制作网页
  • ...课程网站建设简介工信部 网站备案查询
  • 网站代码建设 实例企业网站建设大概的费用
  • 制作网站软件排行榜过年做啥网站致富
  • 哪里有做网站企业seo关键词优化
  • 上海金山网站建设公司手机淘宝客网站怎么做的
  • 网站开发需要公司做网站费用计入什么科目
  • 网站优化有哪些类型免费制作app的傻瓜软件
  • 如何做网站咨询wordpress get
  • 企业网站建设网站做网站用别人的图片
  • 站长统计代码个人网站源代码
  • 求推荐专门做借条的网站公众号排版编辑器
  • 动态做网站网站开发语言查询 蔡学镛
  • 莆田网站建设创意自助建站英文
  • cms系统创建静态网站龙岗网站建设哪家好
  • 自己做的网站被封了邢台规划局网站建设
  • 网站建设项目合同wordpress主题没法用
  • 个旧市哪里有做网站wordpress内页php页面
  • 程序员接活的平台网站互联网平台建设方案
  • 网站安全建设模板深圳企业管理咨询公司
  • 做网站 还是淘宝店wordpress分类链接后加
  • wordpress腾讯云 COSseo内容优化心得
  • 特价旅游机票网站建设i营销
  • 如何成立网站深圳创业项目
  • 建设商业网站惠州网站建设推荐乐云seo