首页 文章 精选 留言 我的

精选列表

搜索[api网关],共10000篇文章
优秀的个人博客,低调大师

网关zuul时,熔断hytrix里面的坑

1,zuul 默认的隔离级别是信号量,默认最大隔离信号量是100 信号量隔离和线程池隔离的区别如下: https://my.oschina.net/u/867417/blog/2120713 默认设置: 2,zuul里隔离是按服务隔离的,也就是1个服务1个信号量,非接口级别的 所以得注意zuul服务本身的线程池大小,后端服务的线程池大小,以及隔离信号量或线程池的线程池大小,防止1个线程被占用光 3,在zuul里,重新封装了hytrix的一些配置名称,导致hytrix的一些原生配置会失效 具体设置hytrix参数的setter如下: 需要通过zuulProperties重新设置的属性如下: 隔离级别指定:zuul.ribbonIsolationStrategy: SEMAPHORE 信号隔离的默认隔离大小:semaphore.maxSemaphores = 20 指定服务的信号隔离级别大小:zuul.eureka.serviceId.semaphore.maxSemaphores = 20 而原生的hytrix.command.default.execution.isolation.strategy和maxConcurrentRequests的配置将失效,会被这3个覆盖 4,如果用的是信号量隔离级别,那么hytrix的超时将会失效 当使用线程池隔离时,因为多了一层线程池,而且是用的RXJava实现,故可以直接支持hytrix的超时调用 如果使用的是信号量隔离,那么hytrix的超时将会失效,但是ribbon或者socket本身的超时机制依然是有效果的,而且超时后会释放掉信号 5,但如果是信号量隔离,依然得注意hytrix设置的超时时间,因为它涉及到信号量的释放 先看看hytrix信号量的实现: 信号量的设置在AbstractCommand里: 用了个ConcurrentHashMap<String, TryableSemaphore> 去保存个计数器的设置,key对应的是commandKey, TryableSemaphore(TryableSemaphoreActual)对应计数器实现,用java的AtomicInter实现,tryAcquire()时,进行原子加incrementAndGet,如果大于设置的maxConcurrentRequests,则进行阻塞 返回fallBack; 执行完后,释放也很简单。原子减去,decrementAndGet。这样看来,信号量就是一个计数器。 那么为什么说和超时有关呢,因为超时时,即使访问线程还在阻塞,也会把当前信号量释放。(怎么做的,因为hytrix超时(此时访问线程并未超时)的后续处理部分是由RxJava控制,不是依靠访问线程的超时) 这句会造成,如果你配置了超时1s,如: hystrix.command.default.execution.timeout.enabled=true hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=1000 那么你的信号量生效将是1s内,也就是说,过了1s,不管你socket是否超时,hytrix都会释放掉信号量 6,在zuul里,线程池隔离情况下,是异步访问的,而不是异步 这一点在上篇有说到, 调用的是hytrix command的excute方法,hytrix的官网原文说明如下: execute()— blocks, then returns the single response received from the dependency (or throws an exception in case of an error) execute是一个阻塞方法,也就是说,如果不合理的设置线程池的大小,和超时时间,还是有可能把zuul的线程消耗完。从而失去对服务的保护作用 总结: zuul的复杂度很大程度因为集成了hytrix, ribbon,导致设置超时,线程,隔离都有一定的复杂度,本身文档确没那么清楚。 很多地方还是需要debug分析源码才能避免踩坑。 公众号: 何锦彬 2018.09.25

优秀的个人博客,低调大师

怎样用Sniffer监听网关数据包

在交换以太网的环境下,一般两台工作站之间的通讯是不会被第三者侦听到的。在某些情况下,我们可能会需要进行这样的侦听,如:协议分析、流量分析、入侵检测。为此我们可以设置Cisco交换机的SPAN (Switched Port Analyzer交换端口分析器)特性, 或早期的“端口镜像”、“监控端口”功能。 侦听的对象可以是一个或多个交换机端口,或者整个VLAN。如果要侦听的端口(“源端口”)或VLAN和连接监控工作站的端口(“目标端口”)在同一台交换机上,我们只需配置SPAN; 如果不在同一台交换机上,需要配置RSPAN (Remote SPAN)。不同的交换机对SPAN有不同的限制,如2900XL交换机中源端口和目标端口必须在同一VLAN、某些交换机不支持RSPAN等等,详见设备文档。 在配置SPAN的时候,我们需要提供的参数是源端口或VLAN号以及目标端口。 4000/6000 CatOS 交换机: set span 6/17 6/19 //SPAN:源端口为6/17 目标端口为6/19 2950/3550/4000IOS/6000IOS 交换机: monitor session 1 local //SPAN monitor session 1 source interface fastethernet 0/17 both //源端口,也可以是某个VLAN monitor session 1 destination interface fastethernet 0/19 //目标端口 2900/3500XL 交换机: interface fastethernet 0/19 //目标端口 port monitor fastethernet 0/17 //源端口 1900 交换机: (或使用菜单 [M] Monitoring) monitor-port monitored 0/17 //源端口(0/17和0/18端口) monitor-port monitored 0/18 monitor-port port 0/19 //目标端口 monitor-port //开始监控 在配置RSPAN的时候,我们首先要定义一个类型为RSPAN的VLAN。在普通VLAN上如果源主机和目标主机都在同一台交换机上,则它们之间的单播通讯不需要通过TRUNK传递到别的交换机,而RSPAN VLAN需要在TRUNK上转发这样的通讯,以保证监控机能够侦听到。在源交换机上,需设置使被侦听的端口或VLAN把流量转发到RSPAN VLAN上(如果是运行IOS的交换机,需要另外设置一个端口作为反射端口); 在目标交换机上,需设置把RSPAN VLAN中的信息转发到连接监控主机的目标端口。 IOS交换机,如3550: 3550(config)#vlan 900 //建立RSPAN VLAN 3550(config-vlan)#remote-span monitor session 1 remote //源交换机 monitor session 1 source interface fastethernet 0/17 both //源端口 monitor session 1 destination remote vlan 900 reflector-port fastethernet 0/20 //目标RSPAN VLAN,反射端口 monitor session 2 remote //目标交换机 monitor session 2 source remote vlan 900 //RSPAN VLAN monitor session 2 destination interface fastethernet 0/19 //目标端口 CatOS 交换机,如6500: set vlan 900 rspan //建立RSPAN VLAN set rspan source 4/1-2 900 //源交换机 set rspan destination 4/19 900 //目标交换机 最近一次配置完RSPAN之后,有用户反映:部分网段出现严重丢包现象。仔细检查,发现部分交换机的上联端口负载很重。再分析,原来在两台中心交换机上启用了一个RSPAN进程,RSPAN VLAN上的流量很大,达300M。由于VTP 域中没有启用Pruning 功能,这个RSPAN VLAN的流量出现在所有的TRUNK上,造成了阻塞。把RSPAN VLAN从这些TRUNK上修剪掉之后,网络恢复了正常。 SPAN功能的出现,使保护交换机不被非法控制变得更为重要。因为假如黑客控制了一台主机和部分交换机,他将能够使用SPAN/RSPAN和Sniffer窃听任何在网络上传递的信息。 本文转自loveme2351CTO博客,原文链接:http://blog.51cto.com/loveme23/8010,如需转载请自行联系原作者

优秀的个人博客,低调大师

大数据扮演物联网关键角色

现今已有不少人察觉,万物联网的时代,其实主角并不是物体本身,真正的价值在于万物背后的大数据。每个企业也都深知大数据对于商业发展的重要性,但是分析什么、如何分析却各有说法,分不出高下,这块大饼人人都想抢食,但抢到了却往往不知该如何下咽。 技术不是问题 服务才是核心 我们高喊物联网的口号已经许久,也深知未来大数据分析将会带来一波新的产业革命,各行各业现今都在大肆谈论大数据分析的无限可能,但为了大数据而搞大数据,却成了许多企业现在面临的问题,眼见对手做什么就跟着做,总是一窝蜂跟上潮流,但能不能在激浪之中站稳却不见得。 技术是死的,应用却是活的,重点是你的大数据分析能提供什么样的服务?你想透过数据数据解决什么样的问题?PTC资深经理汪崇真认为,“大数据分析用一种更客观的方式预测未来,用数据说话是它最迷人也是最困难的地方。”它的价值并非单靠技术来衡量,与其竞争技术的高低,针对客户需求提供适合、方便且易于使用的服务反而更为重要。 假设将产品应用与工厂制造端区分,厂内虽有其专业性存在,进入门坎也不低,但目的多半是为了要求让制造生产的过程更加精准、提升效能,也可以说在活用上比较刻板。但针对产品应用提供相应的服务相对却更难,且以商业领域来说,消费者口味日新月异,要如何运用大数据分析消费者行为模式存在一定难度,须运用得巧妙,而在消费者求新求变的情况下,实时(Real-time)的数据分析也将变得极为重要。 整合是物联网必要关键 物联网的应用千奇百怪,每一个服务背后可能涵盖多项技术,基本如通讯、感测等,这也让企业往往在开发过程中面临复杂化的问题,就算是大数据分析,前提上也需要各方面信息的整合。对此汪崇真也表示,物联网的决胜点其实并非技术高低,而是如何串联整合才是最大的亮点,不只包括关键技术上的“软硬整合”,更涵盖应用领域的“异业整合”。 汪崇真认为,物联网的世界其实说穿了就是一个整合的世界,过去网络时代是应用程序之间的互相沟通,现今则是强调物与物之间的沟通,因此,如何快速传递物与物之间的讯息,扮演中间桥梁的平台就成了一大关键。 获得两大产业分析公司评选为物联网领导厂商的PTC,在物联网技术的整合上,最大的特色是提供了All in one的解决方案。此方式将有利客户在建构产品时避免将过程复杂化。汪崇真进一步解释,PTC之下的ThingWorx物联网技术平台透过策略性并购整合多项物联网技术,用类似于积木堆栈的方式,将各种开发物联网所需的技术一层一层兜起来,与过去技术各自独立相比, PTC借此替开发者省去了不少时间。 工业物联网的另一大挑战 物联网时代来临,工业领域也开始整合各项技术而掀起新一波工业革命。但事实上,大数据分析应用在工业与商业上却有很明显的不同,由于各行各业皆有其不可取代的特色与专业性存在,“差异化”是工业领域较之商业领域最大的不同,也是最困难的地方。 掌握各行业数据分析共通性 如同上述所说,各行各业的专业性对于数据分析来说,需要长时间大量研究与分析产业各种信息,切入市场并不容易,致力于工业自动化发展的泓格科技生产管理处厂长陈裕霖对此表示,掌握大数据分析的共通性是一项重要的关键。当企业在考虑采用工业物联网链接工业大数据分析的时候,最好的方法是找到一个各行业皆适合的应用作为入口。 举例来说,泓格科技提供许多关于能源数据的分析,从中观察发现,不管何种产业几乎都需要对能源进行有效的管理与控制,因为耗能问题关乎成本的节省,也是企业营运的根本,尤其在物联网时代十分重视节能问题,因此,如何提升能源效率俨然成为各行业最基本的大数据分析,也是在物联网时代中一项重要的基础。 分布式架构让数据精准推送 根据统计,到了2020年,将会有超过500亿个装置透过数字方式连接在一起,而其中很大一部分会出现在工业物联网。无数具有感测与监控能力的数据收集器相互连接产生数据信息,通过各种智能分析为工业制造生产提供极具价值的洞察,并提高效率与生产效益,但这过程却会衍生海量的数据数据,对后端数据库的分析容易不堪负荷。 为了避免这样的状况,分布式架构在这过程中扮演了重要角色,也是未来其中一项核心技术。陈裕霖进一步说明,分布式架构让每个节点都具备一个简单的“大脑”,透过订阅机制将采集到的数据数据针对各端需求或云端平台进行精准式的推送,也就是当后端需要数据时才进行传输,这样的方式可避免海量数据当中不必要的“垃圾”全部送到后端造成负荷。在未来工业大数据分析上,此架构将有助于上百亿个传感器数据进行更有效率的处理。 本文转自d1net(转载)

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册