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

桐城市住房与建设网站青岛网页设计

桐城市住房与建设网站,青岛网页设计,微信营销推广公司,wordpress登录用添加验证码组件 服务注册和发现 微服务模块中#xff0c;一般是以集群的方式进行部署的#xff0c;如果我们调用的时候以硬编码的方式#xff0c;那么当服务出现问题、服务扩缩容等就需要对代码进行修改#xff0c;这是非常不好的。所以微服务模块中就出现了服务注册和发现组件一般是以集群的方式进行部署的如果我们调用的时候以硬编码的方式那么当服务出现问题、服务扩缩容等就需要对代码进行修改这是非常不好的。所以微服务模块中就出现了服务注册和发现组件比较常用的组件有Eureka、Consul、Nacos在微服务系列中也是针对这三个组件来进行介绍。 负载均衡 由于以集群的方式部署因此我们就要考虑调用哪台机子的问题所以微服务模块中又出现了负载均衡组件 在微服务系列中针对LoadBalancer组件进行介绍。 分布式配置管理 微服务导致会出现大量的服务而每个服务都需要必要的配置此时就迫切需要一套集中式的、动态的配置管理设施在微服务系列中针对Consul、Nacos组件进行介绍。 网关 微服务的出现导致大量的服务从而导致大量的IP地址这对前端是不友好的。但是本着脏话累活后端来干的优良品质因此又出现了一系列的组件来解决这个问题在微服务系列中针对Gateway组件进行介绍。 服务调用 单体项目中想要调用别的业务只需要注入即可但是在微服务中业务进行拆分因此无法通过注入的方式来进行调用。不过例如RestTemplate、HttpClient等都是可以进行URL发送的但是这种方式也会造成硬编码的出现。于是微服务又出现了一系列组件来解决这个问题 在微服务系列中针对OpenFeign组件进行介绍。 服务链路追踪 微服务应用中可能一个业务的完成就需要调用N个服务如果该业务效率低下、响应结果错误。我们就需要去定位是哪里的响应慢、哪里的服务出现错误但是靠肉眼是没法看出来的。因此微服务又出现了组件来对一次调用的链路进行记录从而可以在出现问题后快速解决问题。 在微服务系列中针对Micrometer Tracing组件进行介绍。 服务熔断和降级 微服务的出现本来就是为了解决单体项目资源不足的情况因此当流量过多或者服务出错时我们就要采取降低流量等措施对于这种问题 在微服务系列中针对Circuit Breaker和Sentinel组件进行介绍。 分布式事务 单体应用中我们经常要用到事务微服务应用也不例外因此对于这种应用场景。 在微服务系列中针对Seata组件进行介绍。 在微服务系列中基本上就是对上述组件的介绍不会涉及太多的底层原因主要是介绍如何进行操作后续有实力之后再对其源码进行分析介绍。 基础工程构建 业务场景 以订单服务调用商品服务为例来对SpringCloud的一系列组件进行介绍。 数据准备 -- 建库商品库 create database if not exists cloud_product charset utf8mb4; -- 使用库 use cloud_product; -- 产品表 DROP TABLE IF EXISTS product_detail; CREATE TABLE product_detail ( id BIGINT NOT NULL AUTO_INCREMENT COMMENT 产品id, product_name varchar ( 128 ) NULL COMMENT 产品名称, product_price BIGINT ( 20 ) NOT NULL COMMENT 产品价格, state TINYINT ( 4 ) NULL DEFAULT 0 COMMENT 产品状态 0-有效 1-下架, create_time DATETIME DEFAULT now(), update_time DATETIME DEFAULT now(), PRIMARY KEY ( id )) ENGINE INNODB DEFAULT CHARACTER SET utf8mb4 COMMENT 产品表; -- 数据初始化 insert into product_detail (id, product_name,product_price,state) values (1001,T恤, 101, 0), (1002, 短袖,30, 0), (1003, 短裤,44, 0), (1004, 卫⾐,58, 0), (1005, ⻢甲,98, 0),(1006,⽻绒服, 101, 0), (1007, 冲锋⾐,30, 0), (1008, 袜⼦,44, 0), (1009, 鞋⼦,58, 0), (10010, ⽑⾐,98, 0); -- 建库订单库 create database if not exists cloud_order charset utf8mb4; -- 使用库 use cloud_order; -- 订单表 DROP TABLE IF EXISTS order_detail; CREATE TABLE order_detail (id BIGINT NOT NULL AUTO_INCREMENT COMMENT 订单id,user_id BIGINT ( 20 ) NOT NULL COMMENT ⽤⼾ID,product_id BIGINT ( 20 ) NULL COMMENT 产品id,num INT ( 10 ) NULL DEFAULT 0 COMMENT 下单数量,price BIGINT ( 20 ) NOT NULL COMMENT 实付款,delete_flag TINYINT ( 4 ) NULL DEFAULT 0,create_time DATETIME DEFAULT now(),update_time DATETIME DEFAULT now(), PRIMARY KEY ( id )) ENGINE INNODB DEFAULT CHARACTER SET utf8mb4 COMMENT 订单表; -- 数据初始化 insert into order_detail (user_id,product_id,num,price) values (2001, 1001,1,99), (2002, 1002,1,30), (2001, 1003,1,40), (2003, 1004,3,58), (2004, 1005,7,85), (2005, 1006,7,94); 工程搭建 搭建父工程 ?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/modelVersiongroupIdcom.wbz/groupIdartifactIdspring-cloud-test/artifactIdversion1.0-SNAPSHOT/versionpackagingpom/packagingmodulesmodulecloud-provider-payment8001/modulemodulecloud-consumer-order80/module/modulespropertiesmaven.compiler.source17/maven.compiler.sourcemaven.compiler.target17/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncodingspring-cloud.version2023.0.0/spring-cloud.versionspring-cloud-alibaba.version2022.0.0.0-RC2/spring-cloud-alibaba.versionmysql.version8.0.31/mysql.versiondruid.version1.2.18/druid.versionmybatis-plus.version3.5.7/mybatis-plus.versionlombok.version1.18.28/lombok.version/properties!--SpringBoot--parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion3.2.0/versionrelativePath/ !-- lookup parent from repository --/parentdependencyManagementdependencies!--SpringCloud--dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion${spring-cloud.version}/versiontypepom/typescopeimport/scope/dependency!--SpringCloudAlibaba--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion${spring-cloud-alibaba.version}/versiontypepom/typescopeimport/scope/dependency!--MySQL驱动--dependencygroupIdcom.mysql/groupIdartifactIdmysql-connector-j/artifactIdversion${mysql.version}/version/dependency!--Druid--dependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion${druid.version}/version/dependency!--MP--dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-spring-boot3-starter/artifactIdversion${mybatis-plus.version}/version/dependency!--Lombok--dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion${lombok.version}/version/dependency/dependencies/dependencyManagement/project 搭建子工程 - 商品服务 在该业务背景下商品服务作为服务提供方出现。 搭建一个模块一般分为建模块、写pom文件、写yml文件、改主启动类、写业务类。 建模块  写pom文件 ?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/modelVersionparentgroupIdcom.wbz/groupIdartifactIdspring-cloud-test/artifactIdversion1.0-SNAPSHOT/version/parentartifactIdcloud-provider-product8001/artifactIdpropertiesmaven.compiler.source17/maven.compiler.sourcemaven.compiler.target17/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependencies!--SpringBoot通用模块--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!--Lombok--dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependency!--Druid--dependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactId/dependency!--MySQL驱动--dependencygroupIdcom.mysql/groupIdartifactIdmysql-connector-j/artifactId/dependency!--MP--dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-spring-boot3-starter/artifactId/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build/project 写yml文件 server:port: 8001spring:application:name: cloud-provider-payment8001mvc:pathmatch:matching-strategy: ant_path_matcher # 路径匹配策略datasource:url: jdbc:mysql://127.0.0.1:3306/cloud_product?characterEncodingutf8useSSLfalseallowPublicKeyRetrievaltrueallowMultiQueriestrueusername: rootpassword: rootdriver-class-name: com.mysql.cj.jdbc.Driverprofiles:active: devmybatis-plus:configuration:map-underscore-to-camel-case: truelog-impl: org.apache.ibatis.logging.stdout.StdOutImplmapper-locations: classpath:mapper/**Mapper.xmltype-aliases-package: com.wbz.domain 改主启动类 /*** 微服务生产者模块表示被调用的一方*/MapperScan(com.wbz.mapper) SpringBootApplication public class ProductProviderApplication8001 {public static void main(String[] args) {SpringApplication.run(ProductProviderApplication8001.class, args);}} 写业务类 // model /*** 产品表*/Data AllArgsConstructor NoArgsConstructor TableName(product_detail) public class Product {TableIdprivate Long id;TableFieldprivate String productName;TableFieldprivate Long productPrice;TableFieldprivate Integer state;TableFieldJsonFormat(pattern yyyy-MM-dd HH:mm:ss, timezone GMT8)private LocalDateTime createTime;TableFieldJsonFormat(pattern yyyy-MM-dd HH:mm:ss, timezone GMT8)private LocalDateTime updateTime;}// 持久层接口 public interface ProduceMapper extends BaseMapperProduct { }// 服务层接口 public interface ProductService extends IServiceProduct {Product getProductById(Long productId);}// 服务层实现类 Service public class ProductServiceImpl extends ServiceImplProduceMapper, Product implements ProductService {Overridepublic Product getProductById(Long productId) {return this.getById(productId);}}// 控制层类 RestController RequestMapping(/product) public class ProductController {Resourceprivate ProductService productService;GetMapping(/query/{productId})public Product getProductById(PathVariable Long productId) {return this.productService.getProductById(productId);}} 启动项目之后访问url127.0.0.1:8001/product/query/1001返回如下页面就算调用成功 整体代码结构如下 搭建子工程 - 订单服务 在该业务背景下订单服务作为服务调用方出现。 建模块 写pom文件 ?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/modelVersionparentgroupIdcom.wbz/groupIdartifactIdspring-cloud-test/artifactIdversion1.0-SNAPSHOT/version/parentartifactIdcloud-consumer-order80/artifactIdpropertiesmaven.compiler.source17/maven.compiler.sourcemaven.compiler.target17/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependencies!--SpringBoot通用模块--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!--Lombok--dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependency!--Druid--dependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactId/dependency!--MySQL驱动--dependencygroupIdcom.mysql/groupIdartifactIdmysql-connector-j/artifactId/dependency!--MP--dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-spring-boot3-starter/artifactId/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build/project 写yml文件 server:port: 80spring:application:name: cloud-consumer-order80mvc:pathmatch:matching-strategy: ant_path_matcher # 路径匹配策略datasource:url: jdbc:mysql://127.0.0.1:3306/cloud_order?characterEncodingutf8useSSLfalseallowPublicKeyRetrievaltrueallowMultiQueriestrueusername: rootpassword: rootdriver-class-name: com.mysql.cj.jdbc.Driverprofiles:active: devmybatis-plus:configuration:map-underscore-to-camel-case: truelog-impl: org.apache.ibatis.logging.stdout.StdOutImplmapper-locations: classpath:mapper/**Mapper.xmltype-aliases-package: com.wbz.domain 改主启动类 /*** 微服务消费者模块调用的一方*/SpringBootApplication MapperScan(com.wbz.mapper) public class OrderConsumerApplication80 {public static void main(String[] args) {SpringApplication.run(OrderConsumerApplication80.class, args);}} 写业务类 // 实体类 Data NoArgsConstructor AllArgsConstructor TableName(order_detail) public class Order {TableIdprivate Long id;TableFieldprivate Long userId;TableFieldprivate Long productId;TableFieldprivate Integer num;TableFieldprivate Long price;TableFieldprivate Integer deleteFlag;TableFieldJsonFormat(pattern yyyy-MM-dd HH:mm:ss, timezone GMT8)private LocalDateTime createTime;TableFieldJsonFormat(pattern yyyy-MM-dd HH:mm:ss, timezone GMT8)private LocalDateTime updateTime;TableField(exist false)private Product product;}// mapper接口 public interface OrderMapper extends BaseMapperOrder { }// service接口 public interface OrderService extends IServiceOrder {Order getOrderById(Integer id);}// RestTemplateConfig实现类 Configuration public class RestTemplateConfig {Beanpublic RestTemplate restTemplate() {return new RestTemplate();}}// service实现类 Service public class OrderServiceImpl extends ServiceImplOrderMapper, Order implements OrderService {Resourceprivate RestTemplate restTemplate;Overridepublic Order getOrderById(Integer id) {Order order this.getById(id);String url http://127.0.0.1:8001/product/query/ order.getProductId();Product product this.restTemplate.getForObject(url, Product.class);order.setProduct(product);return order;}}// controller实现类 RestController RequestMapping(/order) public class OrderController {Resourceprivate OrderService orderService;GetMapping(/query/{id})public Order getOrderById(PathVariable Integer id) {return this.orderService.getOrderById(id);}} 启动项目之后访问url127.0.0.1/order/query/1出现如下页面就算调用成功
http://www.hkea.cn/news/14289568/

相关文章:

  • 可以做网站首页的图片游戏开发物语攻略
  • 泰安网站建设泽讯如何做好网站推广营销
  • 如何在360网站上做软文推广培训机构网站设计好吗
  • 东莞网站建设aj博客html in wordpress
  • 网站建设费入什么科目2018微网站开发费用
  • 网站备案年检雄安网站建设优化公司
  • 推销网站建设具备哪些知识网站开发业务流程图
  • tomcat做网站并发公司邮箱是什么
  • 做网站美工工资多少wordpress经典编辑器
  • 企业网站php源码建设网站前的市场分析主要包括哪些内容
  • 庆阳工程建设网站六安手机网站建设
  • 找人做网站会给源代码吗传承网页设计公司
  • 什么样的网站做百度广告好创建手机网页
  • 网站建设攵金手指科杰壹陆徐州网站建设专家
  • 绥化市建设工程网站招投标辽阳网站建设学校
  • 微信微网站模板建站快车是什么
  • 移动端网站开发前端模板校园文化宣传主题网站的建设
  • 深圳网站优化团队电子平台网站建设
  • 一般做网站带宽选择多大的购物网站开发周期
  • 一个公司做多个网站是好还是坏餐饮公司企业网站源码
  • 遵义网站建设方案简单制作网页
  • tk域名官方网站动态页网站
  • 网站设计工具有哪些php sqlite 做网站
  • 深圳企业网站建设服务十八款免费的软件下载
  • 企业网站源码带支付wordpress 媒体库缩略图生成
  • 网站快照回档成都住建局官网电话查询
  • 新津县建设局网站wordpress怎么弄表单
  • 个人网站需不需要备案米兰网的网络营销是什么
  • 营销型网站定义Wordpress设置分类加密
  • 建设网站需要专业重庆专业微信网站制作