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

室内设计师招聘网站猎头网站怎么做

室内设计师招聘网站,猎头网站怎么做,上海网站备案网站,盈世企业邮箱登录入口服务注册与发现的概念 服务之间相互访问#xff1a; 例如#xff1a;用户中心与内容中心之间相互调用。 问题#xff1a; 服务调用需要知道对方的服务地址#xff0c;地址写在哪里#xff1f; 如果服务是多个实例部署#xff0c;该调用哪一个#xff1f; 如果服务是多…服务注册与发现的概念 服务之间相互访问 例如用户中心与内容中心之间相互调用。 问题 服务调用需要知道对方的服务地址地址写在哪里 如果服务是多个实例部署该调用哪一个 如果服务是多个实例部署每个实例负载如何分配 解决不用修改代码始终能找到服务的方法 独立的配置文件让所有的服务读取这个配置。 依然存在的问题 随着服务越来越多每个服务部署的实例越来越多哪个上线哪个下线不能靠手工维护。 外部配置文件的问题无法感知服务是不是存活当只有调用时才会发现服务存活与否。 服务注册中心。 原理可以把服务注册与发现类比成一张表。  服务注册与发现的产品 注册中心 使用Java开发的有Nacos、Eureka、Zookeeper。 使用Go语言开发的Consul、CoreDNS。 选择注册与发现的产品 首先我们学习的Java更好的兼容优先选择Java开发的。 其次Nacos作为后起之秀当然要借助前辈的优势所以Nacos能支持的都支持了。 在Spring Cloud体系上Alibaba的产品被称之为第二代微服务的典范是应用的趋势所以我们采用Nacos。  服务注册中心 解决了服务始终能被找到并且能及时发现服务是否存活的问题。 一般集群都会部署很多个微服务节点。这些节点一般都具备两种角色称为“服务的提供者” 和 “服务的消费者”。 “服务提供者”将自己的服务地址等信息登记到“服务注册中心”中调用者“服务消费者”需要的时候每次都先去“服务注册中心”查询即可。既解决了人工维护微服务节点状态的问题也能解决多节点间负载均衡的问题。 服务注册与发现-Nacos 下载Nacos Redirecting to: https://nacos.io/ 登陆Nacos。 https://localhost:8848/nacos 重要的功能 服务管理。 配置管理。 使用Nacos 新建Spring Boot的web项目。 导入Spring Cloud Alibaba依赖。 各版本之间的对应。 导入Spring Cloud Alibaba依赖。 在dependencyManagement中加入依赖。  dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion2.2.6.RELEASE/versiontypepom/typescopeimport/scope /dependency在dependencies中加入Nacos依赖。 编写配置文件 在application.yml中进行如下配置 server:servlet:context-path:/userport:8080 spring:application:name: user-centercloud:nacos:discovery:server-addr: 127.0.0.1:8848 启动项目注册服务在Nacos控制台中存在配置的应用名称说明服务注册成功。 引入nacos后的架构 服务调用 常见的服务间调用方式有二种 RPCRemote Produce Call远程过程调用。 自定义数据格式基于原生TCP通信速度快、效率高但较为复杂。 比如WebService框架CXF阿里的Dubbo。 HTTP基于HTTP协议的服务调用。 跨平台、跨语言但HTTP协议的信息较为臃肿速度较慢。 比如HttpClient等。 基于HTTP的服务调用 JDK提供的HttpUrlConnection。 Apache的HttpClient。 Spring封装的RestTemplate。 Feign NetFlix提供的在RestTemplate和Ribbon基础上封装。 OpenFeign Spring提供的声明式服务调用。 RestTemplate介绍 RestTemplate: 他简化了与HTTP服务的通信方式统一了RESTful的标准封装了http链接。 相较于HttpClient等框架他是一种更优雅的调用方式。 常用方法 getForEntity()、getForObject()。 postForEntity()、postForObject()、postForLocation()。 PUT()、DELETE()等等。 RestTemplate问题 RestTemplate调用的问题 地址是写死的如果地址发生变化怎么办。 如果部署了多个实例为了负载均衡怎么办 借助DiscoveryClient可以通过服务ID来访问也可以按特定算法来访问服务的某个实例。 通过服务名让服务始终能找到 //从注册中心一直只可以找到user-center listServiceInstanceinstances discoveryclient.getInstances(serviceld:user-center); //使用是jdk1.8的特性 String targetuRL instances.stream().map(instance -instance.geturi().tostring()/ instance.getServiceId()/users/{id}) .findFirst()//如果有多个实例只取第一个实例 .orElseThrow(()-new IllegalArgumentException(当前没有实例)); log.info(targetURL); //通过id查询share Share share shareMapper.selectByPrimaryKey(id); //通过share的userid查询userDTO Integer userId share.getUserId(); UserDTO userDTO restTemplate.getForObject( targetURL, UserDTO.class, userId); 使用随机算法随机访问一个实例 //从注册中心一直只可以找到user-center ListServiceInstanceinstances discoveryclient.getInstances(serviceld:user-center); //使用是jdk1.8的特性 ListStringtargetuRLS instances.stream() .map(instance -instance.getUri().tostring()/ instance.getServiceId()/users/{id}).collect(Collectors.tolist());//随机一个实例出来 int i ThreadLocalRandom.current().nextInt(targetURLS.size());String targetuRL targetURLS.get(i); log.info(targetURL); 负载均衡简析 负载均衡是对系统的高可用、网络压力的缓解和处理能力扩容的重要手段之一。 以上例子中DiscoveryClient实现了简单的负载均衡 但仍然存在问题 访问服务的代码实现了负载但很繁琐。 在业务逻辑中出现了选择服务实例的代码耦合高。 Ribbon简介 Ribbon是Netflix开源的客户端侧的负载均衡器。他简化服务调用的开发并为我们提供一系列的负载均衡的算法。 Ribbon的使用 添加Nacos依赖因为Nacos依赖了Ribbon所以不需要额外引入默认情况下也不需要加配置。 给RestTemplate开启Ribbon Bean LoadBalanced public RestTemplate restTemplate(){return new RestTemplate(); } 修改服务调用代码  //通过id查询share Share share shareMapper.selectByPrimaryKey(id);//通过share的userid查询userDTO Integer userId share.getUserId(); //url直接使用服务名ribbon会给我们自动选择一个实例执行 UserDTo userDTO restTemplate.getForObject( url:http://user-center/user-center/users/{id}, JserDTO.class, userId);Ribbon的负载均衡规则  Ribbon的负载均衡配置 #细粒度配置针对某一个服务 user-center: ribbon: NFLoadBalancerRuleClassName:com.netflix.loadbalancer.RandomRule 为所有微服务配置负载均衡 在ComponentScan外新建全局Ribbon配置类 Configurationpublic class DefaultRibbonconfiguration {Beanpublic IRule ribbonRule(){return new RandomRule();} 所有微服务配置负载均衡 在项目中新增Ribbon配置类  Configuration RibbonClients(defaultConfiguration DefaultRibbonConfiguration.class)public class RibbonConfiguration { } Ribbon的配置项 Ribbon配置属性的方式 clientName.ribbon.xxx 如下属性 NFLoadBalancerClassName: ILoadBalancer实现类。 NFLoadBalancerRuleClassName: Irule实现类。 NFLoadBalancerPingClassName: Iping实现类。 NIWSServerListClassName: ServerList实现类。 NIWSServerListFilterClassName: ServerListFilter实现类  Ribbon懒加载配置 服务重启后第一次访问会比较慢原因是Ribbon默认为所有的微服务开启的是懒加载模式当服务调用到的时候才会去创建对应的请求连接如http://user-center/users/1解决这个问题需要在application.yml中配置如下  ribbon:eager-load;#开启饥饿加载enabled: true#细粒度配置指定服务如果是多个使用逗号分隔clients: user-centerRibbon扩展 在Ribbon的规则中不支持Nacos的权重而Nacos权重在实例的应用中作用很大可根据机器的配置动态调整所承受的请求量所以需要扩展Ribbon的负载均衡策略。  编写代码扩展Ribbon支持Nacos权重继承AbstractLoadBalancerRule编写代码开启配置。 override public Server choose(Object o){ try { BaseLoadBalancer loadBalancer (BaseLoadBalancer)this.getLoadBalancer(); //想要请求的微服务名称 String name loadBalancer.getName(); NamingService namingService nacosDiscoveryProperties.namingServiceInstance(); Instance instance namingService.selectoneHealthyInstance(name); log.info(选择的实例是port{},instance {},instance.getPort(),instance); return new NacosServer(instance); }catch(NacosException e){ e.printstackTrace(); return null;Feign  什么是Feign Feign是Netflix开源的声明式HTTP客户端致力于让编写http请求更简单。 RestTemplate与Feign的区别 OpenFeign 什么是OpenFeign OpenFeign是一个显示声明式的WebService客户端。 Spring Cloud对Feign进行了封装使其支持MVC注解和HttpMessageConverts等可以做到使用HTTP请求访问远程服务就像调用本地方法一样的开发者完全感知不到这是在调用远程方法更感知不到在访问HTTP请求。  使用OpenFeign 在启动类上加注解  编写服务调用接口 在Service中注入并调用相关的方法 OpenFeign的组成  OpenFeign的配置 全局配置日志所有的Feign接口生效 属性配置方式支持的配置项 OpenFeign的性能优化 性能优化的方法 把默认的请求方式修改为httpclient或okhttp。 在配置文件中配置连接池(性能提升15%左右)。 配置feign的日志级别建议设置成BASIC。 引依赖 写配置
http://www.pierceye.com/news/995924/

相关文章:

  • 贵阳网站建设端觉有做数学题的网站吗
  • 网站备案格式网站开发工程师适合女生吗
  • 江门网站建设自助建站广播电台网站建设板块
  • 淮北市建设安全监督站网站文员工作内容
  • 先做网站还是app海北网站建设
  • 网站中转页怎么做做网页需要什么
  • 台州城乡建设规划网站房产管理局官网入口
  • 徐州手机建站模板宁波公司招聘
  • 类似 wordpress 建站哪里有培训班
  • 广州建设六马路小学网站微营销软件免费下载
  • 广州网站推广解决方案网站建设标志头像图片
  • 网站建设 中企动力成都qq空间wordpress
  • 什么是定制网站php网站开发面试
  • 网站建设推广专家服务重庆万泰建设集团有限公司
  • 2017两学一做竞赛网站手游游戏推广平台
  • 贵州灵溪seo整站优化wordpress开发文档(chm)
  • iis7 网站权限设置亚马逊网站开发设计
  • 贵阳做网站哪家好复古网站设计
  • 网站跳转是什么意思58这样网站怎么做
  • 易语言网站批量注册怎么做百度模板网站模板
  • 海伦市网站山西大川建设有限公司网站
  • 快速搭建网站域名绑定设置网站优化是往新闻中心发新闻吗
  • 复刻手表网站公众号快速涨10000粉丝方法
  • 珠海网站系统建设项目制作网页的网站推荐
  • 做网站公司怎么选宁波外贸公司排行
  • 在因特网上建设网站可选择的方案网络营销实际上就是网上营销
  • 网站建设思路梳理wordpress 修改数据库表
  • 定制建站橱柜企业网站模板
  • 做网站js框架施工企业三金压降指的是哪三金
  • 现在建设一个网站需要什么技术网页设计素材推荐