Dev's Logging

Welcome to my blog !


Get THREE times the capacity for your Kubernetes Cluster for FREE! Too good to be true?

Published at March 13, 2019 ·  1 min read

非常有意思的一个观点,在了解 k8s 之前其实也有意识到,通过抢占 aws 或 gcp 大量的抢占式实力进行数据计算可有效的降低服务器的成本,唯独缺的是有像 k8s 这样的集群管理编排工具。 Get THREE times the capacity for your Kubernetes Cluster for FREE! Too good to be true?...

Service Discovery in a Microservices Architecture - NGINX

Published at March 13, 2019 ·  1 min read

在面向服务的系统架构设计中,具体某个节点的 IP 会是随时可变的,这时就需要有一个很好的服务注册和发现机制,将客户端发送来的请求转发给当前存活可用的节点。负载均衡便是一个很简单的案例。在 k8s 中,dns 结合 etcd 的使用则是一个较为完整的案例。 Service Discovery in a Microservices Architecture - NGINX...

百万 Go TCP 连接的思考: epoll方式减少资源占用

Published at March 11, 2019 ·  1 min read

百万 TCP 链接的文章,通过 epoll 减少资源开销,在设计思路上与 redis 类似,虽然单线程,但并不是瓶颈。 百万 Go TCP 连接的思考: epoll方式减少资源占用...

Network Extension, Part 1 - Introduction

Published at February 28, 2019 ·  1 min read

主要介绍了 iOS 中与网络相关的几个 API,比如设置私人VPN,流量过滤、dns 等等 Network Extension, Part 1 - Introduction...

关于内网穿透frp程序的分析

Published at February 28, 2019 ·  1 min read

frp 原理的大致讲解,和花生壳之类的常见ddns 不同,这种方式是需要有一个中继服务器将对用户和本地的流量进行双向转发以实现内网穿透,与常见的 ddns 的优势也是非常明显,在复杂的网络环境中,比如多层 nat 中同样也可以使用。 关于内网穿透frp程序的分析...

How to build a TCP proxy #1: Intro | Robert Heaton

Published at February 27, 2019 ·  1 min read

从嗅探手机中的一些流量信息发现 http proxy 是无法获取到 tcp 请求,于是设计一套方案,从搭建 dns 开始,到 proxy server,将所有请求的流量均通过 dns 转发至 proxy server 以实现 MITM How to build a TCP proxy #1: Intro | Robert Heaton...

Find and Delete multiple keys matching by a pattern in Redis the right way.

Published at February 27, 2019 ·  1 min read

redis 的一些 best practices,其中包括 keys 与 scan,应该舍去已发生阻塞其他事物,不同于 keys 返回所有的 key,scan 只会返回一部分。另外可以利用 pipeline 实现一次执行多个命令,并能保证事物的原子性 Find and Delete multiple keys matching by a pattern in Redis the right way....

shadowsocks-go源码阅读

Published at February 27, 2019 ·  1 min read

shadowsocks 源码分析,其中关键的部分 handleconnection 函数中通过 go ss.PipeThenClose(conn, remote) 和 ss.PipeThenClose(remote, conn) 进行 client 和 server 之间的数据交换,在之前的阅读源码中,并没有很好的理解其作用。 shadowsocks-go源码阅读...

Tags

abcs accept acid activemq affinity algorithm allocation android array async aws b+tree b-tree backoff benchmark best-practices bfs big-o bigquery bind bitcount blog break broker bubble buffer cache cap cert cgroups channel citus class classmethod closure closures cluster concurrency config consumer container context cookie cors crawler cronjob csrf ctr data-science data-structure database datadog dataflow datascience decorator defer dfs distributed django dns docker double-shipping drf ecosia elastic-search enumerate epoll errgroup escaping extra fabric2 facebook-pixel financial-report flask flutter forward-proxy freelance frontend frp garbage-collector gc gcp generator gesture get gil git golang goroutine graphql ha handbook haproxy hash hash-slot hashring hashtable hpa http http-auth http-proxy http_proxy https index init innodb instagram intergration interview ios javascript jinja2 jobboard jwt k8s kafka kibana kqueue label lambda layer4 layer7 lean levels.io linked-list linux list listen loadbalancer logs long-tail lru marketing master matplotlib memory merge metaclass metaprogramming metrics metrics-server microservices mitm mobile model mq myisam mysql namespace nat netflix network-extension nginx nodejs nomad nosql npm oodesign openssl optimization orm pandas parallelism paramiko parkinglot patroni permission pg pipeline pixelme post postgresql postresql prefetch_related prerender private-key process proxy proxycommand put pvm python queue rabbitmq rbac react-native reactive reactjs rebase redis redis-cluster replication resource rest restfulapi retargeting retry revenue reverse-proxy rocketmq rsa rxswift saas scaffold scaleable search-engine security select seo serverless service session set shadosocks shadowsocks shard sharding shell shopify sigint signal sigterm slack slave slow-query sniper sns socket socks5 source-code spa sql sqlalchemy sqs ssh ssl ssl-pinning stack startup state stateful stateless staticmethod string struct swift swiftui switch syscall system-design systemctl tcp tcp-proxy thread tmpreaper token traefik trustkit tunning type typeform udp userdefaults variable vc vpn vuejs weak web web-development where widget yarn zset 削峰 宽索引 异步 看源码学-golang 窄索引 解耦 跨域 跳板机


Archives

2019 (156)