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

地产平面网站大专软件技术好就业吗

地产平面网站,大专软件技术好就业吗,互联网公司加盟,网站建设流程视频上一篇#xff1a;04-Zookeeper集群详解 1. Zookeeper 分布式锁加锁原理 如上实现方式在并发问题比较严重的情况下#xff0c;性能会下降的比较厉害#xff0c;主要原因是#xff0c;所有的连接都在对同一个节点进行监听#xff0c;当服务器检测到删除事件时#xff0c…上一篇04-Zookeeper集群详解 1. Zookeeper 分布式锁加锁原理 如上实现方式在并发问题比较严重的情况下性能会下降的比较厉害主要原因是所有的连接都在对同一个节点进行监听当服务器检测到删除事件时要通知所有的连接所有的连接同时收到事件再次并发竞争这就是羊群效应。这种加锁方式是非公平锁的具体实现如何避免呢我们看下面这种方式。 如上借助于临时顺序节点可以避免同时多个节点的并发竞争锁缓解了服务端压力。这种实现方式所有加锁请求都进行排队加锁是公平锁的具体实现。 前面这两种加锁方式有一个共同的特质就是都是互斥锁同一时间只能有一个请求占用如果是大量的并发上来性能是会急剧下降的所有的请求都得加锁那是不是真的所有的请求都需要加锁呢答案是否定的比如如果数据没有进行任何修改的话是不需要加锁的但是如果读数据的请求还没读完这个时候来了一个写请求怎么办呢有人已经在读数据了这个时候是不能写数据的不然数据就不正确了。直到前面读锁全部释放掉以后写请求才能执行所以需要给这个读请求加一个标识读锁让写请求知道这个时候是不能修改数据的。不然数据就不一致了。如果已经有人在写数据了再来一个请求写数据也是不允许的这样也会导致数据的不一致所以所有的写请求都需要加一个写锁是为了避免同时对共享数据进行写操作。 举个例子 1、读写并发不一致 2、双写不一致情况 Zookeeper 共享锁实现原理 2. 注册中心实战 注册中心场景分析 在分布式服务体系结构比较简单的场景下我们的服务可能是这样的 现在 Order-Service 需要调用外部服务的 User-Service ,对于外部的服务依赖我们直接配置在我们的服务配置文件中,在服务调用关系比较简单的场景是完全OK的。随着服务的扩张User-Service 可能需要进行集群部署如下 如果系统的调用不是很复杂可以通过配置管理然后实现一个简单的客户端负载均衡也是OK的但是随着业务的发展服务模块进行更加细粒度的划分业务也变得更加复杂再使用简单的配置文件管理将变得难以维护。当然我们可以再前面加一个服务代理比如nginx做反向代理 如下 如果我们是如下场景呢 服务不再是A-B,B-C 那么简单而是错综复杂的微小服务的调用 这个时候我们可以借助于Zookeeper的基本特性来实现一个注册中心,什么是注册中心顾名思义就是让众多的服务都在Zookeeper中进行注册啥是注册注册就是把自己的一些服务信息比如IP端口还有一些更加具体的服务信息都写到 Zookeeper节点上 这样有需要的服务就可以直接从zookeeper上面去拿怎么拿呢 这时我们可以定义统一的名称比如User-Service, 那所有的用户服务在启动的时候都在User-Service 这个节点下面创建一个子节点临时节点这个子节点保持唯一就好代表了每个服务实例的唯一标识有依赖用户服务的比如Order-Service 就可以通过User-Service 这个父节点就能获取所有的User-Service 子节点并且获取所有的子节点信息IP端口等信息拿到子节点的数据后Order-Service可以对其进行缓存然后实现一个客户端的负载均衡同时还可以对这个User-Service 目录进行监听 这样有新的节点加入或者退出Order-Service都能收到通知这样Order-Service重新获取所有子节点且进行数据更新。这个用户服务的子节点的类型为临时节点。 第一节课有讲过Zookeeper中临时节点生命周期是和SESSION绑定的如果SESSION超时了对应的节点会被删除被删除时Zookeeper 会通知对该节点父节点进行监听的客户端, 这样对应的客户端又可以刷新本地缓存了。当有新服务加入时同样也会通知对应的客户端刷新本地缓存要达到这个目标需要客户端重复的注册对父节点的监听。这样就实现了服务的自动注册和自动退出。 Spring Cloud 生态也提供了Zookeeper注册中心的实现这个项目叫 Spring Cloud Zookeeper 下面我们来进行实战。 项目说明 为了简化需求我们以两个服务来进行讲解实际使用时可以举一反三 user-center : 用户服务 product-center: 产品服务 用户调用产品服务且实现客户端的负载均衡产品服务自动加入集群自动退出服务。 3. 项目构建 创建user-center 项目 同样的方式创建一个 product-center 解压项目用idea打开用maven导入项目 同样的方式引入product-center 项目 配置zookeeper user-center 服务 application.properties spring.application.nameuser-center #zookeeper 连接地址 #如果使用了 spring cloud zookeeper config这个配置应该配置在 bootstrap.yml/bootstrap.properties中 spring.cloud.zookeeper.connect-string192.168.109.200:2181 #将本服务注册到zookeeper如果不希望自己被发现可以配置为false, 默认为 true spring.cloud.zookeeper.discovery.registertrue代码编写 配置 Resttemplate 支持负载均衡方式 SpringBootApplication public class UserCenterApplication {public static void main(String[] args) {SpringApplication.run(UserCenterApplication.class, args);}BeanLoadBalancedpublic RestTemplate restTemplate(){return new RestTemplate();} }编写测试类 TestController Spring Cloud 支持 Feign, Spring RestTemplate,WebClient 以 逻辑名称替代具体url的形式访问。 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate;RestController public class TestController {Autowiredprivate RestTemplate restTemplate;GetMapping(/test)public String test(){return this.restTemplate.getForObject( http://product-center/getInfo ,String.class);} }product-center 服务 application.properties spring.application.nameuser-center #zookeeper 连接地址 spring.cloud.zookeeper.connect-string192.168.109.200:2181 #将本服务注册到zookeeper spring.cloud.zookeeper.discovery.registertrue主类接收一个getInfo 请求 SpringBootApplication RestController public class ProductCenterApplication {Value(${server.port})private String port;Value( ${spring.application.name} )private String name;GetMapping(/getInfo)public String getServerPortAndName(){return this.name : this.port;}public static void main(String[] args) {SpringApplication.run(ProductCenterApplication.class, args);}}启动两个product-center 实例 通过idea 配置启动多个实例用端口区分不同的应用 启动一个user-center 实例默认8080端口 启动服务 访问 http://localhost:8080/test 已经实现了服务端的自动发现和客户端负载均衡。 停掉product-center: 10002再次访问 一定的超时时间过去之后product-center: 10002 会从zookeeper中剔除zookeeper会通知客户端进行本地缓存刷新再次访问 已经实现了失效节点的自动退出。 下一篇
http://www.w-s-a.com/news/102895/

相关文章:

  • 做网站与做游戏那个好网站域名怎么起
  • 有没有做cad单的网站银行网站建设方案视频
  • 和各大网站做视频的工作高校网站群管理系统
  • 中国建设人才服务信息网是正规网站怎么注销自己名下的公司
  • 网站开发新型技术那些网站做任务领q币
  • 海口手机网站建设wordpress微支付宝
  • 做公司网站需要几天深圳自定义网站开发
  • 做网站学多长时间可以学会推广软件公司
  • 网络网站设计培训长沙建站模板大全
  • 站群搭建移动端处理器天梯图
  • 岳池发展建设集团有限公司门户网站湛江seo咨询
  • 手机网站工具关键词排名是什么意思
  • 游民星空是谁做的网站沈阳网站托管公司
  • 做网站搭建需要什么人vs2017移动网站开发
  • 购物网站开发需要什么技术怎么查看网站是否备案
  • 学做电商那个网站好网站建设投票主题
  • 中卫网站推广网络营销毕业设计做网站大小有什么要求
  • 做问卷网站义乌网站建设推广专家
  • 不会编程怎样建设网站昆明做网站哪家
  • 直播网站模板新营销平台电商网站
  • 建设部指定招标网站免费的企业查询软件
  • 做前端常用的网站及软件下载平台优化是什么意思
  • 企石镇仿做网站wordpress 网站白屏
  • 班级网站建设规划书专业定制网红变色杯
  • 上海网站设计公司电话甘肃路桥建设集团有限公司官方网站
  • 哈尔滨网站建设网站开发陕西省建设监理工程协会网站
  • 微信公众号电商网站开发wordpress增加论坛
  • 网站建设视频百度网盘下载免费wordpress搭建
  • 哈尔滨市网站建设公司汕头市公司网站建设平台
  • 东莞网站建设方案外包甘肃两学一做网站