校园网站开发需求文字seo 新旧网站 两个域名
校园网站开发需求文字,seo 新旧网站 两个域名,jeecms做企业网站,版面设计的基本元素是指阿里妹导读#xff1a;一年多前#xff0c;Java 界最近发生了一件大事#xff0c;阿里开源 Spring Cloud Alibaba#xff0c;并推出首个预览版。Spring Cloud 本身是一套微服务规范#xff0c;并不是一个拿来即可用的框架#xff0c;而 Spring Cloud Alibaba 的开源为开发…阿里妹导读一年多前Java 界最近发生了一件大事阿里开源 Spring Cloud Alibaba并推出首个预览版。Spring Cloud 本身是一套微服务规范并不是一个拿来即可用的框架而 Spring Cloud Alibaba 的开源为开发者们提供了这套规范的实现方式。同时Spring Cloud Alibaba 提供的完整的微服务组件、中文文档和本地化的开源服务提高了开发者们接入微服务的速率并降低了后续的运维难度。
经过一年多的孵化Spring Cloud Alibaba 作为 Spring 社区的唯一一个国产开源项目正式从 Spring Cloud Incubator 孵化器毕业并发布了适配 Spring Cloud Edgware、Finchley、Greenwich 三个版本的新版本。 Spring Cloud Alibaba 是 Spring 社区第一个也是唯一一个国产开源项目。 Spring Cloud Alibaba 毕业后从孵化器仓库迁移到了 Github Alibaba 仓库下新的仓库地址点击这里。 新的 maven 坐标如下:
dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion2.1.0.RELEASE/versiontypepom/typescopeimport/scope
/dependency
Spring Cloud Alibaba 各版本兼容表: Spring Cloud Alibaba 介绍
Spring Cloud 是 Spring 社区打造出的一款基于 Spring Boot 用于快速构建分布式系统的框架主要包括以下特性: Spring Cloud Alibaba 是阿里巴巴开源中间件跟 Spring Cloud 体系的融合: 作为 Spring Cloud 体系下的新实现Spring Cloud Alibaba 跟官方的组件或其它的第三方实现如 Netflix, ConsulZookeeper 等对比具备了更多的功能: Spring Cloud Alibaba 功能
总体架构
依托 Spring Cloud Alibaba只需要添加一些注解和少量配置就可以将 Spring Cloud 应用接入阿里微服务解决方案通过阿里中间件来迅速搭建分布式应用系统。 服务注册 配置管理
服务注册 配置管理是微服务应用中必不可少的两大基础功能。
Spring Cloud Alibaba 基于 Nacos 提供 spring-cloud-alibaba-starter-nacos-discovery spring-cloud-alibaba-starter-nacos-config 实现了服务注册 配置管理功能。
依靠 EnableDiscoveryClient 进行服务的注册兼容 RestTemplate OpenFeign 的客户端进行服务调用。
OpenFeign 客户端:
FeignClient(name echo-service)
public interface EchoService {RequestMapping(value /echo/{str}, method RequestMethod.GET)String echo(PathVariable(str) String str);
}
RestTemplate 客户端:
LoadBalanced
Bean
public RestTemplate restTemplate1() {return new RestTemplate();
}
....
restTemplate.getForObject(http://echo-service/echo/hello-spring-cloud-alibaba,String.class);
配置管理直接以约定俗成的方式构造 dataId Group 从 Nacos 读取配置设置到 Spring Environment 中即可。
流控降级
流控降级是微服务稳定性的法宝用于解决各种不稳定的场景可能会导致的严重后果。
在限流层面:我们根据系统的处理能力对流量进行控制在保证系统吞吐量比较高的同时又不会把系统打垮。
在降级层面:在服务出现不稳定因素的时候暂时切断服务的调用等待一段时间再进行尝试。一方面防止给不稳定服务“雪上加霜”另一方面保护服务的调用方不被拖垮。
Spring Cloud Alibaba 基于 Sentinel 提供 spring-cloud-alibaba-starter-sentinel 对 Spring 体系内基本所有的客户端网关进行了适配包括了 WebServlet, WebFlux, RestTemplate, OpenFeign, Netflix Zuul, Spring Cloud Gateway。
只需引入 starter即可对这些组件生效。只需定义规则进行流控降级:
限流规则: 降级规则: 服务调用
Spring Cloud 默认的服务调用依赖 OpenFeign 或 RestTemplate 使用 REST 进行调用。
Spring Cloud Alibaba Dubbo 只需使用 DubboTransported 注解即可将底层的 Rest 协议无缝切换成 Dubbo RPC 协议进行 RPC 调用。这一举措让 Spring Cloud 的客户端调用多了一个新的 RPC 选择:
Bean
LoadBalanced
DubboTransported
public RestTemplate restTemplate() {return new RestTemplate();
}FeignClient(dubbo-provider)
DubboTransported(protocol dubbo)
public interface DubboFeignRestService {GetMapping(value /param)String param(RequestParam(param) String param);PostMapping(/saveB)String saveB(RequestParam(a) int a, RequestParam(b) String b);
}
分布式消息 消息总线
基于 Spring Cloud Stream 提供 Binder 的新实现: Spring Cloud Stream RocketMQ Binder也新增了 Spring Cloud Bus 消息总线的新实现 Spring Cloud Bus RocketMQ。
Spring Cloud Stream 对消息的编程模型进行了统一封装用同一套代码进行消息的发送/接收屏蔽底层消息中间件的实现细节让我们在关注点放到业务逻辑上。如果想要更换底层消息中间件直接引入 Binder 的新实现即可代码层面几乎无需修改。这是一段使用 Spring Cloud Stream RocketMQ Spring Cloud Function 完成消息的接收并转换成大写 添加 alibaba- 前缀的新消息再发送给新的 topic 的过程:
spring.cloud.stream.bindings.input.destinationtest-topic
spring.cloud.stream.bindings.input.grouptest-group1spring.cloud.stream.bindings.output.destinationtest-topic-uppercasespring.cloud.stream.function.definitionuppercase|addprefix
SpringBootApplication
EnableBinding(Processor.class)
public class FunctionApplication {public static void main(String[] args) {new SpringApplicationBuilder(FunctionApplication.class).web(WebApplicationType.NONE).run(args);}Beanpublic FunctionString, String uppercase() {return x - x.toUpperCase();}Beanpublic FunctionString, String addprefix() {return x - alibaba- x;}}
分布式事务
Seata 是 阿里巴巴 开源的 分布式事务中间件以 高效 并且对业务 0 侵入 的方式解决 微服务 场景下面临的分布式事务问题。 在 Spring Cloud 这一层面我们通过在微服务中传递事务上下文的方式完成了 Seata 在 Spring Cloud 层面的接入:
Spring MVC 环境下支持自动还原 Seata 事务上下文支持服务调用者通过 RestTemplate 或 FeignClient 调用时自动传递 Seata 事务上下文支持 FeignClient 和 Hystrix、Sentinel 同时使用的场景 这是一段使用 Spring Cloud Alibaba Seata 完成 storage 和 order 服务进行数据存储的分布式事务代码:
GlobalTransactional(timeoutMills 300000, name spring-cloud-demo-tx)
RequestMapping(value /seata/rest, method RequestMethod.GET, produces application/json)
public String rest() {// 调用 storage 服务。涉及数据库操作String result restTemplate.getForObject(http://127.0.0.1:18082/storage/ COMMODITY_CODE / ORDER_COUNT,String.class);if (!SUCCESS.equals(result)) {throw new RuntimeException();}String url http://127.0.0.1:18083/order;HttpHeaders headers new HttpHeaders();headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);MultiValueMapString, String map new LinkedMultiValueMapString, String();map.add(userId, USER_ID);map.add(commodityCode, COMMODITY_CODE);map.add(orderCount, ORDER_COUNT );HttpEntityMultiValueMapString, String request new HttpEntityMultiValueMapString, String(map, headers);// 调用 order 服务。涉及数据库操作ResponseEntityString response restTemplate.postForEntity(url, request,String.class);result response.getBody();if (!SUCCESS.equals(result)) {throw new RuntimeException();}return SUCCESS;
}
Roadmap
Spring Boot Admin 是一个开源社区项目用于管理和监控 SpringBoot 应用程序。但是它没有跟 Spring Cloud 做深度的整合。我们希望做一个 Spring Cloud Admin它能提供如下功能:
增加服务治理控制台整合微服务控制能力服务查询、管理配置管理限流降级等项目管理/监控参考 Spring Cloud Azure Playground http://azure-spring-cloud.azurewebsites.net/ 创造 Spring Cloud Alibaba Playground把一些最佳实践视频教程自动生成项目等功能放上去增加 Spring Cloud Alibaba 最佳实践项目针对 Spring Cloud Alibaba 各种特性开发对应的实战 Demo替换 Spring Cloud 服务调用客户端 OpenFeign Ribbon。开发更通用的服务调用客户端替换 Spring Cloud 服务- - 调- 用客户端 OpenFeign Ribbon
原文链接 本文为云栖社区原创内容未经允许不得转载。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/87079.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!