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

中怎么做网站上下载图片的功能专业制作网站推荐

中怎么做网站上下载图片的功能,专业制作网站推荐,哪里可以做网站平台,网页升级访问永久你懂的微服务技术学习引入 - 微服务自2016年起搜索指数持续增长#xff0c;已成为企业开发大型项目的必备技术#xff0c;中高级java工程师招聘多要求熟悉微服务相关技术。微服务架构介绍 概念#xff1a;微服务是一种软件架构风格#xff0c;以专注于单一职责的多个响应项目为基…微服务技术学习引入 - 微服务自2016年起搜索指数持续增长已成为企业开发大型项目的必备技术中高级java工程师招聘多要求熟悉微服务相关技术。微服务架构介绍 概念微服务是一种软件架构风格以专注于单一职责的多个响应项目为基础组合出复杂大型应用与单体架构不同其内部由多个小项目组合而成。单体架构特点业务功能和模块无论多复杂都写在一个项目中项目体积随功能增加而增大但始终是一个项目。微服务架构特点将单体架构项目按单一职责原则拆分成多个小项目每个小项目独立开发、运行和部署组合形成微服务集群。 服务拆分问题 架构选择问题开发新项目时需考虑选择单体架构还是微服务架构若选择微服务架构需确定何时从单体架构转变以及如何拆分服务、确定服务拆分边界等。拆分后的问题 跨服务远程调用服务拆分后业务功能在不同项目中物理上隔绝存在跨服务调用问题。服务治理服务间调用关系复杂需要管理服务的状态和调用关系。服务请求路由单体项目时前端通过IP端口访问微服务架构下有多个独立部署的服务前端需明确访问路径存在服务请求路由问题。 何时拆分单体架构项目 创业型项目 适合采用单体架构因其需要快速开发、低成本试错。 确定的大型项目 如大厂开发网上商城资金充足、目标明确一上来就推荐使用微服务架构可避免从单体架构再拆分的麻烦后续开发更轻松。 如何拆分单体项目 拆分目标 高内聚拆出的服务职责应单一包含关联度高且完整度高的业务即功能升级或迭代时大部分代码在服务内部修改减少对其他服务影响。低耦合服务功能相对独立减少对其他服务依赖核心业务尽量在内部完成跨服务合作业务应尽量减少做到高内聚自然低耦合。 拆分方式 纵向拆分垂直拆分按业务模块拆分如黑马商城按商品管理、用户管理、订单、支付、购物车等业务模块进行拆分。横向拆分水平拆分抽取公共服务模块避免重复开发如登录、下单等业务中的风控和短信功能可分别抽取成风控微服务和短信微服务供其他业务共享。 基于Rest template的服务调用问题 调用方式说明基于Rest template的服务调用需在代码中写死对方服务的IP地址、端口号和资源路径。多实例部署问题实际部署中服务可能多实例部署写代码时无法预知部署数量及地址导致负载均衡失效如商品服务多实例部署时写死的代码可能无法访问到所有实例。服务挂掉问题服务挂掉后代码写死地址无法动态切换影响业务如商品服务挂掉后购物车服务因写死地址无法访问商品服务业务出现问题。新服务启动问题新服务启动后代码无法动态获取地址如运维启动新的商品服务实例端口变化后购物车服务无法得知新地址。 注册中心解决服务治理问题 服务治理问题包括服务提供者地址未知、服务状态变更无法感知、多实例负载均衡等。注册中心技术用于解决上述服务治理问题。解决问题原理服务提供者启动后向注册中心注册服务信息服务调用者向注册中心订阅服务注册中心返回实例列表服务调用者通过负载均衡算法选择实例进行调用。 注册中心的工作原理 服务注册服务提供者启动后向注册中心注册服务信息包括服务名称、IP端口、提供的功能等注册中心形成服务注册表记录这些信息。服务订阅服务调用者向注册中心订阅所需服务注册中心返回实例列表。负载均衡服务调用者从实例列表中通过负载均衡算法选择一个实例进行调用负载均衡算法包括随机、轮询、加权轮询等。心跳机制与服务状态监控服务与注册中心形成心跳机制服务定期向注册中心报告健康状态注册中心监控服务状态服务挂掉后注册中心剔除实例并推送变更给服务调用者新服务启动后注册信息变更注册中心推送新信息给服务调用者使其感知服务状态变更。 负载均衡算法及注册中心的作用 负载均衡算法 随机算法从多个实例中随机选择一个。轮询算法按顺序依次请求各个实例实现均衡访问。加权轮询或加权随机根据实例权重分配访问概率适用于硬件配置不同情况。 注册中心作用 接收服务注册信息形成服务注册表。监控服务状态变更通过心跳机制实现。服务状态变化时剔除或添加实例信息并推送变更给服务调用者实现服务治理。 注册中心原理回顾 原理回顾注册中心原理类似家政中心服务提供者注册服务服务调用者订阅服务通过负载均衡选择实例服务与注册中心心跳维持状态监控实现服务治理。服务治理涉及服务提供者、消费者、注册中心三个角色注册中心记录监控服务状态并推送变更。 注册中心组件选择 介绍多种注册中心组件如NFLICK公司的Eureka、Spring Cloud Consul、阿里巴巴的NEO等它们都遵循Spring Cloud标准使用差别不大。 OpenFeign OpenFeign是一个声明式的HTTP客户端在微服务架构中可简化跨服务调用的代码。以下是其主要内容总结 OpenFeign引入背景 在微服务架构中跨服务查询商品时原始代码复杂涉及根据服务名称获取服务实例、负载均衡、发送请求、解析结果等多个步骤而单体架构实现类似查询仅需一行代码。为解决此问题引入OpenFeign技术。 OpenFeign使用步骤 引入依赖 spring cloud starter OpenFeignOpenFeign组件依赖。spring cloud starter LoadBalancer用于负载均衡新版本使用早期使用ribbon。 添加注解 在启动类上加EnableFeignClients注解开启OpenFeign功能。 定义FeignClient接口 这是一个接口用于替代之前复杂代码。接口上加FeignClient注解并指定服务名称如item serviceOpenFeign会据此从注册中心拉取实例列表。通过定义方法并加注解如GetMapping、RequestParam等Spring MVC注解标记请求方式、路径、参数等信息降低学习成本。方法返回值类型用于确定返回值类型OpenFeign可将JSON结果转为相应Java对象。该接口无需手动实现OpenFeign会动态代理实现。 示例代码实现 在cut service的pom文件引入上述依赖。在启动类添加EnableFeignClients注解。编写item client接口如 FeignClient(item-service) public interface ItemClient {GetMapping(/items)CollectionItemDTO queryItemByIds(RequestParam(ids) ListString ids); }在调用处注入item client接口直接调用接口方法如itemClient.queryItemByIds()实现远程查询一行代码搞定。 总结 OpenFeign可简化跨服务调用代码让微服务之间的远程调用更简单实现类似单体架构的调用便捷性。 连接池 最佳实践 OpenFeign使用问题及优化方案总结 1. OpenFeign使用问题引入 1.1当前使用方式存在的问题 多业务重复编写在购物车和订单业务未来拆分中都需编写类似查询商品服务的代码造成代码重复编写浪费资源。功能变更影响大商品服务功能变化时所有编写了相关Feign客户端的微服务都需修改代码。 1.2优化目标 避免代码重复编写。避免重复代码修改。 2. 优化方案一 2.1具体操作 商品微服务转变将商品微服务item service变为纯pom类型模块。创建子模块在其下创建三个子模块分别为item DQ放实体类、item p i放API接口如商品查询的Feign客户端、item子模块写商品服务业务代码。其他微服务引用其他微服务如购物车、订单服务通过引用这两个模块坐标实现远程调用商品服务功能。 2.2优点 代码编写优化解决代码重复编写问题由商品服务开发者维护DT和Feign客户端更为合理。低耦合不同微服务间耦合度低便于团队独立维护。 2.3缺点 项目结构复杂每个微服务拆分成多个模块会使项目结构变得复杂如单体项目拆成20个微服务时模块数量会从20个变为60个。 3. 优化方案二 3.1具体操作 创建通用API模块名称为HMAPI不属于任何微服务是与其他模块同级的通用模块。定义包及内容模块内定义三个包Client、config、dtoClient包中放整个商城每个微服务要暴露的客户端接口DTO包放所有需要公共访问的DTO。微服务引用其他微服务如购物车、订单服务直接引用HMAPI模块依赖即可调用相关功能。 3.2优点 代码重复解决解决代码重复编写问题。通用性强具备代码通用性方便统一管理。 3.3缺点 耦合度增加代码耦合度相对较高不同微服务接口需在同一模块维护。 4. 课堂演示选择及操作基于方案二 4.1创建模块 创建HM - API 4.2引入依赖 引入原购物车服务中有关OpenFeign和load balance依赖。 4.3创建包及拷贝代码 创建com.hm.api包及子包client、dt将购物车服务中的DT和Feign客户端相关代码拷贝至对应包中。 4.4处理购物车服务报错 删除购物车服务中原有DT和客户端代码在pom文件中引入HM - API模块依赖解决业务报错。 5. 测试及问题解决 5.1测试出错 重启购物车服务测试时出现错误提示cart service实现类构造函数参数找不到bean。 5.2原因分析 Feign客户端接口未被扫描到其bean由动态代理实现需被扫描包扫描而购物车服务启动类扫描包与通用模块扫描包不同。 5.3解决方法 5.4测试成功 再次重启测试成功访问接口证明问题解决。 6. 总结与易错点强调 6.1两种模式总结 通用API模块模式所有微服务对外暴露接口及相关DTO定义在通用模块其他服务引用即可。微服务拆分模式在微服务内部创建子模块分别放DTO、Feign接口和实现类供其他服务引用。 6.2选择建议 根据项目结构选择合适模式如项目为聚合结构可选择通用API模块模式若项目结构为每个微服务是独立project可选择微服务拆分模式。 6.3易错点 引用其他模块定义的Feign客户端时默认扫描包扫不到需在启动类的Feign开关上指定Feign客户端对应的扫描包否则无法正确扫描创建对象使用。 OpenFeign日志输出与相关知识总结 日志输出问题提出 项目开发中日志输出重要能帮助定位和解决问题。以查询购物车功能为例其远程调用商品服务时当前仅看到一条SQL语句日志未看到OpenFeign远程调用相关日志不利于调试。 OpenFeign日志记录规范 默认输出条件OpenFeign默认仅在thin client所在包的日志级别为debug时输出日志。项目日志级别项目中已将com.hm包定义为debug级别但OpenFeign仍未输出日志是因为其自身日志级别默认为NONE不记录任何信息。 OpenFeign日志级别介绍 NONE默认值不记录任何日志信息。BASIC仅记录请求方法、URL、显示状态码及执行时间等基础信息即请求行部分信息不包括请求头和请求体。HEADERS在BASIC基础上额外记录请求和响应的头信息。FULL记录请求行、请求头、请求体、响应行、响应头和响应体涵盖HTTP协议所有相关数据。 OpenFeign日志级别配置步骤 定义日志级别bean定义一个类在类中声明一个类型为log.levelOpenFeign提供的日志级别枚举类型的bean并设置所需日志级别如FULL。此时该bean未生效因为所在类缺少Configuration注解。配置生效方式 局部配置将配置类放到FeignClient注解中仅对该客户端生效。全局配置将配置类放到EnableFeignClients注解上对所有客户端生效。 通用模块配置示例在通用模块定义配置类DefaultFeignConfig设置日志级别为FULL在启动类添加EnableFeignClients(defaultConfiguration DefaultFeignConfig.class)实现全局生效。重启服务后日志输出内容增多方便调试但日常运行不建议开启因其输出内容多会影响性能。 OpenFeign知识回顾总结 远程调用步骤 引用OpenFeign和负载均衡器的依赖。基于EnableFeignClients注解开启OpenFeign效果。编写FeignClient接口基于Spring MVC注解定义方法OpenFeign利用动态代理自动实现。注入客户端进行调用。 连接池配置方法引入依赖并在yml文件中打开OpenFeign连接池开关。最佳实践方案 -拆分微服务为多个子模块如在DTO模块放实体类、client模块放Feign接口、base模块放业务代码其他微服务按需引用DT和client模块。额外创建一个模块专门存放所有微服务的client dt其他微服务引用该模块。课堂中采用在微服务里创建独立模块的方式。 输出日志级别配置定义类并在其中定义日志级别的bean不加Configuration注解然后将配置类声明在FeignClient或EnableFeignClients注解上。
http://www.pierceye.com/news/325292/

相关文章:

  • 阳江企业网站好的外包公司
  • 深圳做分销商城网站我有域名跟空间能教我做网站吗
  • 网站子目录做推送用什么网站
  • 网站手机优化网站上传空间的ip地址
  • 做网站增加流量自助微信网站设计
  • 网站推广的6个方法是什么软件开发合同模板范本1
  • 营销网站手机站wordpress的主题目录
  • 达州建设企业网站重视网站商务通
  • 淘宝网站怎么做视频58做二手车网站应该怎么推广
  • 自动翻译网站软件cf刷枪网站怎么做的
  • 示范校建设验收网站网站对话窗口怎么做
  • phpcms 移动网站模板怎么做个人网页
  • 南宁手机建站公司新加坡网站后缀
  • 如何在建设部网站查询获奖情况如何申请电商网站
  • jsp网站访问万维网网站幻灯
  • 南通住房和城乡建设部网站首页安徽公司网站建设
  • 建筑论坛网站修改WordPress文章发布页面
  • 网站代备案系统seo优化服务是什么意思
  • 专门做选择题的网站一个网站seo做哪些工作
  • wordpress 多站点 拷贝中国建设银行春招网站
  • 门户营销型网站wordpress代码执行
  • 保山市建设厅网站做建筑机械网站那个网站好
  • 广告位网站建设国际人才网中山招聘网
  • 南昌市城市建设档案馆网站一个网站做无限关键词
  • wordpress特别卡 iis东莞推广优化公司
  • 做网站收入怎样开放平台登录
  • 外贸网站运营推广微信运营商
  • 国外做储物柜的网站做亚马逊网站一般发什么快递
  • 仿古建筑公司网站廊坊网站建设公司
  • 在线动画手机网站模板下载学软件开发需要什么基础