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

ps网站怎么做超链接做网站要学什么语言

ps网站怎么做超链接,做网站要学什么语言,触屏手机网站模板,网络推广最好的网站文章目录 前言一、什么时候需要拆分微服务1. 创业型项目2. 大型项目 二、怎么拆1. 拆分目标2. 拆分方式 三、微服务之间远程调用1. 实现方式2. 手动发送Http请求#xff08;RestTemplate#xff09;3. 服务注册中心3.1 原理3.2 Nacos注册中心3.3 服务注册3.4 服务发现(Discov… 文章目录 前言一、什么时候需要拆分微服务1. 创业型项目2. 大型项目 二、怎么拆1. 拆分目标2. 拆分方式 三、微服务之间远程调用1. 实现方式2. 手动发送Http请求RestTemplate3. 服务注册中心3.1 原理3.2 Nacos注册中心3.3 服务注册3.4 服务发现(DiscoveryClient) 4. OpenFeign4.1 实现步骤4.2 连接池 5. 抽取Fegin客户端实现方式 6. 日志6.1 级别6.2 实现步骤 前言 什么时候去拆分微服务怎么拆分拆分后微服务项目之间的业务怎么调用 一、什么时候需要拆分微服务 1. 创业型项目 如果是创业型公司最好先用单体架构快速迭代开发验证市场运作模型快速试错。当业务跑通以后随着业务规模扩大、人员规模增加再考虑拆分微服务。 2. 大型项目 如果是大型企业有充足的资源可以在项目开始之初就搭建微服务架构。 二、怎么拆 1. 拆分目标 高内聚每个微服务的职责要尽量单一包含的业务相互关联度高、完整度高。低耦合每个微服务的功能要相对独立尽量减少对其它微服务的依赖。 2. 拆分方式 纵向拆分按照业务模块来拆分横向拆分抽取公共服务提高复用性 三、微服务之间远程调用 1. 实现方式 基于Http协议不关心服务提供者的具体技术实现只要对外暴露Http接口即可更符合微服务的需要基于Dubbo协议 2. 手动发送Http请求RestTemplate Java发送http请求可以使用Spring提供的RestTemplate 实现步骤 1、注入RestTemplate到Spring容器 Bean public RestTemplate restTemplate(){return new RestTemplate(); }2、发起远程调用 // 利用RestTemplate发起http请求得到http的响应 ResponseEntityListItemDTO response restTemplate.exchange(http://localhost:8081/items?ids{ids},HttpMethod.GET,null,new ParameterizedTypeReferenceListItemDTO() {},Map.of(ids, CollUtil.join(itemIds, ,)) );3. 服务注册中心 问题引入微服务项目a服务提供者多实例部署每个实例其IP或端口不同当微服务项目b服务消费者要远程调用a时不知道调用哪个。 3.1 原理 三个角色 服务提供者暴露服务接口供其它服务调用 服务消费者调用其它服务提供的接口 注册中心记录并监控微服务各实例状态推送服务变更信息 流程 服务启动时就会注册自己的服务信息服务名、IP、端口到注册中心调用者可以从注册中心订阅想要的服务获取服务对应的实例列表1个服务可能多实例部署调用者自己对实例列表负载均衡挑选一个实例调用者向该实例发起远程调用 服务状态变更 服务提供者通过心跳机制向注册中心报告自己的健康状态当心跳异常时注册中心会将异常服务剔除并通知订阅了该服务的消费者 3.2 Nacos注册中心 Alibaba公司出品目前被集成在SpringCloudAlibaba中 基于Docker来部署Nacos的注册中心 1准备nacos.sql数据库表并导入到sql客户端 2再将sql文件导入到Docker中的MySQL容器中 3.3 服务注册 1、引入依赖 !--nacos 服务注册发现--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependency2、配置Nacos地址 spring:application:name: item-service # 服务名称cloud:nacos:server-addr: 192.168.xxx.xxx:xxx # nacos地址3、启动服务实例 3.4 服务发现(DiscoveryClient) 服务的消费者要去nacos订阅服务这个过程就是服务发现。 步骤步骤1、2和前面一样 1、引入依赖 2、配置Nacos地址 3、发现并调用服务 DiscoveryClientSpringCloud已经自动装配只要注入就好。 4. OpenFeign 问题引入利用RestTemplate实现了服务的远程调用代码复杂。如何让远程调用像本地方法调用一样简单 概念声明式的http客户端利用SpringMVC的常见注解基于动态代理生成远程调用的代码而无需手动再编写非常方便。 4.1 实现步骤 1、引入依赖包括OpenFeign和负载均衡组件SpringCloudLoadBalancer !--openFeign--dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId/dependency!--负载均衡器--dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-loadbalancer/artifactId/dependency2、在启动类中添加EnableFeignClients注解启用OpenFeign功能 EnableFeignClients(basePackages com.hmall.api.client, defaultConfiguration DefaultFeignConfig.class) //basePackages com.hmall.api.client因为是把微服务项目业务抽取到hm-api这个模块中要调用这个模块中的方法需要扫描到这个包下并在FeignClient中药声明服务名称 MapperScan(com.hmall.cart.mapper) SpringBootApplication public class CartApplication {public static void main(String[] args) {SpringApplication.run(CartApplication.class, args);} }3、声明接口无需实现方法在接口上添加FeignClient注解 FeignClient(item-service) //声明服务名称 public interface ItemClient {GetMapping(/items) //声明请求方式、请求路径ListItemDTO queryItemByIds(RequestParam(ids) CollectionLong ids); }4、使用FeignClient,实现远程调用 ListItemDTO items itemClient.queryItemByIds(List.of(1,2,3))4.2 连接池 Feign底层发起http请求依赖于其它的框架。其底层支持的http客户端实现包括: HttpURLConnection默认实现不支持连接池Apache HttpClient 支持连接池OKHttp支持连接池 使用OKHttp步骤 1、引入依赖 !--OK http 的依赖 -- dependencygroupIdio.github.openfeign/groupIdartifactIdfeign-okhttp/artifactId /dependency2、开启连接池 feign:okhttp:enabled: true # 开启OKHttp功能5. 抽取Fegin客户端 问题引入微服务项目之间的调用复杂不同的微服务项目调用同一个微服务项目会出现代码重复的问题。 实现方式 思路1抽取到微服务之外的公共module。结构清晰但耦合度偏高思路2每个微服务自己抽取一个module。结构复杂但耦合度低 具体代码实现参考黑马微服务开发https://www.bilibili.com/video/BV1S142197x7?p64vd_sourced7aecc6c1f43adaae25fcb7e1a25fec2 6. 日志 FeignClient所在包的日志级别为DEBUG时才会输出日志 6.1 级别 NONE不记录任何日志信息这是默认值。BASIC仅记录请求的方法URL以及响应状态码和执行时间HEADERS在BASIC的基础上额外记录了请求和响应的头信息FULL记录所有请求和响应的明细包括头信息、请求体、元数据。 6.2 实现步骤 1、在抽取各个微服务通用业务的hm-api模块下新建一个配置类 package com.hmall.api.config; import feign.Logger; import org.springframework.context.annotation.Bean; public class DefaultFeignConfig {Beanpublic Logger.Level feignLogLevel(){return Logger.Level.FULL;} }2、配置让日志级别生效 局部配置在某个FeignClient中配置只对当前FeignClient生效 FeignClient(value item-service, configuration DefaultFeignConfig.class)全局配置在EnableFeignClients中配置针对所有FeignClient生效 EnableFeignClients(defaultConfiguration DefaultFeignConfig.class)
http://www.tj-hxxt.cn/news/223041.html

相关文章:

  • 丰和园林建设集团网站wordpress熊掌号插件
  • 深圳如何搭建制作网站昆明网站建设建站模板
  • 乐陵人力资源网站学校网站代码模板
  • 好单库网站是怎么做的镇江关键词优化如何
  • 网站首页设计大赛国外网站建设软件
  • 网站提示域名重定向怎么做旅游网站名字
  • html基础网站建设优化seo
  • 网页设计作业 个人网站wordpress 个人站
  • 做外贸去哪些网站找老外人人商城源码
  • 爱空间网站模板wordpress模板制作软件
  • 青岛网站制作公司排名重庆喷绘制作
  • 成都网站开发外包网站建设 服务流程
  • 营销策划好的网站苏州seo优化公司
  • 做微商好还是开网站好没有网站可以做cpa
  • 长安做英文网站企业服务公司是干嘛的
  • 建设网站公司怎样的网站打开速度块
  • 青岛做网站哪家专业设计师 网站 贵
  • 专门做运动装备的网站做网站去哪里找广告主
  • 如何做网站的源码绍兴百度seo公司
  • 贵港公司做网站仙居做网站的
  • 张家港建网站价格南宁seo域名
  • qq整人网站怎么做医药网站开发
  • 网上做翻译兼职网站智慧校园学生端登录平台
  • 网页设计入门+齿轮站内seo内容优化包括
  • wordpress编码修改重庆网站seo推广
  • 好的网站设计制作网站主页排版
  • 用自己的电脑做服务器弄网站电子商务网站的设计
  • 中山网站制作公司淘宝二官方网站是做啥的
  • 重庆专业网站搭建英语外贸网站建设
  • it网站建设资讯网科技公司网站制作公司