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

网站设计优缺点分析asp做网站缺点

网站设计优缺点分析,asp做网站缺点,青柠影院免费观看电视剧高清,百度云网盘网页版登录内容简介 在项目开发中#xff0c;除了考虑正常的调用之外#xff0c;负载均衡和故障转移也是关注的重点#xff0c;这也是feign ribbon的优势所在#xff0c;基于上面两篇文章的基础#xff0c;接下来我们开展最后一篇原生态fegin结合ribbon服务进行服务远程调用且实现负…内容简介 在项目开发中除了考虑正常的调用之外负载均衡和故障转移也是关注的重点这也是feign ribbon的优势所在基于上面两篇文章的基础接下来我们开展最后一篇原生态fegin结合ribbon服务进行服务远程调用且实现负载均衡机制也帮助大家学习ribbon奠定基础。 maven依赖 dependenciesdependencygroupIdcom.netflix.feigngroupIdartifactIdfeign-coreartifactIdversion8.18.0versiondependencydependencygroupIdcom.netflix.feigngroupIdartifactIdfeign-jacksonartifactIdversion8.18.0versiondependencydependencygroupIdcom.netflix.feigngroupIdartifactIdfeign-ribbonartifactIdversion8.18.0versiondependencydependencygroupIdcom.netflix.archaiusgroupIdartifactIdarchaius-coreartifactId dependencydependencies 复制代码其中feign-core和feign-ribbon是必须的如果需要在服务消费端和服务生产端之间进行对象交互建议使用feign-jackson 配置读取 import com.netflix.config.ConfigurationManager; import feign.Feign; import feign.jackson.JacksonDecoder; import feign.jackson.JacksonEncoder; import feign.ribbon.RibbonClient; public class AppRun {public static void main(String[] args) throws Exception {User param new User();param.setUsername(test);RemoteService service Feign.builder().client(RibbonClient.create()).encoder(new JacksonEncoder()).decoder(new JacksonDecoder()).options(new Options(1000, 3500)).retryer(new Retryer.Default(5000, 5000, 3)).target(RemoteService.class, http://remote-client/gradle-web);for (int i 1; i 10; i) {User result service.getOwner(param);System.out.println(result.getId() , result.getUsername());}} } 复制代码声明了一个User类型的对象param该对象将作为参数被发送至服务生产端。重点在于通过RibbonClient.create()使得Feign对象获得了Ribbon的特性。之后通过encoder,decoder设置编码器与解码器并通过target方法将之前定义的接口RemoteService与一个URL地址http://remote-client/gradle-web进行了绑定。 现在来看remote-client.properties中的配置项主要多是RemoteClient的配置机制 remote-client.ribbon.MaxAutoRetries1 remote-client.ribbon.MaxAutoRetriesNextServer1 remote-client.ribbon.OkToRetryOnAllOperationstrue remote-client.ribbon.ServerListRefreshInterval2000 remote-client.ribbon.ConnectTimeout3000 remote-client.ribbon.ReadTimeout3000 remote-client.ribbon.listOfServers127.0.0.1:8080,127.0.0.1:8085 remote-client.ribbon.EnablePrimeConnectionsfalse 复制代码所有的key都以remote-client开头表明这些配置项作用于名为remote-client的服务。其实就是与之前绑定RemoteService接口的URL地址的schema相对应。 重点看remote-client.ribbon.listOfServers配置项该配置项指定了服务生产端的真实地址。 在调用时会被替换为 RequestLine指定的地址进行拼接得到最终请求地址。本例中最终请求地址为 由于使用的ribbon所以feign不再需要配置超时时长重试策略。ribbon提供了更为完善的策略实现。 本例中服务生产端是一个简单的springMvc实现如下: public class UserController {public User list( User user) throws InterruptedException{HttpServletRequest request ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();user.setId(new Long(request.getLocalPort()));user.setUsername(user.getUsername().toUpperCase());return user;} }复制代码故障转移是通过remote-client.properties中的配置项进行配置。 首先利用archaius项目的com.netflix.config.ConfigurationManager读取配置文件remote-client.properties,该文件位于src/main/resources下。 负载均衡的策略又是如何设置呢 import com.netflix.client.ClientFactory; import com.netflix.client.config.IClientConfig; import com.netflix.config.ConfigurationManager; import com.netflix.loadbalancer.ILoadBalancer; import com.netflix.loadbalancer.RandomRule; import com.netflix.loadbalancer.ZoneAwareLoadBalancer; import feign.Feign; import feign.jackson.JacksonDecoder; import feign.jackson.JacksonEncoder; import feign.ribbon.LBClient; import feign.ribbon.LBClientFactory; import feign.ribbon.RibbonClient; public class AppRun {public static void main(String[] args) throws Exception {ConfigurationManager.loadPropertiesFromResources(remote-client.properties);User param new User();param.setUsername(test);RibbonClient client RibbonClient.builder().lbClientFactory(new LBClientFactory() {public LBClient create(String clientName) {IClientConfig config ClientFactory.getNamedConfig(clientName);ILoadBalancer lb ClientFactory.getNamedLoadBalancer(clientName);ZoneAwareLoadBalancer zb (ZoneAwareLoadBalancer) lb;zb.setRule(new RandomRule());return LBClient.create(lb, config);}}).build();RemoteService service Feign.builder().client(client).encoder(new JacksonEncoder()).decoder(new JacksonDecoder()).options(new Options(1000, 3500)).retryer(new Retryer.Default(5000, 5000, 3)).target(RemoteService.class, http://remote-client/gradle-web);for (int i 1; i 10; i) {User result service.getOwner(param);System.out.println(result.getId() , result.getUsername());}} } 复制代码private IRule zoneAvoidanceRule() {return new ZoneAvoidanceRule();}private IRule randomRule() {return new RandomRule();} 复制代码不再使用RibbonClient.create()来创建默认的RibbonClient而是通过RibbonClient.builder()获得feign.ribbon.Builder,进而设置LBClientFactory的实现来定制LBClient在创建LBClient的过程中即可指定负载策略的具体实现。 分享资源 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tay3QQq8-1691467722037)(https://pic.imgdb.cn/item/64d0dc6a1ddac507cc857b30.png)] 获取以上资源请访问开源项目 点击跳转
http://www.hkea.cn/news/14495023/

相关文章:

  • 青山湖南昌网站建设网页设计与制作期末作业成品
  • 专门做自助游攻略的网站是哪个茶叶官网网站建设
  • 扬州建设网站公司湖北创研楚商网站建设销售人员
  • 优秀的企业网站设计wordpress 360收录
  • 阿图什网站可以做电算化的网站
  • 怎么做企业功能网站唯品会网站建设
  • 网站建设应该注意哪些原则襄阳网站seo技巧
  • 百度做任务的网站wordpress订阅会员
  • 网站建设创客win wordpress 静态
  • 开发网站所用技术重庆云阳网站建设公司
  • 做一个英文网站2018做网站前景好么
  • 网站顶部广告素材创鑫云网络
  • WordPress网站运行时间深圳创新创业大赛
  • 网站该怎么找线上外贸平台有哪些
  • 公司做网站卖东西要什么证网站优化种类
  • 环保主题静态网站模板下载怎么做h5动态页面
  • 东莞网站建设信科平面设计模板
  • 贵州毕节网站建设移动开发网站建设
  • 北京市保障房建设投资中心网站首页广州网站定做教程
  • 福建省建住房建设部网站游戏网站建设需要多少钱
  • 凡客建网站网站如何快速被收录
  • 齐齐哈尔网站建设公司科技股
  • 有趣的网站游戏建设黑彩网站
  • 如何调整网站板块位置建筑工程管理软件
  • 做便宜的宝贝的网站人才网最新招聘
  • 成都高端模板建站为传销做网站
  • 河源北京网站建设网站空间续费后网页不能打开
  • phpcms可以做哪些网站wordpress生成二维码
  • 站群管理系统cms任务发布插件wordpress
  • 江苏城乡住房建设部网站潍坊专业网站制作公司营销