InfraPub 为您找到相关结果 409

一位五年工作经验架构师的感悟

然现在的公司对我们还是很不错)。 钱,对于我而言,就是想买个安心。我用它来让父母对我的未来安心;让妻子对于未来充满信心(虽然她现在还不算很安心);让整个家庭有一定的风险抵抗能力。 安心以后,就是上路。 我记得第一段工作,是在恒生。我当时在恒生银行事业部,工作一年后,我发现自己进步很慢,在技术体系没有任何进展,公司的技术体系很旧,而且基本不进化。我自己做了一个技术的演进,使用了一种新的方式提升了平台的整体能力(当年还没有平台能力这些体系思路)。然后还期待年底被表彰下,技术人也是虚荣的,呵呵,就是期望可以带来成就感。 做着做着,发现没有人可以帮助我提升,虽然当时我很弱,我的学**思路也不清晰。平时就是逛逛网站,学**的很肤浅。但是,我内心感到:如果要是这样待下去,肯定废了,几年之后,还是同样的...阅读全文

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

协议介绍之深入了解 gRPC

streams,多个 streams 发送的数据互相不影响。 Stream 可以被 client 和 server 单方面或者共享使用。 Stream 可以被任意一段关闭。 Stream 会确定好发送 frame 的顺序,另一端会按照接到的顺序来处理。 Stream 用一个唯一 ID 来标识。 这里在说一下 Stream ID,如果是 client 创建的 stream,ID 就是奇数,如果是 server 创建的,ID 就是偶数。ID 0x00 和 0x01 都有特定的使用场景。 Stream ID 不可能被重复使用,如果一条连接上面 ID 分配完了,client 会新建一条连接。而 server 则会给 client 发送一个 GOAWAY frame 强制让 client 新建一条连接。 为了更...阅读全文

博文 2017-06-22 11:08:48 debian.cn

RabbitMQ 高可用实现镜像队列

slave,并且Basic.Consume消费时指定了x-cancel-on-ha-failover参数,那么客户端会到一个Consumer Cancellation Notification通知。如果未指定x-cancal-on-ha-failover参数,那么消费者就无法感知master宕机,会一直等待下去。 这就告诉我们,集群中存在镜像队列时,重新master节点有风险。镜像队列中节点启动顺序,非常有讲究: 假设集群中包含两个节点,一般生产环境会部署三个节点,但为了方便说明,采用两个节点的形式进行说明。 场景1:A先停,B后停 该场景下B是master,只要先启动B,再启动A即可。或者先启动A,再在30s之内启动B即可恢复镜像队列。(如果没有在30s内回复B,那么A自己就停掉自己) 场景2...阅读全文

博文 2018-12-30 19:21:59 debian.cn

如何写好技术文档 — 来自十多年的文档经验总结

以很多情况下工程师最容易忽视。而且还有另外一个问题,没合适的地方放,参考文档可以写代码里,落地页可以写项目主页里,概念性文档似乎也只能在项目文档里找个不起眼的角落存放了。 这类文档的众会比较广,专家和新手都会去看。另外,它需要强调概念清晰明了,因此可能会牺牲完整性(可以由参考文档补齐),也有可能会牺牲准确性,这不是说一定要牺牲准确性,只是应当分清主次,不重要的就没必要说了。 ## Landing pages(落地页) ## Landing pages就先简单翻译成落地页了,没想到啥恰当的翻译词。比如一个团队或者项目的导航页,虽然没啥具体的内容,但应该包含其他页面的链接。 比如你新入职一个团队,比较成熟的团队都会扔给你一个文档,这个文档里包含常用的工具、文档链接,这就是这个团队的落地页。 落...阅读全文

博文 2021-07-30 16:15:13 joseph

Gitlab CI 配置文件 .gitlab

/$CI_COMMIT_REF_NAME url: https://$CI_ENVIRONMENT_SLUG.example.com/ 当$CI_COMMIT_REF_NAME 被Runner设置为environment variable时,deply as review appjob将会被指定部署到动态创建revuew/$CI_COMMIT_REF_NAME的环境中。$CI_ENVIRONMENT_SLUG变量是基于环境名称的,最终组合成完整的URLs。在这种情况下,如果deploy as review appjob是运行在名称为pow的分支下,那么可以通过URLhttps"//review-pw.example.com/来访问这个环境。 这当然意味着托管应用程序的底层服务器已经正确配置。 常见的做法是为分支创建动态环境,并讲...阅读全文

博文 2018-12-12 21:01:19 ci.yaml 详解(上)

Kubernetes源码探疑:Pod IP泄露排查及解决方法

对于云主机与云主机之间,只有轻微差异(小包场景下,pps 会有 3~5% 损耗),而且Pod网络性能各项指标(吞吐量,包量,延迟等)不会随着节点规模增大而削减。而Flannel UDP,VXLan模式和Calico IPIP的模式存在明显的性能消耗。Pod能直通公有云和物理云。对于使用公有云和物理云的用户而言,业务上K8S少了一层障碍,多了一份便利。而Flannel的host gw模式下,容器无法访问公有云和物理云主机。 而CNI的工作流程如下所示。 创建Pod网络过程: 删除Pod网络过程: Pod IP 消失问题的排查与解决 为了测试CNI插件的稳定性,测试同学在UK8S上部署了一个CronJob,每分钟运行一个Job任务,一天要运行1440个任务。该CronJob定义如下...阅读全文

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

这些服务进行交互,这是另一个优势,它可以自动生成需要的所有类。这个生成的代码负责消息建模,并提供一个存根类,其中包含与您的服务端点相关的重复方法调用。 支持多种语言,包括C ++,Java,Python,Go,Ruby,C#,Node,Android,Objective-C和PHP。但是,使用protobuf文件维护和同步生成的代码是个问题。我们已经能够通过使用Protobuf文件自动生成客户端库来解决这个问题,会在即将发布的下一篇博客文章中分享更多的内容。 gRPC最好的特性之一是支持中间件模式,被称为拦截器。它允许扩展所有的gRPC实现(这对企业来说很重要),能够轻松访问所有请求,从而实现自己的微服务最佳实践。gRPC还内置了对一系列认证机制的支持,包括SSL / TLS。 gRPC社区...阅读全文

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

得物云原生全链路追踪Trace2.0-采集篇 - OSCHINA

的调用链路通常复杂多变,站在流量角度上看,需要完整地知道它的来源,上下游链路,异步调用等等,这对于 CAT 来说可能略显超纲。 缺少图表定制化能力: CAT 虽供多维度报表分析,但定制化能力非常有限,在当时,业内的图表组件定制化解决方案逐步向 Grafana + Prometheus 靠拢,但若使用 CAT,则无法享强大的图表绘制能力。与此同时,随着云原生社区可观测性项目 OpenTracing 的崛起,大约不到半年时间我们逐步下线了 CAT,向 OpenTracing 生态演进。 三、 0x02 第二阶段 持续创造 基于OpenTracing全链路采样监控 OpenTracing 为全链路追踪 Trace 定制了完整的一套协议标准,本身并不提供实现细节。在 OpenTracing 协议中...阅读全文

博文 2022-12-10 06:50:41 中文开源技术交流社区

六大算法之三:动态规划【转载】

->A4};……; {A1,A2,...,Ai}->Ai+1. 这种方式就是第二数学归纳法。对于Ai+1需要前面的所有前序状态才能完成推理过程。我们将这一模型称为高阶马尔科夫模型。对应的推理过程叫做“动态规划法”。 上述两种状态转移图如下图所示: 能用动规解决的问题的特点 能采用动态规划求解的问题的一般要具有3个性质: (1) 最优化原理:如果问题的最优解所包含的子问题的解也是最优的,就称该问题具有最优子结构,即满足最优化原理。 (2) 无后效性:即某阶段状态一旦确定,就不这个状态以后决策的影响。也就是说,某状态以后的过程不会影响以前的状态,只与当前状态有关。 (3)有重叠子问题:即子问题之间是不独立的,一个子问题在下一阶段决策中可能被多次使用到。(该性质并不是动态规划适用的必要条件,但是如果没...阅读全文

博文 2021-07-31 07:18:53 CSDN博客