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

嘉兴做网站美工的工作深圳专业做网站的公司哪家好

嘉兴做网站美工的工作,深圳专业做网站的公司哪家好,小型企业网站建设的背景,如何用c 做网站从浅入深 学习 SpringCloud 微服务架构#xff08;八#xff09;Sentinel#xff08;1#xff09; 一、sentinel#xff1a;概述 1、前言 – 服务熔断 Hystrix 的替换方案。 1#xff09;2018年底 Netflix 官方宣布 Hystrix 已经足够稳定#xff0c;不再积极开发 Hys…从浅入深 学习 SpringCloud 微服务架构八Sentinel1 一、sentinel概述 1、前言 – 服务熔断 Hystrix 的替换方案。 12018年底 Netflix 官方宣布 Hystrix 已经足够稳定不再积极开发 Hystrix该项目将处于维护模式。就目前来看 Hystrix 是比较稳定的并且 Hystrix 只是停止开发新的版本并不是完全停止维护Bug什么的依 然会维护的。因此短期内Hystrix 依然是继续使用的。但从长远来看Hystrix总会达到它的生命周期那么Spring Cloud生态中是否有替代产品呢? 2服务熔断 Hystrix 替换方案介绍 Alibaba Sentinel Sentinel 是阿里巴巴开源的一款断路器实现目前在 Spring Cloud 的孵化器项目 SpringCloud Alibaba 中的一员 Sentinel 本身在阿里内部已经被大规模采用非常稳定。因此可以作为一个较好的替代品。 Resilience4J Resilicence4J 一款非常轻量、简单并且文档非常清晰、丰富的熔断工具这也是 Hystrix 官方推荐的替代产品。 不仅如此Resilicence4j 还原生支持 Spring Boot 1.x/2.x而且监控也不像 Hystrix 一样弄 Dashboard/Hystrix 等一堆轮子 而是支持和 Micrometer(Pivotal 开源的监控门面Spring Boot 2.x 中的 Actuator 就是基于 Micrometer的)、prometheus (开源监控系统来自谷歌的论文)、 以及 Dropwizard metrics ( Spring Boot曾经的模仿对象类似于Spring Boot)进行整合。 2、Sevtinel 简介 1随着微服务的流行服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 2Sentinel 具有以下特征: 丰富的应用场景: Sentinel 承接了阿里巴巴近10年的双十一大促流量的核心场景 例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。 完备的实时监控: Sentinel 同时提供实时的监控功能。 您可以在控制台中看到接入应用的单台机器秒级数据甚至500台以下规模的集群的汇总运行情况。 广泛的开源生态: Sentinel 提供开箱即用的与其它开源框架/库的整合模块 例如与SpringCloud、Dubbo、gRPC的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入Sentinel。 完善的 SPI 扩展点: Sentinel提供简单易用、完善的SPI扩展接口。您可以通过实现扩展接口来快速地定制逻辑。 例如定制规则管理、适配动态数据源等。 3、Sentinel 和 Hystrix, resilience4j 的区别 4、Sentinel 支持从 Hystrix 迁移到 Sentinel 二、sentinel管理控制台的安装与执行 1、Sentinel 服务熔断 名词解释 1Sentinel 可以简单的分为 Sentinel 核心库和 Dashboard。 核心库不依赖 Dashboard但是结合 Dashboard 可以取得最好的效果。 2使用 Sentinel 来进行熔断保护主要分为几个步骤: 1.定义资源2.定义规则3.检验规则是否生效。 3说明 资源: 可以是任何东西一个服务服务里的方法甚至是一段代码。规则: Sentinel 支持以下几种规则: 流量控制规则、熔断降级规则、系统保护规则、来源访问控制规则和热点参数规则。Sentinel 的所有规则都可以在内存态中动态地查询及修改修改之后立即生效。 先把可能需要保护的资源定义好之后再配置规则。也可以理解为只要有了资源我们就可以在任何时候灵活地定义各种流量控制规则。 在编码的时候只需要考虑这个代码是否需要保护如果需要保护就将之定义为一个资源。 2、Sentinel 中的管理控制台 1下载 Sentinel 启动控制台 获取 Sentinel 控制台 从官方网站下载 Sertinetl 控制台 jar 包: https://github.com/alibaba/Sentinel/releases/download/1.6.3/sentinel-dashboard-1.6.3.jar 2启动 Sentinel 控制台 使用如下命令启动 Sentinel 控制台: java -Dserver.port8080 -Dcsp.sentine1.dashboard.server1ocalhost:8080 -Dproject.namesentine1-dashboard -jar sentine1-dashboard.jar这里下载的是 sentine1-dashboard-1.6.3.jar 我使用 8086 端口执行命令是java -Dserver.port8086 -Dcsp.sentine1.dashboard.server1ocalhost:8086 -Dproject.namesentine1-dashboard -jar sentinel-dashboard-1.6.3.jar3相关参数说明 其中 -Dserver.port8080 用于指定 Sentinel 控制台端口为 8080。 从 Sentinel 1.6.0 起Sentinel 控制台引入基本的登录功能默认用户名和密码都是 sentine1。可以参考 鉴权模块文档配置用户名和密码。 启动 Sentinel 控制台需要 JDK 版本为 1.8 及以上版本。 4登录 Sertinel 控制台 浏览器地址栏输入localhost:8086 默认用户名和密码都是 sentine1 三、搭建案例 使用 sentinel客户端接入管理控制台 1、Sentinel 组件 使用步骤 1管理 Sentinel 控制台 从官方网站下载 Sentinel 控制台 jar 包: https://github.com/alibaba/Sentinel/releases/download/1.6.3/sentinel-dashboard-1.6.3.jar 使用如下命令启动 Sentinel 控制台: java -Dserver.port8086 -Dcsp.sentine1.dashboard.server1ocalhost:8086 -Dproject.namesentine1-dashboard -jar sentinel-dashboard-1.6.3.jar启动 Sentinel 服务成功后登录 Sertinel 控制台 浏览器地址栏输入localhost:8086 默认用户名和密码都是 sentinel 2客户端能接入 Sentinel 控制台将所有的服务交给控制台管理。 客户端接和 Sentinel 管理控制台。在客户端需要管理微服务上引入坐标。在客户端配置启动参数。 2、搭建案例—准备 mysql 数据库表创建 spring_cloud_sentinel_demo 的 maven 父工程 2.1 准备 mysql 数据库表。 创建数据库 create database shop; 使用数据库 use shop; 创建数据表 CREATE TABLE tb_product (id int NOT NULL AUTO_INCREMENT,product_name varchar(40) DEFAULT NULL COMMENT 名称,status int DEFAULT NULL COMMENT 状态,price decimal(10,2) DEFAULT NULL COMMENT 单价,product_desc varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 描述,caption varchar(255) DEFAULT NULL COMMENT 标题,inventory int DEFAULT NULL COMMENT 库存,PRIMARY KEY (id)) ENGINEInnoDB AUTO_INCREMENT3 DEFAULT CHARSETutf8mb3 向 mysql 数据表中插入数据 insert into tb_product (id, product_name, status, price, product_desc, caption, inventory) values(1,iPhone 15 Pro,1,7999.00,iPhone 15 Pro 6.7 英寸或 6.1 英寸, 超视网膜 XDR 显示屏,ProMotion 自适应刷新率技术,钛金属搭配亚光质感玻璃背板, 灵动岛功能, A17 Pro 芯片,配备 6 核图形处理器, Pro 级摄像头系统,主摄 4800 万像素 | 超广角 | 长焦, 10 倍, 支持 USB 3, 视频播放最长可达 29 小时。 ,iPhone 15 Pro 巅峰之作,99);2.2 springcloud 与 springcloud-Alibaba 和 springboot 版本依赖关系推荐使用。 Spring Cloud VersionSpring Cloud Alibaba VersionSpring Boot VersionSpring Cloud Greenwich20 RELEASE2.1.X.RELEASESpring Cloud Finchley2.0.0.RELEASE2.0.X.RELEASESpring Cloud Edgware1.5.0.RELEASE1.5.X.RELEASE 2.3 创建 artifactId 名为 spring_cloud_sentinel_demo 的 maven 工程。 父工程不写代码可以删除 src 目录。 -- idea -- File -- New -- Project -- Maven Project SDK: ( 1.8(java version 1.8.0_131 ) -- Next -- Groupld : ( djh.it )Artifactld : ( spring_cloud_sentinel_demo )Version : 1.0-SNAPSHOT-- Name: ( spring_cloud_sentinel_demo )Location: ( \spring_cloud_sentinel_demo\ ) -- Finish 2.4 在父工程 spring_cloud_sentinel_demo 的 pom.xml 文件中导入依赖坐标。 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdorg.example/groupIdartifactIdspring_cloud_sentinel_demo/artifactIdpackagingpom/packagingversion1.0-SNAPSHOT/versionmodulesmoduleeureka_service/modulemoduleproduct_service/modulemoduleorder_service_feign/modulemoduleorder_service_rest/module/modulesparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.1.6.RELEASE/version/parentpropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncodingproject.reporting.outputEncodingUTF-8/project.reporting.outputEncodingjava.version1.8/java.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-logging/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.4/versionscopeprovided/scope/dependency/dependenciesdependencyManagementdependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversionGreenwich.RELEASE/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagementrepositoriesrepositoryidspring-snapshots/idnameSpring Snapshots/nameurlhttp://repo.spring.io/libs-snapshot-local/urlsnapshotsenabledtrue/enabled/snapshots/repositoryrepositoryidspring-milestones/idnameSpring Milestones/nameurlhttp://repo.spring.io/libs-milestone-local/urlsnapshotsenabledfalse/enabled/snapshots/repositoryrepositoryidspring-releases/idnameSpring Releases/nameurlhttp://repo.spring.io/libs-release-local/urlsnapshotsenabledfalse/enabled/snapshots/repository/repositoriespluginRepositoriespluginRepositoryidspring-snapshots/idnameSpring Snapshots/nameurlhttp://repo.spring.io/libs-snapshot-local/urlsnapshotsenabledtrue/enabled/snapshots/pluginRepositorypluginRepositoryidspring-milestones/idnameSpring Milestones/nameurlhttp://repo.spring.io/libs-milestone-local/urlsnapshotsenabledfalse/enabled/snapshots/pluginRepository/pluginRepositoriesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build/project !-- spring_cloud_sentinel_demo\pom.xml -- 3、搭建案例—在父工程 spring_cloud_sentinel_demo 下创建子工程eureka_service子模块。 3.1 创建 子工程 eureka_service子模块 -- 右键 spring_cloud_sentinel_demo 父工程-- Modules -- Maven -- Groupld : ( djh.it )Artifactld : ( eureka_service )Version : 1.0-SNAPSHOT-- Next -- Module name: ( eureka_service )Content root : ( \spring_cloud_sentinel_demo\eureka_service )Module file location: ( \spring_cloud_sentinel_demo\eureka_service )-- Finish 3.2 在子工程 eureka_service 子模块中的 pom.xml 中导入依赖 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentartifactIdspring_cloud_sentinel_demo/artifactIdgroupIdorg.example/groupIdversion1.0-SNAPSHOT/version/parentmodelVersion4.0.0/modelVersionartifactIdeureka_service/artifactIddependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-server/artifactId/dependency/dependencies/project !-- spring_cloud_sentinel_demo\eureka_service\pom.xml -- 3.3 在子工程 eureka_service 子模块中创建配置文件 application.yml 配置文件。 ## \spring_cloud_sentinel_demo\eureka_service\src\main\resources\application.yml# 如果演示 eureka 高可用可以模拟两个 EurekaServer, 一个端口 9000一个端口 8000两个需要相互注册。server:port: 9000 # 启动端口 命令行注入。spring:application:name: service-eureka #spring应用名, # 注意 FeignClient 不支持名字带下划线eureka: # 配置 eureka_serverinstance:hostname: localhostclient:register-with-eureka: false # 是否将自己注册到注册中心不配置时默认 true。 配置高可用时须注销此行或配置为 truefetch-registry: false # 是否从 Eureka 中获取注册信息不配置时默认 true。 配置高可用时须注销此行或配置为 trueservice-url: # 配置暴露给 EurekaClient 的请求地址defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/# defaultZone: http://127.0.0.1:9000/eureka/ # 配置高可用时须配置为另一个 EurekaServerApplication 的端口号如8000server:enable-self-preservation: false # 关闭自我保护机制eviction-interval-timer-in-ms: 4000 # 设置剔除服务间隔时间为 4000 毫秒4秒。此参数默认为 true。 3.4 在子工程 eureka_service 子模块中创建 启动类 EurekaServerApplication.java /*** spring_cloud_sentinel_demo\eureka_service\src\main\java\djh\it\eureka\EurekaServerApplication.java** 2024-5-2 eureka 注册中心启动类 EurekaServerApplication.java*/package djh.it.eureka;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;SpringBootApplication EnableEurekaServer //激活 Eureka public class EurekaServerApplication {public static void main(String[] args) {SpringApplication.run(EurekaServerApplication.class, args);} } 4、搭建案例—在父工程 spring_cloud_sentinel_demo 下创建子工程 product_service子模块。 4.1 在父工程 spring_cloud_sentinel_demo 下创建 生产者 子工程 product_service子模块 -- 右键 spring_cloud_sentinel_demo 父工程-- Modules -- Maven -- Groupld : ( djh.it )Artifactld : ( product_service )Version : 1.0-SNAPSHOT-- Next -- Module name: ( product_service )Content root : ( spring_cloud_sentinel_demo\product_service )Module file location: ( spring_cloud_sentinel_demo\product_service )-- Finish 4.2 在 生产者 子工程 product_service 子模块中的 pom.xml 中导入依赖 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentartifactIdspring_cloud_sentinel_demo/artifactIdgroupIdorg.example/groupIdversion1.0-SNAPSHOT/version/parentmodelVersion4.0.0/modelVersionartifactIdproduct_service/artifactIddependenciesdependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.32/version !-- version8.0.26/version --/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-jpa/artifactId/dependency!-- 导入 eureka 注册中心 --dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-client/artifactId/dependency/dependencies /project !-- spring_cloud_sentinel_demo\product_service\pom.xml -- 4.3、在 生产者 子工程 product_service 子模块中创建 商品实体类 Product.java /*** spring_cloud_sentinel_demo\product_service\src\main\java\djh\it\product\domain\Product.java** 2024-5-2 商品实体类 Product.java*/ package djh.it.product.domain;import lombok.Data; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; import java.math.BigDecimal;Data Entity Table(nametb_product) //对应数据库中的数据表 public class Product {Idprivate Long id;private String productName;private Integer status;private BigDecimal price;private String productDesc;private String caption;private Integer inventory;public void setProductName(String productName) {this.productName productName;} } 4.4、在 生产者 子工程 product_service 子模块中创建 dao 持久层接口类 ProductDao.java /*** spring_cloud_sentinel_demo\product_service\src\main\java\djh\it\product\dao\ProductDao.java** 2024-5-2 dao 持久层接口 ProductDao.java*/ package djh.it.product.dao;import djh.it.product.domain.Product; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor;public interface ProductDaoextends JpaRepositoryProduct, Long, JpaSpecificationExecutorProduct {} 4.5 在 生产者 子工程 product_service 子模块中创建 service 服务层 接口类 ProductService.java /*** spring_cloud_sentinel_demo\product_service\src\main\java\djh\it\product\service\ProductService.java** 2024-5-2 service 服务层 接口 ProductService.java*/ package djh.it.product.service;import djh.it.product.domain.Product;public interface ProductService {//根据id查询Product findById(Long id);//保存void save(Product product);//更新void update(Product product);//删除void delete(Long id); } 4.6 在 生产者 子工程 product_service 子模块中创建 service 服务层 实现类 ProductServiceImpl.java /*** spring_cloud_sentinel_demo\product_service\src\main\java\djh\it\product\service\Impl\ProductServiceImpl.java** 2024-5-2 service 服务层 实现类*/ package djh.it.product.service.impl;import djh.it.product.domain.Product; import djh.it.product.dao.ProductDao; import djh.it.product.service.ProductService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;Service public class ProductServiceImpl implements ProductService {Autowiredprivate ProductDao productDao;Overridepublic Product findById(Long id) {return productDao.findById(id).get();}Overridepublic void save(Product product) {productDao.save(product);}Overridepublic void update(Product product) {productDao.save(product);}Overridepublic void delete(Long id) {productDao.deleteById(id);} } 4.7、在 生产者 子工程 product_service 子模块中创建 商品的 controller 类 ProductController.java /*** spring_cloud_sentinel_demo\product_service\src\main\java\djh\it\product\controller\ProductController.java** 2024-5-2 商品的 controller 类 ProductController.java*/ package djh.it.product.controller;import djh.it.product.domain.Product; import djh.it.product.service.ProductService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*;RestController RequestMapping(/product) public class ProductController {Autowiredprivate ProductService productService;//获取服务器端口号Value(${server.port})private String port;//获取服务器IP地址Value(${spring.cloud.client.ip-address}) //springcloud 自动获取当前应用的IP地址private String ip;RequestMapping(value /{id}, method RequestMethod.GET)public Product findById(PathVariable Long id){ // try { // Thread.sleep(2000l); //延迟2秒 // } catch (InterruptedException e) { // e.printStackTrace(); // }Product product productService.findById(id);product.setProductName(访问的服务地址ip:port);return product;}RequestMapping(value , method RequestMethod.POST)public String save (RequestBody Product product){productService.save(product);return 保存成功;} } 4.8、在 生产者 子工程 product_service 子模块中创建配置文件 application.yml ## spring_cloud_sentinel_demo\product_service\src\main\resources\application.ymlserver:port: 9001 # 启动端口 命令行注入。 # port: ${port:9001} # 启动端口设置为动态传参如果未传参数默认端口为 9001spring:application:name: service-product #spring应用名, # 注意 FeignClient 不支持名字带下划线# main:# allow-bean-definition-overriding: true # SpringBoot2.1 需要设定。datasource:driver-class-name: com.mysql.jdbc.Driver # mysql 驱动url: jdbc:mysql://localhost:3306/shop?useUnicodetruecharacterEncodingutf8useSSLfalseserverTimezoneAsia/Shanghaiusername: rootpassword: 012311jpa:database: MySQLshow-sql: trueopen-in-view: trueeureka: # 配置 Eurekaclient:service-url:defaultZone: http://localhost:9000/eureka/ # 多个 eurekaserver 用 , 隔开。instance:prefer-ip-address: true # 使用 ip 地址注册instance-id: ${spring.cloud.client.ip-address}:${server.port} 4.9、在 生产者 子工程 product_service 子模块中创建 启动类 ProductApplication.java /*** spring_cloud_sentinel_demo\product_service\src\main\java\djh\it\product\ProductApplication.java** 2024-5-2 启动类 ProductApplication.java*/ package djh.it.product;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.cloud.netflix.eureka.EnableEurekaClient;SpringBootApplication EntityScan(djh.it.product.domain) EnableEurekaClient //激活 EurekaClient 同 EnableDiscoveryClient 注解 public class ProductApplication {public static void main(String[] args) {SpringApplication.run(ProductApplication.class, args);} } 5、搭建案例—在父工程 spring_cloud_sentinel_demo 下创建子工程 order_service_feign子模块 5.1 创建 消费者 子工程 order_service_feign子模块通过 feign 调用微服务。 -- 右键 spring_cloud_sentinel_demo 父工程-- Modules -- Maven -- Groupld : ( djh.it )Artifactld : ( order_service_feign )Version : 1.0-SNAPSHOT-- Next -- Module name: ( order_service_feign )Content root : ( \spring_cloud_sentinel_demo\order_service_feign )Module file location: ( \spring_cloud_sentinel_demo\order_service_feign )-- Finish 5.2 在消费者子工程子模块 order_service_feign 的 pom.xml 中导入依赖 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentartifactIdspring_cloud_sentinel_demo/artifactIdgroupIdorg.example/groupIdversion1.0-SNAPSHOT/version/parentmodelVersion4.0.0/modelVersionartifactIdorder_service_feign/artifactIddependenciesdependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.32/version !-- version8.0.26/version--/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-jpa/artifactId/dependency!-- 导入 eureka 注册中心 --dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-client/artifactId/dependency!-- springcloud 整合 openFeign --dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId/dependency!-- Hystrix 组件 对 RestTemplate 的支持4步1引入 Hystrix 依赖坐标 --dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-hystrix/artifactId/dependency!-- 引入 hystrix 的监控信息 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-hystrix-dashboard/artifactId/dependency/dependencies/project !-- spring_cloud_sentinel_demo\order_service_feign\pom.xml -- 5.3、在消费者子工程子模块 order_service_feign 中创建配置文件 application.yml ## spring_cloud_sentinel_demo\order_service\src\main\resources\application.ymlserver:port: 9002 # 启动端口 命令行注入。 # port: ${port:9002} # 启动端口设置为动态传参如果未传参数默认端口为 9002spring:application:name: service-order_feign #spring应用名, # 注意 FeignClient 不支持名字带下划线# main:# allow-bean-definition-overriding: true # SpringBoot2.1 需要设定。datasource:driver-class-name: com.mysql.jdbc.Driver # mysql 驱动url: jdbc:mysql://localhost:3306/shop?useUnicodetruecharacterEncodingutf8useSSLfalseserverTimezoneAsia/Shanghai# MySQL8.0 可以写成 root, 012311 或 root, 012311 # MySQL5.7 只能写成 root, 012311 # 注意用户名和密码后一定不能有空格。username: rootpassword: 012311jpa:database: MySQLshow-sql: trueopen-in-view: trueeureka: # 配置 Eurekaclient:service-url:defaultZone: http://localhost:9000/eureka/ # 多个 eurekaserver 用 , 隔开。instance:prefer-ip-address: true # 使用 ip 地址注册instance-id: ${spring.cloud.client.ip-address}:${server.port}# 配置 feign 日志的输出。 # 日志配置NONE:GI 不输出日志BASIC适用于生产环境追踪问题HEADERS在BASIC基础上记录请求和响应头信息FULL记录所有。 logging:level:djh.it.order.feign.ProductFeignClient: debugfeign:client:config:default:connectTimeout: 5000 #服务之间建立连接所用的时间 #不设置 connectTimeout 会导致 readTimeout 设置不生效readTimeout: 5000 #建立连接后从服务端读取到数据用的时间service-product: # 需要调用的服务名称loggerLevel: FULLhystrix: # 开启对 hystrix 的支持。enabled: truehystrix: # 配置 hystrix 熔断Hystrix基于 RestTemplate 的统一降级配置command:default:execution:isolation:thread:timeoutInMilliseconds: 5000 # 默认的熔断超时时间为1秒若1秒没有返回数据会自动触发降级逻辑。management: # 配置 Actuator 获取 hystrix 的监控数据 暴躁端点。endpoints:web:exposure:include: * # 暴露所有端点。 5.4、在消费者子工程子模块 order_service_feign 中创建 商品实体类 Product.java /*** spring_cloud_sentinel_demo\order_service\src\main\java\djh\it\order\domain\Product.java** 2024-5-2 商品实体类 Product.java*/ package djh.it.order.domain;import lombok.Data; import java.math.BigDecimal;Data public class Product {private Long id;private String productName;private Integer status;private BigDecimal price;private String productDesc;private String caption;private Integer inventory;public void setProductName(String productName) {this.productName productName;} } 5.5 在消费者子工程子模块 order_service_feign 中创建 controller 类 OrderController.java /*** spring_cloud_sentinel_demo\order_service\src\main\java\djh\it\order\controller\OrderController.java** 2024-5-2 订单的 controller 类 OrderController.java*/ package djh.it.order.controller;import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand; import djh.it.order.domain.Product; import djh.it.order.restemplate.ProductFeignClient; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;RestController RequestMapping(/order) public class OrderController {Resource //按类型名称注入 调用 feign 组件的接口类 ProductFeignClient//Autowired //自动注入 调用 feign 组件的接口类 ProductFeignClient //有时变量名报红可替换为 Resource 注解private ProductFeignClient productFeignClient;/*** Hystrix 组件 对 RestTemplate 的支持4步4使用注解配置熔断保护* fallbackmethod : 配置熔断之后的降级方法* param id* return*/HystrixCommand //配置了公共的熔断设置后就不需要传参数。RequestMapping(value /buy/{id}, method RequestMethod.GET)public Product findById(PathVariable Long id){Product product null;//调用 feign 组件的接口类 的方法product productFeignClient.findById(id);return product;} } 5.6 在消费者子工程子模块 order_service_feign 中创建 feign 组件的接口类 ProductFeignClient.java /*** spring_cloud_sentinel_demo\order_service\src\main\java\djh\it\order\feign\ProductFeignClient.java** 2024-5-2 创建 调用 feign 组件的接口类 ProductFeignClient.java* 声明需要调用的微服务名称 FeignClient, name: 服务提供者的名称, fallback:配置熔断发生的降级方法。*/package djh.it.order.restemplate;import djh.it.order.domain.Product; import djh.it.order.restemplate.impl.ProductFeignClientCallBack; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod;FeignClient(nameservice-product, fallback ProductFeignClientCallBack.class) //调用 FeignClient 并添加降级方法的支持 public interface ProductFeignClient {//配置需要调用的微服务接口RequestMapping(value /product/{id}, method RequestMethod.GET)public Product findById(PathVariable(id) Long id); } 5.7 在消费者子工程子模块 order_service_feign 中创建 feign 组件的实现类 ProductFeignClient.java /*** spring_cloud_hystrix_demo\order_service\src\main\java\djh\it\order\feign\ProductFeignClientCallBack.java** 2024-5-2 创建 feign 组件的接口类 ProductFeignClient 的实现类 ProductFeignClientCallBack.java* 配置熔断触发的降级逻辑。*/package djh.it.order.restemplate.impl;import djh.it.order.domain.Product; import djh.it.order.restemplate.ProductFeignClient; import org.springframework.stereotype.Component;Component public class ProductFeignClientCallBack implements ProductFeignClient {// 熔断降级的方法public Product findById(Long id) {Product product new Product();product.setProductName(hystrix基于 feign 调用的熔断配置 -- feign 调用触发熔断降级的方法。);return product;} } 5.8 在消费者子工程子模块 order_service_feign 中创建 启动类 OrderApplication.java /*** spring_cloud_sentinel_demo\order_service\src\main\java\djh\it\order\OrderFeignApplication.java** 2024-5-2 启动类 OrderFeignApplication.java*/ package djh.it.order;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard; import org.springframework.cloud.openfeign.EnableFeignClients;SpringBootApplication EntityScan(djh.it.order.domain) EnableEurekaClient //激活 EurekaClient,同 EnableDiscoveryClient 注解相同。 EnableFeignClients //激活 Feign EnableCircuitBreaker // 2激活 hystrix, Hystrix 组件 对 RestTemplate 的支持4步 EnableHystrixDashboard // 激活 Hystrix 基于图形化的 DashBoard(仪表板)监控平台 public class OrderFeignApplication {public static void main(String[] args) {SpringApplication.run(OrderFeignApplication.class, args);} } 6、搭建案例—在父工程 spring_cloud_sentinel_demo 下创建子工程 order_service_rest子模块 6.1 创建 消费者 子工程 order_service_rest子模块通过 resTemplate 调用微服务。 -- 右键 spring_cloud_sentinel_demo 父工程-- Modules -- Maven -- Groupld : ( djh.it )Artifactld : ( order_service_rest )Version : 1.0-SNAPSHOT-- Next -- Module name: ( order_service_rest )Content root : ( \spring_cloud_sentinel_demo\order_service_rest )Module file location: ( \spring_cloud_sentinel_demo\order_service_rest )-- Finish 6.2 在消费者子工程子模块 order_service_rest 的 pom.xml 中导入依赖 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentartifactIdspring_cloud_sentinel_demo/artifactIdgroupIdorg.example/groupIdversion1.0-SNAPSHOT/version/parentmodelVersion4.0.0/modelVersionartifactIdorder_service_rest/artifactIddependenciesdependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.32/version !-- version8.0.26/version--/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-jpa/artifactId/dependency!-- 导入 eureka 注册中心 --dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-client/artifactId/dependency!-- springcloud 整合 openFeign --dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId/dependency!-- Hystrix 组件 对 RestTemplate 的支持4步1引入 Hystrix 依赖坐标 --dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-hystrix/artifactId/dependency!-- 引入 hystrix 的监控信息 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-hystrix-dashboard/artifactId/dependency/dependencies/project !-- spring_cloud_sentinel_demo\order_service_feign\pom.xml -- 6.3、在消费者子工程子模块 order_service_rest 中创建配置文件 application.yml ## spring_cloud_sentinel_demo\order_service\src\main\resources\application.ymlserver:port: 9003 # 启动端口 命令行注入。 # port: ${port:9003} # 启动端口设置为动态传参如果未传参数默认端口为 9003spring:application:name: service-order_rest #spring应用名, # 注意 FeignClient 不支持名字带下划线# main:# allow-bean-definition-overriding: true # SpringBoot2.1 需要设定。datasource:driver-class-name: com.mysql.jdbc.Driver # mysql 驱动url: jdbc:mysql://localhost:3306/shop?useUnicodetruecharacterEncodingutf8useSSLfalseserverTimezoneAsia/Shanghai# MySQL8.0 可以写成 root, 012311 或 root, 012311 # MySQL5.7 只能写成 root, 012311 # 注意用户名和密码后一定不能有空格。username: rootpassword: 012311jpa:database: MySQLshow-sql: trueopen-in-view: trueeureka: # 配置 Eurekaclient:service-url:defaultZone: http://localhost:9000/eureka/ # 多个 eurekaserver 用 , 隔开。instance:prefer-ip-address: true # 使用 ip 地址注册instance-id: ${spring.cloud.client.ip-address}:${server.port}# 配置 feign 日志的输出。 # 日志配置NONE:GI 不输出日志BASIC适用于生产环境追踪问题HEADERS在BASIC基础上记录请求和响应头信息FULL记录所有。 logging:level:djh.it.order.feign.ProductFeignClient: debughystrix: # 配置 hystrix 熔断Hystrix基于 RestTemplate 的统一降级配置command:default:execution:isolation:thread:timeoutInMilliseconds: 5000 # 默认的熔断超时时间为1秒若1秒没有返回数据会自动触发降级逻辑。management: # 配置 Actuator 获取 hystrix 的监控数据 暴躁端点。endpoints:web:exposure:include: * # 暴露所有端点。 6.4、在消费者子工程子模块 order_service_rest 中创建 商品实体类 Product.java /*** spring_cloud_sentinel_demo\order_service\src\main\java\djh\it\order\domain\Product.java** 2024-5-2 商品实体类 Product.java*/ package djh.it.order.domain;import lombok.Data; import java.math.BigDecimal;Data public class Product {private Long id;private String productName;private Integer status;private BigDecimal price;private String productDesc;private String caption;private Integer inventory;public void setProductName(String productName) {this.productName productName;} } 6.5 在消费者子工程子模块 order_service_rest 中创建 controller 类 OrderController.java /*** spring_cloud_sentinel_demo\order_service\src\main\java\djh\it\order\controller\OrderController.java** 2024-5-2 订单的 controller 类 OrderController.java*/ package djh.it.order.controller;import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand; import djh.it.order.domain.Product; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate;import javax.annotation.Resource;RestController RequestMapping(/order) public class OrderController {Autowired // 注入 restTemplate 对象private RestTemplate restTemplate;/*** Hystrix 组件 对 RestTemplate 的支持4步4使用注解配置熔断保护* fallbackmethod : 配置熔断之后的降级方法* param id* return*/HystrixCommand(fallbackMethod orderFallBack)RequestMapping(value /buy/{id}, method RequestMethod.GET)public Product findById(PathVariable Long id){Product product null;//product restTemplate.getForObject(http://127.0.0.1:9001/product/1, Product.class);product restTemplate.getForObject(http://service-product/product/1, Product.class);return product;}/*** Hystrix 组件 对 RestTemplate 的支持4步3降级方法* 例如如果访问的 service-product 服务器宕机就会触发此降级方法* param id* return*/public Product orderFallBack(Long id){Product product new Product();product.setProductName(触发降级方法);return product;} } 6.6 在消费者子工程子模块 order_service_rest 中创建 启动类 OrderApplication.java /*** spring_cloud_sentinel_demo\order_service\src\main\java\djh\it\order\OrderFeignApplication.java** 2024-5-2 启动类 OrderFeignApplication.java*/ package djh.it.order;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard; import org.springframework.context.annotation.Bean; import org.springframework.web.client.RestTemplate;SpringBootApplication EntityScan(djh.it.order.domain) EnableEurekaClient //激活 EurekaClient,同 EnableDiscoveryClient 注解相同。 //EnableFeignClients //激活 Feign EnableCircuitBreaker // 2激活 hystrix, Hystrix 组件 对 RestTemplate 的支持4步 EnableHystrixDashboard // 激活 Hystrix 基于图形化的 DashBoard(仪表板)监控平台 public class OrderRestemplateApplication {LoadBalancedBeanpublic RestTemplate restTemplate(){return new RestTemplate();}public static void main(String[] args) {SpringApplication.run(OrderRestemplateApplication.class, args);} } 7、客户端能接入 Sentinel 控制台将所有的服务交给控制台管理。 7.1 在客户端需要管理微服务上引入坐标。 修改 父工程 spring_cloud_sentinel_demo 的 pom.xml 文件引入坐标 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdorg.example/groupIdartifactIdspring_cloud_sentinel_demo/artifactIdpackagingpom/packagingversion1.0-SNAPSHOT/versionmodulesmoduleeureka_service/modulemoduleproduct_service/modulemoduleorder_service_feign/modulemoduleorder_service_rest/module/modulesparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.1.6.RELEASE/version/parentpropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncodingproject.reporting.outputEncodingUTF-8/project.reporting.outputEncodingjava.version1.8/java.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-logging/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.4/versionscopeprovided/scope/dependency/dependenciesdependencyManagementdependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversionGreenwich.RELEASE/versiontypepom/typescopeimport/scope/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion2.1.0.RELEASE/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagementrepositoriesrepositoryidspring-snapshots/idnameSpring Snapshots/nameurlhttp://repo.spring.io/libs-snapshot-local/urlsnapshotsenabledtrue/enabled/snapshots/repositoryrepositoryidspring-milestones/idnameSpring Milestones/nameurlhttp://repo.spring.io/libs-milestone-local/urlsnapshotsenabledfalse/enabled/snapshots/repositoryrepositoryidspring-releases/idnameSpring Releases/nameurlhttp://repo.spring.io/libs-release-local/urlsnapshotsenabledfalse/enabled/snapshots/repository/repositoriespluginRepositoriespluginRepositoryidspring-snapshots/idnameSpring Snapshots/nameurlhttp://repo.spring.io/libs-snapshot-local/urlsnapshotsenabledtrue/enabled/snapshots/pluginRepositorypluginRepositoryidspring-milestones/idnameSpring Milestones/nameurlhttp://repo.spring.io/libs-milestone-local/urlsnapshotsenabledfalse/enabled/snapshots/pluginRepository/pluginRepositoriesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build/project !-- spring_cloud_sentinel_demo\pom.xml -- 修改 消费者子工程子模块 order_service_feign 的 pom.xml 文件引入坐标 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentartifactIdspring_cloud_sentinel_demo/artifactIdgroupIdorg.example/groupIdversion1.0-SNAPSHOT/version/parentmodelVersion4.0.0/modelVersionartifactIdorder_service_feign/artifactIddependenciesdependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.32/version !-- version8.0.26/version--/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-jpa/artifactId/dependency!-- 导入 eureka 注册中心 --dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-client/artifactId/dependency!-- springcloud 整合 openFeign --dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId/dependency!-- Hystrix 组件 对 RestTemplate 的支持4步1引入 Hystrix 依赖坐标 --dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-hystrix/artifactId/dependency!-- 引入 hystrix 的监控信息 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-hystrix-dashboard/artifactId/dependency!-- 引入 sentinel 熔断 --dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-sentinel/artifactIdversion2.0.0.RELEASES/version/dependency/dependencies/project !-- spring_cloud_sentinel_demo\order_service_feign\pom.xml -- 在消费者子工程子模块 order_service_rest 的 pom.xml 文件引入坐标 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentartifactIdspring_cloud_sentinel_demo/artifactIdgroupIdorg.example/groupIdversion1.0-SNAPSHOT/version/parentmodelVersion4.0.0/modelVersionartifactIdorder_service_rest/artifactIddependenciesdependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.32/version !-- version8.0.26/version--/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-jpa/artifactId/dependency!-- 导入 eureka 注册中心 --dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-client/artifactId/dependency!-- springcloud 整合 openFeign --dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId/dependency!-- Hystrix 组件 对 RestTemplate 的支持4步1引入 Hystrix 依赖坐标 --dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-hystrix/artifactId/dependency!-- 引入 hystrix 的监控信息 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-hystrix-dashboard/artifactId/dependency!-- 引入 sentinel 熔断 --dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-sentinel/artifactIdversion2.0.0.RELEASES/version/dependency/dependencies/project !-- spring_cloud_sentinel_demo\order_service_feign\pom.xml -- 7.2 在客户端配置启动参数。 修改 消费者子工程子模块 order_service_feign 的 application.yml 文件配置启动参数 ## spring_cloud_sentinel_demo\order_service\src\main\resources\application.ymlserver:port: 9002 # 启动端口 命令行注入。 # port: ${port:9002} # 启动端口设置为动态传参如果未传参数默认端口为 9002spring:application:name: service-order_feign #spring应用名, # 注意 FeignClient 不支持名字带下划线# main:# allow-bean-definition-overriding: true # SpringBoot2.1 需要设定。datasource:driver-class-name: com.mysql.jdbc.Driver # mysql 驱动url: jdbc:mysql://localhost:3306/shop?useUnicodetruecharacterEncodingutf8useSSLfalseserverTimezoneAsia/Shanghai# MySQL8.0 可以写成 root, 012311 或 root, 012311 # MySQL5.7 只能写成 root, 012311 # 注意用户名和密码后一定不能有空格。username: rootpassword: 012311jpa:database: MySQLshow-sql: trueopen-in-view: truecloud: # 配置 sentinel 服务熔断sentinel:transport:dashboard: localhost:8086 # sentienl 控制台的请求地址。eureka: # 配置 Eurekaclient:service-url:defaultZone: http://localhost:9000/eureka/ # 多个 eurekaserver 用 , 隔开。instance:prefer-ip-address: true # 使用 ip 地址注册instance-id: ${spring.cloud.client.ip-address}:${server.port}修改 消费者子工程子模块 order_service_rest 的 application.yml 文件配置启动参数 ## spring_cloud_sentinel_demo\order_service\src\main\resources\application.ymlserver:port: 9003 # 启动端口 命令行注入。 # port: ${port:9003} # 启动端口设置为动态传参如果未传参数默认端口为 9003spring:application:name: service-order_rest #spring应用名, # 注意 FeignClient 不支持名字带下划线# main:# allow-bean-definition-overriding: true # SpringBoot2.1 需要设定。datasource:driver-class-name: com.mysql.jdbc.Driver # mysql 驱动url: jdbc:mysql://localhost:3306/shop?useUnicodetruecharacterEncodingutf8useSSLfalseserverTimezoneAsia/Shanghai# MySQL8.0 可以写成 root, 012311 或 root, 012311 # MySQL5.7 只能写成 root, 012311 # 注意用户名和密码后一定不能有空格。username: rootpassword: 012311jpa:database: MySQLshow-sql: trueopen-in-view: truecloud: # 配置 sentinel 服务熔断sentinel:transport:dashboard: localhost:8086 # sentienl 控制台的请求地址。eureka: # 配置 Eurekaclient:service-url:defaultZone: http://localhost:9000/eureka/ # 多个 eurekaserver 用 , 隔开。instance:prefer-ip-address: true # 使用 ip 地址注册instance-id: ${spring.cloud.client.ip-address}:${server.port} 7.3 重新 运行service-eureka, service-product, service-order_feign, service-order_rest, 4个启动类并启动 Sentinel 控制台: 运行4个启动类 使用命令启动 Sentinel 控制台 java -Dserver.port8086 -Dcsp.sentine1.dashboard.server1ocalhost:8086 -Dproject.namesentine1-dashboard -jar sentinel-dashboard-1.6.3.jar查看机器列表以及健康情况 默认情况下 Sentinel 控制台是懒加载模式也就是没有请求访问查询不到服务。 Sentinel 会在客户端首次调用的时候进行初始化开始向控制台发送心跳包。 也可以配置 sentihel.eagertrue,取消 Sentinel 控制台懒加载。 启动 Sentinel 服务成功后登录 Sertinel 控制台发起服务请求查看列表 浏览器地址栏输入localhost:8086 默认用户名和密码都是 sentine1 浏览器访问请求后再次查看控制台就会有记录http://localhost:9002/order/buy/1http://localhost:9003/order/buy/1http://localhost:8086http://localhost:8086/#/dashboard/metric/service-order_feignhttp://localhost:8086/#/dashboard/metric/service-order_rest 上一节链接请点击 # 从浅入深 学习 SpringCloud 微服务架构七Hystrix4
文章转载自:
http://www.morning.sgbk.cn.gov.cn.sgbk.cn
http://www.morning.dbnrl.cn.gov.cn.dbnrl.cn
http://www.morning.xpqyf.cn.gov.cn.xpqyf.cn
http://www.morning.hcqpc.cn.gov.cn.hcqpc.cn
http://www.morning.rkqkb.cn.gov.cn.rkqkb.cn
http://www.morning.sqhlx.cn.gov.cn.sqhlx.cn
http://www.morning.nbnq.cn.gov.cn.nbnq.cn
http://www.morning.rmrcc.cn.gov.cn.rmrcc.cn
http://www.morning.mhxlb.cn.gov.cn.mhxlb.cn
http://www.morning.zsleyuan.cn.gov.cn.zsleyuan.cn
http://www.morning.ynstj.cn.gov.cn.ynstj.cn
http://www.morning.psdsk.cn.gov.cn.psdsk.cn
http://www.morning.zrfwz.cn.gov.cn.zrfwz.cn
http://www.morning.grxsc.cn.gov.cn.grxsc.cn
http://www.morning.rrqgf.cn.gov.cn.rrqgf.cn
http://www.morning.qqtzn.cn.gov.cn.qqtzn.cn
http://www.morning.bswnf.cn.gov.cn.bswnf.cn
http://www.morning.yrskc.cn.gov.cn.yrskc.cn
http://www.morning.ynlbj.cn.gov.cn.ynlbj.cn
http://www.morning.xlclj.cn.gov.cn.xlclj.cn
http://www.morning.rknhd.cn.gov.cn.rknhd.cn
http://www.morning.xhwty.cn.gov.cn.xhwty.cn
http://www.morning.hknk.cn.gov.cn.hknk.cn
http://www.morning.cwgpl.cn.gov.cn.cwgpl.cn
http://www.morning.wdhzk.cn.gov.cn.wdhzk.cn
http://www.morning.qfths.cn.gov.cn.qfths.cn
http://www.morning.ndcf.cn.gov.cn.ndcf.cn
http://www.morning.qzqfq.cn.gov.cn.qzqfq.cn
http://www.morning.kyzja.com.gov.cn.kyzja.com
http://www.morning.trrhj.cn.gov.cn.trrhj.cn
http://www.morning.mrkbz.cn.gov.cn.mrkbz.cn
http://www.morning.jrksk.cn.gov.cn.jrksk.cn
http://www.morning.ylklr.cn.gov.cn.ylklr.cn
http://www.morning.jgncd.cn.gov.cn.jgncd.cn
http://www.morning.kqlrl.cn.gov.cn.kqlrl.cn
http://www.morning.zcrjq.cn.gov.cn.zcrjq.cn
http://www.morning.xfxqj.cn.gov.cn.xfxqj.cn
http://www.morning.rpgdd.cn.gov.cn.rpgdd.cn
http://www.morning.lwqst.cn.gov.cn.lwqst.cn
http://www.morning.pjtnk.cn.gov.cn.pjtnk.cn
http://www.morning.yfmxn.cn.gov.cn.yfmxn.cn
http://www.morning.zkdmk.cn.gov.cn.zkdmk.cn
http://www.morning.kzrg.cn.gov.cn.kzrg.cn
http://www.morning.nkkr.cn.gov.cn.nkkr.cn
http://www.morning.pwxkn.cn.gov.cn.pwxkn.cn
http://www.morning.gjws.cn.gov.cn.gjws.cn
http://www.morning.hjwkq.cn.gov.cn.hjwkq.cn
http://www.morning.zwzwn.cn.gov.cn.zwzwn.cn
http://www.morning.cbnlg.cn.gov.cn.cbnlg.cn
http://www.morning.bzlgb.cn.gov.cn.bzlgb.cn
http://www.morning.ldsgm.cn.gov.cn.ldsgm.cn
http://www.morning.xhkgl.cn.gov.cn.xhkgl.cn
http://www.morning.fcrw.cn.gov.cn.fcrw.cn
http://www.morning.wchsx.cn.gov.cn.wchsx.cn
http://www.morning.snrhg.cn.gov.cn.snrhg.cn
http://www.morning.nxzsd.cn.gov.cn.nxzsd.cn
http://www.morning.rbkgp.cn.gov.cn.rbkgp.cn
http://www.morning.pjxlg.cn.gov.cn.pjxlg.cn
http://www.morning.rbtny.cn.gov.cn.rbtny.cn
http://www.morning.mgskc.cn.gov.cn.mgskc.cn
http://www.morning.rknhd.cn.gov.cn.rknhd.cn
http://www.morning.btnmj.cn.gov.cn.btnmj.cn
http://www.morning.qxnns.cn.gov.cn.qxnns.cn
http://www.morning.grryh.cn.gov.cn.grryh.cn
http://www.morning.bgpch.cn.gov.cn.bgpch.cn
http://www.morning.wcjgg.cn.gov.cn.wcjgg.cn
http://www.morning.nwnbq.cn.gov.cn.nwnbq.cn
http://www.morning.tfznk.cn.gov.cn.tfznk.cn
http://www.morning.mjctt.cn.gov.cn.mjctt.cn
http://www.morning.nggbf.cn.gov.cn.nggbf.cn
http://www.morning.mswkd.cn.gov.cn.mswkd.cn
http://www.morning.hzqjgas.com.gov.cn.hzqjgas.com
http://www.morning.kkqgf.cn.gov.cn.kkqgf.cn
http://www.morning.leyuhh.com.gov.cn.leyuhh.com
http://www.morning.kjcll.cn.gov.cn.kjcll.cn
http://www.morning.bpmfl.cn.gov.cn.bpmfl.cn
http://www.morning.fnnkl.cn.gov.cn.fnnkl.cn
http://www.morning.fhlfp.cn.gov.cn.fhlfp.cn
http://www.morning.bxbnf.cn.gov.cn.bxbnf.cn
http://www.morning.zmlbq.cn.gov.cn.zmlbq.cn
http://www.tj-hxxt.cn/news/267893.html

相关文章:

  • 网站建设了解海南有线微信公众号
  • 家居设计网站模板win2008做的网站打不开
  • 成都网站建设价格网站和网店区别
  • 如何给网站配色自己做简单网站
  • 上海微网站公司做交网站
  • 网站模板 收费网站权重划分
  • 惠州做网站的ppt制作方法
  • 查看网站开发网站建设项目说明书
  • 项目网站有哪些软件项目管理案例教程第四版答案
  • 遵义网站制作和推广跑流量的网站
  • 专业自适应网站建设极速建站东莞制作公司网站的公司
  • 网站推广方式案例做物流网站的多少钱
  • 凡客建站网宜昌网站建设开发费用
  • 汕头企业模板建站男科免费咨询
  • wordpress如何仿站网站建设职业主要做什么
  • 新手建什么网站赚钱企业网站优化包括哪三个方面
  • 网站规划与网页设计总结昆明制作企业网站
  • 沈阳关键词优化公司东莞网络seo推广
  • 建设电子商务网站策划书面试学校网站开发
  • 手机号网站源码多语言网站开发设计
  • 网站开发教程网社交网站源代码
  • 网站代码需要注意什么问题海外网站建设平台
  • wordpress模板首页上海做网站seo
  • 做网站线稿软件有哪些广州机械网站建设
  • 中国建设银行重庆网站首页牛二网站建设
  • 网站开发前端模板网站建设包括哪些方面?
  • 延庆青岛网站建设什么软件做电影短视频网站
  • php网站建设难点wordpress 压力
  • 一个企业建设网站的目的链接购买
  • 台州企业网站建设三亚旅游攻略