<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[cbmljs的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/cbmljs</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; cbmljs]]></copyright><item><title><![CDATA[K8S 性能优化 - K8S APIServer 调优]]></title><link>https://blog.youkuaiyun.com/cbmljs/article/details/131592942</link><guid>https://blog.youkuaiyun.com/cbmljs/article/details/131592942</guid><author>cbmljs</author><pubDate>Fri, 07 Jul 2023 11:14:41 +0800</pubDate><description><![CDATA[-watch-cache-sizes: 系统根据环境启发式的设定；用于 pods/nodes/endpoints 等核心资源，其他资源参考 default-watch-cache-size 的设定；--max-mutating-requests-inflight: 默认值 200；建议 800 或更高；--delete-collection-workers：默认值 1；--default-watch-cache-size：默认值 100；--max-requests-inflight: 默认值 400；]]></description><category></category></item><item><title><![CDATA[IDEA的debug调试技巧详解]]></title><link>https://blog.youkuaiyun.com/cbmljs/article/details/130103273</link><guid>https://blog.youkuaiyun.com/cbmljs/article/details/130103273</guid><author>cbmljs</author><pubDate>Wed, 12 Apr 2023 11:42:31 +0800</pubDate><description><![CDATA[debug调试也叫断点调试在程序的某一行打上断点，则在debug模式下运行到断点位置时会暂停，便于程序员观察代码的执行情况学会debug，有助于在程序运行未达到理想情况时，对程序的各个流程进行分析本文只详细描述了debug的一些基本的常用操作，如果有缺漏欢迎评论区留言~]]></description><category></category></item><item><title><![CDATA[MySQL的MVCC实现原理]]></title><link>https://blog.youkuaiyun.com/cbmljs/article/details/129798577</link><guid>https://blog.youkuaiyun.com/cbmljs/article/details/129798577</guid><author>cbmljs</author><pubDate>Mon, 27 Mar 2023 16:53:13 +0800</pubDate><description><![CDATA[MVCC全称是Multi-Version Concurrency Control（多版本并发控制），是一种并发控制的方法，通过维护一个数据的多个版本，减少读写操作的冲突。如果没有MVCC，想要实现同一条数据的并发读写，还要保证数据的安全性，就需要操作数据的时候加读锁和写锁，这样就降低了数据库的并发性能。有了MVCC，就相当于把同一份数据生成了多个版本，在操作的开始各生成一个快照，读写操作互不影响。无需加锁，也实现数据的安全性和事务的隔离性。事务的四大特性中隔离性就是基于MVCC实现的。]]></description><category></category></item><item><title><![CDATA[Mysql-详解脏读、不可重复读、幻读]]></title><link>https://blog.youkuaiyun.com/cbmljs/article/details/129797857</link><guid>https://blog.youkuaiyun.com/cbmljs/article/details/129797857</guid><author>cbmljs</author><pubDate>Mon, 27 Mar 2023 16:21:21 +0800</pubDate><description><![CDATA[Mysql有四种事务隔离级别，这四种隔离级别代表当存在多个事务并发冲突时，可能出现的脏读、不可重复读、幻读的问题。]]></description><category></category></item><item><title><![CDATA[MySQL-如何分库分表？一看就懂]]></title><link>https://blog.youkuaiyun.com/cbmljs/article/details/129713612</link><guid>https://blog.youkuaiyun.com/cbmljs/article/details/129713612</guid><author>cbmljs</author><pubDate>Wed, 22 Mar 2023 16:46:39 +0800</pubDate><description><![CDATA[分库分表方案是对关系型数据库数据存储和访问机制的一种补充。分库：将一个库的数据拆分到多个相同的库中，访问的时候访问一个库分表：把一个表的数据放到多个表中，操作对应的某个表就行。]]></description><category></category></item><item><title><![CDATA[阅读 Go 源码，你需要了解这几个编译器指示]]></title><link>https://blog.youkuaiyun.com/cbmljs/article/details/128930920</link><guid>https://blog.youkuaiyun.com/cbmljs/article/details/128930920</guid><author>cbmljs</author><pubDate>Wed, 08 Feb 2023 10:21:39 +0800</pubDate><description><![CDATA[编译器接受注释形式的指示。比如我们常见的//go:xxx的形式出现在方法前面上方。为了将其与非指示注释区分开，编译器指示要求在注释开头和指示名称之间不需要空格。但是由于它们是注释，故而不了解指示约定或特定指示的工具可以像其他注释一样跳过指示。以// line或/ * line开头的行指示行指示有如下几种形式：为了被识别为行指示，注释必须以// line或/ * line开头，后跟一个空格，并且必须至少包含一个冒号。]]></description><category></category></item><item><title><![CDATA[Golang学习:生成文档和示例代码]]></title><link>https://blog.youkuaiyun.com/cbmljs/article/details/128904590</link><guid>https://blog.youkuaiyun.com/cbmljs/article/details/128904590</guid><author>cbmljs</author><pubDate>Mon, 06 Feb 2023 16:54:47 +0800</pubDate><description><![CDATA[类似与javadoc，go也可以自动生成doc文档。我们主要使用到的是godoc命令。]]></description><category></category></item><item><title><![CDATA[为高效 Ops 和 SRE 团队准备的 10 个开源 k8s 工具]]></title><link>https://blog.youkuaiyun.com/cbmljs/article/details/128819585</link><guid>https://blog.youkuaiyun.com/cbmljs/article/details/128819585</guid><author>cbmljs</author><pubDate>Tue, 31 Jan 2023 16:26:57 +0800</pubDate><description><![CDATA[日志查看器你可以基于标准的标签选择器匹配，通过名字，通过服务，通过部署，等等。除了拓扑视图，Weave Scope也提供了一个深入视图，比如节点和进程之间的任何事情，包括部署，服务，副本集，pods 和容器。Kube-ops-view为多个Kubernetes集群提供了一个通用的操作视图，对于SRE和Ops团队来说这是一个方便的工具，Kube-ops-view提供只读的系统仪表。它为你的应用自动的构建逻辑拓扑以及基础设施，以便你的SRE和Ops团队可以直观的明白，监控，控制你的容器，基于应用的微服务。]]></description><category></category></item><item><title><![CDATA[Go gcflags/ldflags 的说明]]></title><link>https://blog.youkuaiyun.com/cbmljs/article/details/128708627</link><guid>https://blog.youkuaiyun.com/cbmljs/article/details/128708627</guid><author>cbmljs</author><pubDate>Mon, 16 Jan 2023 19:54:38 +0800</pubDate><description><![CDATA[通常一起使用，用来减少可执行文件的体积。但删除了调试信息后，可执行文件将无法使用 gdb/dlv 调试。arg list 是空格分割的编译选项，如果编译选项中含有空格，可以使用引号包起来。调试，因为找不到代码的符号信息。go build 时可以使用。更多的模式的说明请参考。运行的进程，也无法用。]]></description><category></category></item><item><title><![CDATA[Go 函数调用 ━ 栈和寄存器视角]]></title><link>https://blog.youkuaiyun.com/cbmljs/article/details/128579235</link><guid>https://blog.youkuaiyun.com/cbmljs/article/details/128579235</guid><author>cbmljs</author><pubDate>Fri, 06 Jan 2023 15:08:09 +0800</pubDate><description><![CDATA[Go 语言完全使用栈来传递参数和返回值并由调用者负责清栈,通过栈传递返回值使得Go函数能支持多返回值,调用者清栈则可以实现可变参数的函数.Go 使用值传递的模式传递参数,因此传递数组和结构体时,应该尽量使用指针作为参数来避免大量数据拷贝从而提升性能.Go 方法调用的时候是将接收者作为参数传递给了callee,接收者分值接收者和指针接收者.]]></description><category></category></item><item><title><![CDATA[深入 Go 语言 defer 实现原理]]></title><link>https://blog.youkuaiyun.com/cbmljs/article/details/128569676</link><guid>https://blog.youkuaiyun.com/cbmljs/article/details/128569676</guid><author>cbmljs</author><pubDate>Thu, 05 Jan 2023 20:23:36 +0800</pubDate><description><![CDATA[GO栈帧，汇编]]></description><category></category></item><item><title><![CDATA[interface接口--GO面向对象编程思想]]></title><link>https://blog.youkuaiyun.com/cbmljs/article/details/128549588</link><guid>https://blog.youkuaiyun.com/cbmljs/article/details/128549588</guid><author>cbmljs</author><pubDate>Thu, 05 Jan 2023 10:15:31 +0800</pubDate><description><![CDATA[go interface面向对象思想]]></description><category></category></item><item><title><![CDATA[k8s部署fabric 2.4]]></title><link>https://blog.youkuaiyun.com/cbmljs/article/details/128286317</link><guid>https://blog.youkuaiyun.com/cbmljs/article/details/128286317</guid><author>cbmljs</author><pubDate>Mon, 12 Dec 2022 14:22:13 +0800</pubDate><description><![CDATA[k8s部署fabric 2.4]]></description><category></category></item><item><title><![CDATA[深入 net/http：看一下 http.RoundTripper]]></title><link>https://blog.youkuaiyun.com/cbmljs/article/details/128024732</link><guid>https://blog.youkuaiyun.com/cbmljs/article/details/128024732</guid><author>cbmljs</author><pubDate>Thu, 24 Nov 2022 19:15:30 +0800</pubDate><description><![CDATA[Github 的 api 的某些部分需要对请求进行身份验证，有些则不需要。默认情况下，该库不处理身份验证，它使用默认的 HTTP 客户端，如果您需要能够访问 api 的经过身份验证的部分，您可以携带自己的 HTTP 客户端，例如。中总是相同的，并且考虑到 API 调用是有速率限制的，并且由于您的应用程序的高使用率，您几乎总是达到/超过限制。. 我们将创建一个只响应一个路由的服务器，然后创建一个连接到该服务器的客户端包。另一件需要注意的事情是，无论我们是否访问服务器，响应的主体都会保持不变。]]></description><category></category></item><item><title><![CDATA[fission使用指南]]></title><link>https://blog.youkuaiyun.com/cbmljs/article/details/127808804</link><guid>https://blog.youkuaiyun.com/cbmljs/article/details/127808804</guid><author>cbmljs</author><pubDate>Fri, 11 Nov 2022 16:43:27 +0800</pubDate><description><![CDATA[Fission 是由私有云服务提供商Platform9领导开源的 serverless 产品，它借助 kubernetes 灵活强大的编排能力完成容器的管理调度工作，而将重心投入到 FaaS 功能的开发上，其发展目标是成为 AWS lambda 的开源替代品。从 CNCF 视角，fission 属于 serverless 平台型产品。]]></description><category></category></item><item><title><![CDATA[fission源码分析--fission调用http请求流程分析]]></title><link>https://blog.youkuaiyun.com/cbmljs/article/details/127803286</link><guid>https://blog.youkuaiyun.com/cbmljs/article/details/127803286</guid><author>cbmljs</author><pubDate>Fri, 11 Nov 2022 14:28:32 +0800</pubDate><description><![CDATA[fission源码分析]]></description><category></category></item><item><title><![CDATA[UML建模--用例图]]></title><link>https://blog.youkuaiyun.com/cbmljs/article/details/127667011</link><guid>https://blog.youkuaiyun.com/cbmljs/article/details/127667011</guid><author>cbmljs</author><pubDate>Thu, 03 Nov 2022 11:36:42 +0800</pubDate><description><![CDATA[包含是用来把一个复杂的用例表示为一个功能分解的较小步骤，包含关系典型的应用就是复用，也就是定义中说的情景，但是有时候当某个用例的事件流太过于复杂时，我们也可以把一段事件流抽象成一个被包含的用例；条件性：泛化中的子用例和include中的被包含的用例会无条件发生，而extend中的延伸用例的发生是有条件的；另外一点需要提及的是：泛化中的子用例和扩展中的扩展用例均可以作为基本用例事件的备选择流而存在。对extend而言，延伸用例并不包含基础用例的内容，基础用例也不包含延伸用例的内容。]]></description><category></category></item><item><title><![CDATA[dapr源码分析--injector]]></title><link>https://blog.youkuaiyun.com/cbmljs/article/details/127575428</link><guid>https://blog.youkuaiyun.com/cbmljs/article/details/127575428</guid><author>cbmljs</author><pubDate>Fri, 28 Oct 2022 17:19:43 +0800</pubDate><description><![CDATA[在阅读dapr injector源码之前，需要知道k8s的动态准入控制原理，否则无法理解代码的功能。]]></description><category></category></item><item><title><![CDATA[关于dapr跨k8s集群服务调用的可行性方案]]></title><link>https://blog.youkuaiyun.com/cbmljs/article/details/127560282</link><guid>https://blog.youkuaiyun.com/cbmljs/article/details/127560282</guid><author>cbmljs</author><pubDate>Thu, 27 Oct 2022 20:37:57 +0800</pubDate><description><![CDATA[命名解析器提供了一种与不同命名解析器互动的通用方法，这些解析器用于返回你的应用程序可能要连接到的其他服务的地址或IP。兼容的名称解析器需要实现 nameresolution.go 文件中的 Resolver 接口。// Resolver是命名解析器的接口。}// ResolveRequest 表示服务发现解析器请求。}本文的思路只针对k8s环境，且要求多个集群ip互通，只支持dapr的服务调用，其他功能不支持。条件比较严格，思路未经实现仅供参考。]]></description><category></category></item><item><title><![CDATA[dapr源码分析--服务调用]]></title><link>https://blog.youkuaiyun.com/cbmljs/article/details/127559491</link><guid>https://blog.youkuaiyun.com/cbmljs/article/details/127559491</guid><author>cbmljs</author><pubDate>Thu, 27 Oct 2022 19:57:57 +0800</pubDate><description><![CDATA[Service Invocation 是 dapr 对外提供的最基础功能, 也就是服务间调用. 另外别的一些功能也会间接使用它.本文不会介绍功能如何使用, 相关资料请查看官方文档.官方文档给出来 Service Invocation 服务间调用的示意图, 已经是非常清晰了. 因为 dapr 是 sidecar 模式运行在业务 APP 旁边, 所以我们服务间调用也是通过 dapr 做的转发, dapr 也就是在这一步做了监控, 追踪, mTLS 等功能.]]></description><category></category></item></channel></rss>