基于Calico的CNI
Calico为容器或虚拟机提供安全的网络连接,它创建一个扁平化的第3层网络,为每个节点分配一个可路由的IP地址。网络中的节点不需要NAT或IP隧道就可以相互通信,因此性能很好,接近于物理网络,不使用网络策略的情况下,可能引入0.01毫秒级…
阅读全文Protocol Buffers初探
ProtoBuf是Google提出的语言中立、平台无关、可扩展的数据序列化协议。比起XML、JSON等格式它更小、更简单、更快。
使用ProtoBuf,你只需要定义消息结构一次,就可以自动生成各种语言的代码来读写消息结构。
你需要ProtoBuf编译…
阅读全文OpenStack学习笔记
OpenStack是一个开源的IaaS解决方案,使用它,你可以通过仪表盘或者利用OpenStack API控制/Provision大规模的计算、存储、网络资源池。
通过“驱动”,OpenStack支持大量商业、开源的计算、存储、网络相关技术框架,从而能够…
阅读全文Apache Shiro学习笔记
Shiro是一个支持身份验证、授权、加密、会话管理的Java安全框架。Shiro的API很简单,比Sprng Security简单的多。它的特性如下:
- 在身份验证方面,Shiro支持LDAP、JDBC、AD等数据源
- 在授权(访问控制)方面,Shiro支持基…
ElasticSearch学习笔记
Elasticsearch是一个基于Apache Lucene的全文检索和分析引擎,可以扩容到上百台服务器,处理PB级结构化/非结构化数据。
ES的应用场景举例:
- 支持在线搜索、自动完成(搜索建议)功能
- 作为ELK栈的一部分,收集、聚合、分析日志/事务数据
- 海…
Dubbo知识集锦
节选自:https://dubbo.apache.org/zh-cn/blog/rpc-introduction.html,稍作改动。
RPC(Remote Procedure Call)即远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供…
阅读全文基于EFK构建日志分析系统
Fluentd是一个C编写的开源的日志收集器,支持100+不同系统的日志收集处理。
定义Fluentd的输入,需要指定一个输入插件。例如:
1 2 3 4 5 6 7 |
<source> # 使用什么插件 @type http # 你可以这样推送日志:http://localhost:8888/tag.name?json={...} port 8888 bind 0.0.0.0 </source> |
定义了一个HTTP输入。Fluentd会在8888端口上监听,等待外部传入事件。事件的例子:
1 |
curl -i -X POST -d 'json={"action":"login","user":2}' http://localhost:8888/test.cycle |
source捕获到的Fluentd事件,交由Fluentd路由引擎处理。
多个filte…
阅读全文Spring Cloud学习笔记
Spring Cloud是一整套的解决方案,它提供的工具让你能够快速实现某些分布式系统组件,包括:
- 配置管理:分布式、版本化的配置
- 服务发现:服务注册和发现
- 断路器
- 负载均衡
- 智能路由
- 微代理
- 控制总线
- 一次性Token
- 全局锁
- 领导选举和集群状态
- 分布式会话
- 分布式消息…