Ribbon

Delphi开发工具DevExpress VCL 2021年新版首发(附高速下载)

痞子三分冷 提交于 2021-01-28 11:34:44
DevExpress VCL Controls 是Devexpress公司旗下最老牌的用户界面套包,所包含的控件有:数据录入、图表、数据分析、导航、布局等。该控件能帮助您创建优异的用户体验,提供高影响力的业务解决方案,并利用您现有的VCL技能为未来构建下一代应用程序。 DevExpress VCL v20.2.4正式版下载 具体更新内容如下: 此列表包括v20.2.4中已解决的所有问题。 ExpressBars Suite T964153 - Ribbon Form - 如果Style属性设置为rs2007和rs2010以外的值,并且表单的DisableAero属性设置为False,则功能区控件的组和选项卡没有分隔符 T960957 - TdxCustomStatusBar后代不会缩放基于当前DPI由文本面板的PanelStyle.ImageIndex属性指定的图像 ExpressDocking Library T963411 - 拖放操作可以取消停靠并放置停靠面板,以便其右边缘或底边缘不在屏幕上 ExpressEditors Library T959802 - TcxButton - 如果在隐藏按钮上方/下方的控件并将SpeedButtonOptions.Transparent属性设置为True时开始,淡入淡出动画会产生绘画瑕疵 T966644 -

大流量场景下如何云淡风轻地进行线上发布?

余生颓废 提交于 2021-01-21 12:45:10
简介: 本文介绍了微服务治理下金丝雀发布的能力,解决了发布期间少量流量验证新功能的问题。 很多互联网公司在半夜发布的另外一个重要原因是不具备可灰度能力,新版本存在 bug 或者其它原因会影响线上的客户,无奈之下只能选择在半夜进行发布来减少影响面。 我们知道默认情况下,无论是 Kubernetes 还是 ECS,新老版本都存在的情况下会根据特定的负载均衡算法随机地路由到不同的实例上,随机意味着出问题也会随机出现。我们需要一套动态路由来完成灰度发布的解决方案。 在 RPC 领域,我们称灰度发布为动态路由,动态路由的意思是指流量可以动态地路由到指定的实例上。 动态路由场景 动态路由是微服务里非常核心的功能,流量动态路由意味着可以做非常多的事情。由此衍生出各个场景: 金丝雀发布:只有满足特定规则(比如 Query Parameter、HEADER、COOKIE 中某些 KEY 满足一些条件)或者是固定流量比例的流量才会进入新版本,其它流量都路由到老版本上。 同机房优先路由:当公司规模扩大之后,应用会跨机房部署来达到高可用的目的。由于异地跨机房调用出现的网络延迟问题,需要确保服务消费方能优先调用相同机房的服务消费方,这就需要同机房优先路由的能力。 标签路由:金丝雀发布的新场景。金丝雀发布一般只有新和老两个版本,标签路由可以在线上部署多个版本,每个版本都对于一个标签。 全链路灰度

浅谈微服务架构与服务治理的Eureka和Dubbo

喜欢而已 提交于 2021-01-15 05:05:19
前言 本来计划周五+周末三天自驾游,谁知人算不如天算,周六恰逢台风来袭,湖州附近的景点全部关停,不得已只能周五玩完之后,于周六踩着台风的边缘逃回上海。周末过得如此艰难,这次就聊点务虚的话题,一是浅谈微服务的架构设计,二是聊聊微服务中广泛用于服务治理的Eureka与RPC框架Dubbo异同点。 一、微服务的架构设计 之所以想聊一下这个话题,主要有感于最近接触的两个新的微服务项目--两个项目的架构设计出自两个人之手,却不约而同的使用了相同的设计理念,项目结构非常类似。又想到就职于上家公司时接触到的项目的结构设计,于是迸发出了些微的想法。用微服务的架构设计来作为议题,很有喧哗取宠的偏向,所以需要声明一下,本文说的都是基于博主当前浅薄的软件开发经验与贫瘠的架构设计思想得出的浅见,仅是一家之言,而且其中必定包含了很多的确认型偏误,对此现在无法避免。本文的目的只是与大家分享一下自己的想法,仅此而已。 言归正传,当前流传的比较广且提的比较多的设计理念,当属2004年Eric Evans提出的Domain Drive Design,即领域驱动设计,简称DDD。该设计理念可以说与微服务具有相当大的共生依赖关系,也因此,直到最近几年微服务兴起,DDD设计理念才大行其道。该设计理念就是先确定领域,再在此基础上进行设计开发。而领域怎么理解?通俗的理解方式就是一个独立的业务模块,以业务的范围来确定领域的边界

好文,SpringCloud架构的各个组件的原理分析,建议收藏

点点圈 提交于 2021-01-13 19:03:39
我们先认识一下SpringCloud的各个组件,然后知其所以然。 Spring Cloud架构的各个组件的原理分析 原理讲解前,先看一个最经典的业务场景,如开发一个电商网站,要实现支付订单的功能,流程如下: 创建一个订单之后,如果用户立刻支付了这个订单,我们需要将订单状态更新为“已支付” 扣减相应的商品库存 通知仓储中心,进行发货 给用户的这次购物增加相应的积分 如上,微服务的应用场景和核心竞争力: 降低耦合: 每一个微服务专注于单一功能,并通过定义良好的接口清晰表述服务边界。由于体积小、复杂度低,每个微服务可由一个小规模开发团队完全掌控,易于保持高可维护性和开发效率。 独立部署: 由于微服务具备独立的运行进程,所以每个微服务也可以独立部署。当某个微服务发生变更时无需编译、部署整个应用。由微服务组成的应用相当于具备一系列可并行的发布流程,使得发布更加高效,同时降低对生产环境所造成的风险,最终缩短应用交付周期。 选型灵活: 微服务架构下,技术选型是去中心化的。每个团队可以根据自身服务的需求和行业发展的现状,自由选择最适合的技术栈。由于每个微服务相对简单,故需要对技术栈进行升级时所面临的风险就较低,甚至完全重构一个微服务也是可行的。 容错机制: 当某一组建发生故障时,在单一进程的传统架构下,故障很有可能在进程内扩散,形成应用全局性的不可用。在微服务架构下,故障会被隔离在单个服务中

Spring Cloud Spring Boot mybatis分布式微服务云架构

不想你离开。 提交于 2021-01-09 10:03:13
简介 在上一节中,我们讨论了feign+hystrix在项目开发中,除了考虑正常的调用之外,负载均衡和故障转移也是关注的重点,这也是feign + ribbon+hystrix的优势所在,本节我们就讨论一下在feign中使用ribbon,有两种方式 一、通过在配置文件application.yml配置,开启ribbon,并指定调用生产者相对上一节可以不做任何更改,可以看项目(microservice-consumer-movie-feign-with-hystrix-hystrix-factory) 项目结构如下: application.yml配置文件: spring: application: name: microservice-consumer-movie-feign-with-hystrix-hystrix-factory server: port: 7901 eureka: client: healthcheck: enabled: true serviceUrl: defaultZone: http://jacky:admin@peer1:8761/eureka/,http://jacky:admin@peer2:8762/eureka/,http://jacky:admin@peer3:8763/eureka/ instance: prefer-ip-address

Excel的线程 与 SynchronizationContext的实现

北城以北 提交于 2021-01-07 08:56:58
COM组件的线程模型 与Excel多线程的背景知识 COM组件的线程模型被称之为Apartment模型,COM对象初始化时其执行上下文(Execution Context),他要么和单个线程关联STA(Single Thread Apartment ) 要么和多个线程关联MTA(Multi Thread Apartment)。 Excel是一种STA线程的应用程序,使用多线程直接怼会出问题,必须借助线程的同步上下文实现线程间的消息传递。 1、Excel 开发中与线程相关的若干问题参考这个链接: https://www.cnblogs.com/yangecnu/p/Some-Thread-Releated-Problems-and-Solutions-in-Excel-Development.html 2、SynchronizationContext的实现参考这个链接(共3篇文章,进入链接后可以找到下一章的链接): https://www.codeproject.com/Articles/31971/Understanding-SynchronizationContext-Part-I 3、ExcelDNA是什么 Excel-DNA is an independent project to integrate .NET into Excel. With Excel-DNA you

Spring Cloud 之 Feign 使用HTTP请求远程服务

余生长醉 提交于 2021-01-04 04:04:02
  Feign是从Netflix中分离出来的轻量级项目,能够在类接口上添加注释,成为一个REST API 客户端,Feign默认集成了Ribbon。   Feign中对 Hystrix 有依赖关系。Feign只是一个便利的rest框架,简化调用,最后还是通过ribbon在注册服务器中找到服务实例,然后对请求进行分配   Feign是一种声明式、模板化的HTTP客户端。在Spring Cloud中使用Feign, 我们可以做到使用HTTP请求远程服务时能与调用本地方法一样的编码体验,开发者完全感知不到这是远程方法,更感知不到这是个HTTP请求。 一、使用方式   1、首先写好需要注册进注册中心的服务接口UserServiceController,该接口相当于service层,只是以RestFULL接口的形式供远程调用 @RestController @RequestMapping( "userService" ) public class UserServiceController { @GetMapping( "getUser/{userId}" ) public User getUser(@PathVariable("userId" ) String userId){ System.out.println( "获取User,更具UserId,查询User-->" + userId

SpringCloud与微服务Ⅶ --- Feign负载均衡

浪尽此生 提交于 2021-01-03 07:35:50
官方文档: https://projects.spring.io/spring-cloud/spring-cloud.html#spring-cloud-feign 一.Feign是什么 Feign 是一个声明式的Web客户端。它使编写Web服务客户端变得更容易,它的使用方法是定义一个接口,然后在上面添加注解,同时也支持JAX-RS标准的注解。Feign也支持可拔插式的编码器和解码器。SpringCloud对Feign进行了封装,使其支持了SpringMVC标准注解和HttpMessageConverts。Feign可以与Eureka和Ribbon组合使用以支持负载均衡。 二.Feign能做什么 Feign旨在编写Java Http客户端更加容易。 前面在使用Ribbon+RestTemplate时,利用RestTemplate对http请求的封装处理,形成了一套模板化的调用方法。但是实际开发中,由于对服务依赖的调用可能不止一处,往往一个接口会被多次调用,所以通常都会针对每个微服务自行封装一些客户端类来包装这些依赖服务的调用。所以,Feign在此基础上做了进一步封装,由他来帮助我们定义和实现依赖服务接口的定义。在Feign的实现下,我们只需要创建一个接口并使用注解的方式来配置它(以前是Dao接口上面标注Mapper注解,现在是一个微服务接口上面标注一个Feign即可)

用户界面控件Telerik UI for WinForms发布R2 2019|附下载

不羁岁月 提交于 2020-12-25 11:17:07
Telerik UI for WinForms 拥有适用Windows Forms的110多个令人惊叹的UI控件。所有的UI for WinForms控件都具有完整的主题支持,可以轻松地帮助开发人员在桌面和平板电脑应用程序提供一致美观的下一代用户体验。 更多资源请查看【 全方位解析Telerik平台 】【 Silverlight Telerik控件学习之GridView双向绑定 】【 如何在运行时修改Telerik控件的主题 】 【 Telerik UI for WinForms R2 2019免费下载 】 具体更新内容如下: 新增: File Dialogs – 打开文件对话框、保存文件对话框和打开文件夹对话框这些都完全可用,可在整个应用程序中提供一直的外观 简化的Ribbon – RadRibbonBar中的简化布局允许更紧凑的外观和UX,它将动态调整大小 RadDomainUpDown – 文本框和一对向上和向下箭头按钮的组合,用于浏览预定义的项目列表 RadFormConverter现在公开在表单的智能标记内,允许在MS和RadForms之间轻松转换。 实现了面向.NET Core的Visual Studio模板 当网格中没有行时,应显示新的行消息。 添加了新属性:radGridView1.MasterTemplate.SelectNewRowAsCurrent

把 Spring Cloud 给拆了!详解每个组件的作用,值得收藏!

笑着哭i 提交于 2020-12-23 19:05:30
目录 Eureka Ribbon和Feign Zuul Hystrix Config 总结如下 我们先认识一下SpringCloud的各个组件,然后知其所以然。 原理讲解前,先看一个最经典的业务场景,如开发一个电商网站,要实现支付订单的功能,流程如下: 创建一个订单之后,如果用户立刻支付了这个订单,我们需要将订单状态更新为“已支付” 扣减相应的商品库存 通知仓储中心,进行发货 给用户的这次购物增加相应的积分 如上,微服务的应用场景和核心竞争力: 降低耦合:每一个微服务专注于单一功能,并通过定义良好的接口清晰表述服务边界。由于体积小、复杂度低,每个微服务可由一个小规模开发团队完全掌控,易于保持高可维护性和开发效率。 独立部署:由于微服务具备独立的运行进程,所以每个微服务也可以独立部署。当某个微服务发生变更时无需编译、部署整个应用。由微服务组成的应用相当于具备一系列可并行的发布流程,使得发布更加高效,同时降低对生产环境所造成的风险,最终缩短应用交付周期。 选型灵活:微服务架构下,技术选型是去中心化的。每个团队可以根据自身服务的需求和行业发展的现状,自由选择最适合的技术栈。由于每个微服务相对简单,故需要对技术栈进行升级时所面临的风险就较低,甚至完全重构一个微服务也是可行的。 容错机制:当某一组建发生故障时,在单一进程的传统架构下,故障很有可能在进程内扩散,形成应用全局性的不可用