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

网站接单做项目/长沙网站建设

网站接单做项目,长沙网站建设,医院网站建设策划案模板,烟台做网站价格一:SpringCloud之Hystrix断路器 分布式系统面临的问题 复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免的失败。 什么是Hystrix? 什么是服务熔断? 二:将Hystrix熔断…

一:SpringCloud之Hystrix断路器

  1.  分布式系统面临的问题
     复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免的失败。
         
  2. 什么是Hystrix?
        
  3. 什么是服务熔断?
      
     

二:将Hystrix熔断器整合到项目中去(参考之前的8001提供者部门

       微服务,这个新的提供者微服务加了熔断器)

  1.  创建子模块microservicecloud-provider-dept-hystrix-8001微服务
         
  2. 在pom.xml中添加依赖(这个文件与之前的8001基本没有区别,只有新增了spring-cloud-starter-hystrix依赖)
      
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.topcheer</groupId><artifactId>microservicecloud</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>microservicecloud-provider-dept-hystrix-8001</artifactId><dependencies><!--引入hystrix依赖  --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-hystrix</artifactId></dependency> <!--这里我们引入自己自定义的api通用包,就可以使用Dept部门实体  --> <dependency><groupId>com.topcheer</groupId><artifactId>microservicecloud-api</artifactId><version>${project.version}</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jetty</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency><!--修改后立即热部署  --><dependency><groupId>org.springframework</groupId><artifactId>springloaded</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId></dependency><!--将微服务provider注册进eureka  --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId></dependency> <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-config</artifactId></dependency> <!--添加actuator监控信息完善  --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency></dependencies>
    </project>
  3. 修改application.yml文件内容(这个文件与之前的8001基本没有区别,只有instance-id名称编号了)
     
    server:port: 8001 #设置端口为8001mybatis:config-location: classpath:mybatis/mybatis.cfg.xml  #设置mybatis配置文件所在的路径type-aliases-package: com.topcheer.springcloud.entities #扫描所有实体类所在包mapper-locations:- classpath:mybatis/mapper/**/*.xml #扫描mybatis的映射文件spring:application:name: microservicecloud-deptdatasource:type: com.alibaba.druid.pool.DruidDataSource #设置当前数据源driver-class-name: org.gjt.mm.mysql.Driver #设置mysql驱动包url: jdbc:mysql://localhost:3306/cloudDB01 #设置数据库名称username: rootpassword: 897570dbcp2:min-idle: 5 #设置数据库连接池的最小维持连接数initial-size: 5 #设置初始化链接数max-total: 5 #设置最大连接数max-wait-millis: 200 #设置链接获取的最大超时时间  eureka: #这个就是将8001服务端注册进入注册中心,下面的就是注册中心的注册地址client:service-url:defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/instance: instance-id: microservicecloud-dept8001-hystrix #自定义服务名称信息prefer-ip-address: true #访问路径可以显示IP地址     info:app.name: topcheer-microservicecloudcompany.name: com.topcheerbuild.artifactId: $project.artifactId$build.version: $project.version$   
  4. 将之前8001的java代码拷贝过来,部分进行修改
        
     a:修改DeptController.java类,我们对这个类中的get方法进行改造,我们在调用
           这个方法进行查询的时候,传递一个参数,数据库中查询不到,如果返回null,
           那么我们就人为的抛出一个异常,那么我们这里就可以使用hystrix去解决这个
           问题,代码如下:
           
     b:修改启动类DeptProvider_hystrix_8001_App.java
                   
  5. 测试,首先启动3个Eureka的注册中心,再启动microservicecloud-provider-dept-hystrix-8001这个新建的带Hystrix
    的提供者微服务,最后启动我们的80消费者微服务。
     a:访问7001
            
     b:访问我们刚刚创建的get方法,先访问一个存在的数据
           
     c:访问一个不存在的数据
           

三:Hystrix之服务降级

           c:修改microservicecloud-consumer-dept-feign整合了feign的消费者微服务中application.yml文件
                 
           d:测试,首先启动3个Eureka的服务,再启动microservicecloud-provider-dept-8001这个没有加Hystrix的
                提供者微服务,以及后面启动microservicecloud-consumer-dept-feign消费者微服务
                 ①首先正常访问get方法
                        
                  ②下面我们故意关闭microservicecloud-provider-dept-8001微服务
                        

  1.  什么叫做服务降级?(并且上面的Hystrix的@HystrixCommand方式会导致,每多一个方法,就需要
      创建一个fallbackMethod对应的方法,比较麻烦)。
         
      
      简单点说:就是比如现在我们存在3个微服务A,B,C,现在微服务A访问量特别大,销耗的内存特别大,导致
                        整体服务器内存不够,那么现在为了维持服务器的运行不会崩溃,那么我们可以先将微服务C先
                        关掉,等待A的访问量小了,再开启C.
      注意:服务降级处理是在客户端完成的,与服务端没有关系。
  2.  实现步骤如下:
     a:修改microservicecloud-api工程,根据已有的DeptClientService接口,新建一个实现了FallbackFactory接口的类。
              
           
      b:修改DeptClientService这个对应提供者服务端方法调用的接口类
               

四:服务监控之hystrixDashboard

  1.  简介
                
  2. 项目实例步骤
     ⑴新建微服务microservicecloud-consumer-hystrix-dashboard
         
     ⑵修改pom.xml文件,添加依赖
         
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.topcheer</groupId><artifactId>microservicecloud</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>microservicecloud-consumer-hystrix-dashboard</artifactId>
    <dependencies><!--引入hystrix-dashboard依赖  --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-hystrix</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-hystrix-dashboard</artifactId></dependency><!--这里我们引入自己自定义的api通用包,就可以使用Dept部门实体  --> <dependency><groupId>com.topcheer</groupId><artifactId>microservicecloud-api</artifactId><version>${project.version}</version> </dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--修改后立即热部署  --><dependency><groupId>org.springframework</groupId><artifactId>springloaded</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId></dependency><!--Ribbon相关的依赖 ,ribbon需要和eureka整合,所以需要这个eureka依赖 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-ribbon</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-config</artifactId></dependency></dependencies>
    </project>

    ⑶修改application.yml文件
         
     ⑷创建启动类DeptConsumer_DashBoard_App
         
     ⑸我们需要监控所有的提供者微服务,那么我们需要在这些微服务中进行配置,都要添加一个actuator依赖
      (8001,8002,8003都添加   即可)
          
      ⑹下面我们单独启动刚刚新建的这个microservicecloud-consumer-hystrix-dashboard微服务,看看是否可以正常启动
          

  3. 上面可以发现我们的hystrix-dashboard已经成功启动,下面我们可以启动其他微服务进行测试了
     a:首先启动3个Eureka注册中心,再启动带hystrix熔断降级的微服务microservicecloud-provider-dept-hystrix-8001,
           最后启动我们新建的microservicecloud-consumer-hystrix-dashboard微服务
     b:效果
           
     c:那么现在我们要使用hystrixdashboard去监控这个8001提供者微服务,该如何做呢?
           地址:http://ip:要监控微服务的端口/hystrix.stream
           
      d:让效果图形化
           
             
      e:  图形化的效果如下
          

  4. 上面图形化的结果看不懂怎办?
      a:7种颜色一一对应
          
      b:一圈一线
           
           
           
       c:下面我们多次通过http://localhost:8001/dept/get/1地址访问,看看图形变化
             
      d:图形中含义
            
            

http://www.jmfq.cn/news/4885345.html

相关文章:

  • 如何做繁体字网站/百度优化软件
  • wordpress可以做什么站/外贸网站建设
  • 大连做网站多少钱/网站seo分析
  • html5微网站源码/保定百度seo排名
  • 做资源下载网站好吗/电商网站前端页面内容编写
  • 网站开发微信支付功能/软文写手兼职
  • 芜湖做网站哪个公司好/肇庆seo外包公司
  • 广州微网站建设/搜索引擎网站推广如何优化
  • 手机网站 wap/建网站
  • 做网站开发的公司销售/网络营销公司名字大全
  • 域名到期了网站备案还有效吗/灰色推广
  • vs可以做网站吗/优化设计七年级下册数学答案
  • 看网站是不是WP做的/企业网站定制
  • 免费的黄冈网站有哪些代码/河南网站推广公司
  • 商丘网站建设模板/双滦区seo整站排名
  • 龙华学校网站建设/刷seo快速排名
  • 南海今天最新军事新闻最新消息/seo品牌
  • 建设部资质申报网站/it教育培训机构排名
  • 深圳市龙华区政府在线官网/宁波seo排名外包公司
  • 网站建设电话销售/苏州网站
  • 购物网电商网站开发毕业论文/互联网营销课程体系
  • 武汉网站建设公司厂家地址/河北高端网站建设
  • 文章收录网站/项目推广方案
  • 孝感网站的建设/b站2023推广网站
  • 软件产品/windows优化大师的功能
  • 广东佛山顺德区疫情最新消息/青岛建站seo公司
  • 常用网站架构/廊坊网站建设公司
  • wordpress文章缩略图插件/济南网络优化哪家专业
  • 社区网站如何做/网络营销方案设计
  • ppt做书模板下载网站/广告联盟平台排名