InfraPub 为您找到相关结果 156

王垠:如何掌握所有的程序语言

面向对象系统。用 Scheme 实现的面向对象系统,跟 Java,C++,Python 之类的语言语法相去甚远,然而它却能帮助你理解任何这些 OOP 语言里面的“面向对象”这一概念,它甚至能帮助你理解各种面向对象实现的差异。 这种效果是你直接学习 OOP 语言得不到的,因为在学习 Java,C++,Python 之类语言的时候,你只是一个用户,而用 Scheme 自己动手实现了 OO 系统之后,你成为了一个创造者。 类似的特性还包括类型推导,类型查,惰性求值,如此等等。我实现过几乎所有的语言特性,所以任何语言在我的面前,都是可以被任意拆卸组装的玩具,而不再是凌驾于我之上的神圣。 总结 写了这么多,重要的话重复三遍:语言特性,语言特性,语言特性,语言特性!不管是初学者还是资深程序员,应该专注...阅读全文

博文 2017-07-10 10:13:17 debian.cn

7大维度看国外企业为啥选择gRPC打造高性能微服务

动收集指标和跟踪信息可以快速回答常见问题,例如“我的服务对请求响应缓慢吗?”以及“请求失败的频率如何?”。 熔断 - 这种模式可以通过自动测问题和快速失败来防止级联服务故障。也可以由长时间缓慢的请求来触发,以提供响应降级的服务而不是不断地超时。 缓存和批处理 - 通过使用缓存或批处理请求来加速请求。 大多数框架不会提供所有功能,但至少它们应该是可扩展的,以便在需要时添加。 什么是gRPC和协议缓冲区? 没有一个框架是万能的。我们探索的一些选项包括Facebook的Thrift,Apache Hadoop的Avro,Twitter的Finagle,甚至使用JSON模式。 我们的需求更接近于远程程序调用(RPC),给予所需要的细粒度控制。使用RPC的另一个吸引力是使用接口描述语言或IDL...阅读全文

博文 2018-03-19 17:51:32 debian.cn

Web前端知识体系精简

程会形成一个全局执行环境,执行环境采用栈的方式将待执行任务按顺序依次来执行。 但在浏览器中有一些任务是非常耗时的,比如http请求、定时器、事件回调等,为了保证其他任务的执行效率不被影响,JS在执行环境中维护了一个异步队列(也叫工作线程),并将这些任务放入队列中进行等待,这些任务的执行时机并不确定,只有当主线程的任务执行完成以后,才会去查异步队列中的任务是否需要开始执行。这就是为什么setTimeout(fn,0) 始终要等到最后执行的原因。关于单线程和异步队列问题请参考:setTimeout(0) 7、异步通讯 Ajax技术 Ajax是浏览器专门用来和服务器进行交互的异步通讯技术,其核心对象是XMLHttpRequest,通过该对象可以创建一个Ajax请求。为了防止XSS攻击,浏览器对...阅读全文

博文 2021-01-28 17:50:33 debian.cn

Apollo 配置中心简单介绍

Boot的ConfigurationProperties,方便应用使用(需要Spring 3.1.1+)同时提供了Http接口,非Java和.Net应用也可以方便的使用提供开放平台API Apollo自身提供了比较完善的统一配置管理界面,支持多环境、多数据中心配置管理、权限、流程治理等特性。不过Apollo出于通用性考虑,对配置的修改不会做过多限制,只要符合基本的格式就能够保存。在我们的调研中发现,对于有些使用方,它们的配置可能会有比较复杂的格式,而且对输入的值也需要进行校验后方可保存,如查数据库、用户名和密码是否匹配。对于这类应用,Apollo支持应用方通过开放接口在Apollo进行配置的修改和发布,并且具备完善的授权和权限控制部署简单 配置中心作为基础服务,可用性要求非常高,这就要求...阅读全文

博文 2021-04-09 17:53:51 CSDN

Kafka 3.0新特性全面曝光,真香!

存在本地的日志,大概就是类似于这个样子:上图显示,共有八条日志数据,其中已经提交了7条,提交的日志都将通过状态机持久化到本地磁盘当中,防止宕机。日志复制的保证机制如果两个节点不同的日志文件当中存储着相同的索引和任期号,那么他们所存储的命令是相同的。(原因:leader最多在一个任期里的一个日志索引位置创建一条日志条目,日志条目所在的日志位置从来不会改变)。如果不同日志中两个条目有着相同的索引和任期号,那么他们之前的所有条目都是一样的(原因:每次RPC发送附加日志时,leader会把这条日志前面的日志下标和任期号一起发送给follower,如果follower发现和自己的日志不匹配,那么就拒绝接受这条日志,这个称之为一致性查)日志的不正常情况一般情况下,Leader和Followers的日志...阅读全文

博文 2022-04-28 16:02:11 mp.weixin.qq.com

HTTP状态码详解

择。但是,规范中并没有定义任何作出此类自动选择的标准。 407 与401响应类似,只不过客户端必须在代理服务器上进行身份验证。代理服务器必须返回一个 Proxy-Authenticate 用以进行身份询问。客户端可以返回一个 Proxy-Authorization 信息头用以验证。参见RFC 2617。 408 请求超时。客户端没有在服务器预备等待的时间内完成一个请求的发送。客户端可以随时再次提交这一请求而无需进行任何更改。 409 由于和被请求的资源的当前状态之间存在冲突,请求无法完成。这个代码只允许用在这样的情况下才能被使用:用户被认为能够解决冲突,并且会重新提交新的请求。该响应应当包含足够的信息以便用户发现冲突的源头。 冲突通常发生于对 PUT 请求的处理中。例如,在采用版本查的环境...阅读全文

博文 2021-01-28 17:50:11 debian.cn