C++ 17的variant和auto的尝试

std::variant 强类型语言的一个特定就是当要使用一个变量时,必须要确定该变量的类型,并且一旦声明后,就不可更改. 但是 C++17 中收录来自 Boost 库的 variant,它通过一系列复杂的模板,绕过了这个规则.当然,如果使用这个类型,性能会存在些微的损失: variant v, w; v = 12; int i = get(v); w = get(v); w = get(v); // same effect as the previous line w = v; // … “C++ 17的variant和auto的尝试”

Read More

安装 Istio 0.2.12

介绍 Istio 是 Service Mesh 的具体实现,它使用十分简单的方式为微服务构建一层网络.这层网络具有可控性,而运行在这层网络上的微服务并不需要做出任何改动,即可无缝使用. Istio主要由Envoy、Pilot、Mixer组成,各自的有特定的功能: Envoy: 以 sidecar 的形式和应用服务运行与同一个 pod 中,通过修改 iptables 来代理应用程序的所有出入流量 Pilot: 类似控制中心,根据设定的指令,控制所有 Envoy 的行为 Mixer: 从 Envoy 处获取流量属性, 根据预设的规则对流量进行处理 部署 curl -SL -O https://github.com/istio/istio/releases/download/0.2.12/istio-0.2.12-linux.tar.gz tar -zxf istio-0.2.12-linux.tar.gz cd istio-0.2.12 # … “安装 Istio 0.2.12”

Read More

理解 Service Mesh

现今有了 Kubernetes 这类微服务编排工具后,微服务这项架构引得越来越多的企业使用. 虽然微服务之间都是相互独立,可以做到互不影响,但是随着量级的增加,微服务的管理将会越加趋于复杂,于此之下衍生微服务的治理问题是亟待解决的. 关注 Kubernetes 的人可能发现在一些 Kubernetes 交流社区已经悄然兴起了一些微服务治理的手段和工具,而其中最常见的一个词应该是Service Mesh. 这个词的流行是来自 Linkerd 公司的工具 Linkerd ,这是 Service Mesh 技术的具体实现,当然也有其他的工具实现 Service Mesh,比如最近火热的 Istio. 它们都是基于服务网格的设计实现,核心是一个透明代理,用以提供底层服务间的通信.因为处于通信底层,所以可以供上层实现: 服务发现 负载均衡 路由 限流 熔断 错误应答规则 超时重试 既可以实现功能而无需入侵服务内部,这无疑大大降低了微服务治理的门槛. 以 Kubernetes 下的 Istio 为例,其在部署后,会在创建的 … “理解 Service Mesh”

Read More