Soumettre la recherche
Mettre en ligne
Micro service
•
18 j'aime
•
1,845 vues
R
rfyiamcool
Suivre
微服务那些事儿,网络架构,缓存架构,数据架构及各类方案
Lire moins
Lire la suite
Internet
Signaler
Partager
Signaler
Partager
1 sur 41
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
大鱼架构演进
大鱼架构演进
Jun Liu
Redis cluster那些事儿
Redis cluster那些事儿
rfyiamcool
cdn的那些事儿
cdn的那些事儿
rfyiamcool
Hacking Nginx at Taobao
Hacking Nginx at Taobao
Joshua Zhu
天涯论坛的技术进化史-Qcon2011
天涯论坛的技术进化史-Qcon2011
Yiwei Ma
浅谈电商网站数据访问层(DAL)与 ORM 之适用性
浅谈电商网站数据访问层(DAL)与 ORM 之适用性
Xuefeng Zhang
阿里巴巴运维自动化的探索与规划
阿里巴巴运维自动化的探索与规划
mysqlops
20220224台中演講k8s
20220224台中演講k8s
chabateryuhlin
Recommandé
大鱼架构演进
大鱼架构演进
Jun Liu
Redis cluster那些事儿
Redis cluster那些事儿
rfyiamcool
cdn的那些事儿
cdn的那些事儿
rfyiamcool
Hacking Nginx at Taobao
Hacking Nginx at Taobao
Joshua Zhu
天涯论坛的技术进化史-Qcon2011
天涯论坛的技术进化史-Qcon2011
Yiwei Ma
浅谈电商网站数据访问层(DAL)与 ORM 之适用性
浅谈电商网站数据访问层(DAL)与 ORM 之适用性
Xuefeng Zhang
阿里巴巴运维自动化的探索与规划
阿里巴巴运维自动化的探索与规划
mysqlops
20220224台中演講k8s
20220224台中演講k8s
chabateryuhlin
Mesos vs Kubernetes: What We Learned Working With Both For Chinese Customers
Mesos vs Kubernetes: What We Learned Working With Both For Chinese Customers
Guangya Liu
Mysql fast share
Mysql fast share
rfyiamcool
AWS reInvent 2018 Recap - Solutions Updates part 1
AWS reInvent 2018 Recap - Solutions Updates part 1
Amazon Web Services
构建企业私有云、开启服务新里程——基于Dcos的PAAS实践
构建企业私有云、开启服务新里程——基于Dcos的PAAS实践
Hardway Hou
基于Fuel的超融合一体机
基于Fuel的超融合一体机
EdwardBadBoy
Comboware ComboStack 202105
Comboware ComboStack 202105
Elroy Peng
Kubernetes project update and how to contribute
Kubernetes project update and how to contribute
inwin stack
美团点评技术沙龙14美团云-Docker平台
美团点评技术沙龙14美团云-Docker平台
美团点评技术团队
企业应用架构:模块化、微服务与 Linux 容器技术
企业应用架构:模块化、微服务与 Linux 容器技术
Lifan Yang
华为软件定义存储架构分析
华为软件定义存储架构分析
Liang Ming
Full stack-development with node js
Full stack-development with node js
Xuefeng Zhang
阿里云CDN技术演进之路
阿里云CDN技术演进之路
Joshua Zhu
淺談 Kubernetes於大數據生態系的相關開發近況
淺談 Kubernetes於大數據生態系的相關開發近況
inwin stack
美团技术沙龙04 - Kv Tair best practise
美团技术沙龙04 - Kv Tair best practise
美团点评技术团队
Memcached vs redis
Memcached vs redis
qianshi
构建基于Lamp的网站架构
构建基于Lamp的网站架构
Cosey Lee
高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕
ideawu
FIT2CLOUD:云管理及DevOps协作平台
FIT2CLOUD:云管理及DevOps协作平台
Fit2Cloud
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Ceph Community
Traffic server 管理员指南v1.0
Traffic server 管理员指南v1.0
qianshi
领域驱动设计与模型驱动开发
领域驱动设计与模型驱动开发
Weijun Zhong
Development with Qt for Windows CE
Development with Qt for Windows CE
account inactive
Contenu connexe
Tendances
Mesos vs Kubernetes: What We Learned Working With Both For Chinese Customers
Mesos vs Kubernetes: What We Learned Working With Both For Chinese Customers
Guangya Liu
Mysql fast share
Mysql fast share
rfyiamcool
AWS reInvent 2018 Recap - Solutions Updates part 1
AWS reInvent 2018 Recap - Solutions Updates part 1
Amazon Web Services
构建企业私有云、开启服务新里程——基于Dcos的PAAS实践
构建企业私有云、开启服务新里程——基于Dcos的PAAS实践
Hardway Hou
基于Fuel的超融合一体机
基于Fuel的超融合一体机
EdwardBadBoy
Comboware ComboStack 202105
Comboware ComboStack 202105
Elroy Peng
Kubernetes project update and how to contribute
Kubernetes project update and how to contribute
inwin stack
美团点评技术沙龙14美团云-Docker平台
美团点评技术沙龙14美团云-Docker平台
美团点评技术团队
企业应用架构:模块化、微服务与 Linux 容器技术
企业应用架构:模块化、微服务与 Linux 容器技术
Lifan Yang
华为软件定义存储架构分析
华为软件定义存储架构分析
Liang Ming
Full stack-development with node js
Full stack-development with node js
Xuefeng Zhang
阿里云CDN技术演进之路
阿里云CDN技术演进之路
Joshua Zhu
淺談 Kubernetes於大數據生態系的相關開發近況
淺談 Kubernetes於大數據生態系的相關開發近況
inwin stack
美团技术沙龙04 - Kv Tair best practise
美团技术沙龙04 - Kv Tair best practise
美团点评技术团队
Memcached vs redis
Memcached vs redis
qianshi
构建基于Lamp的网站架构
构建基于Lamp的网站架构
Cosey Lee
高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕
ideawu
FIT2CLOUD:云管理及DevOps协作平台
FIT2CLOUD:云管理及DevOps协作平台
Fit2Cloud
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Ceph Community
Traffic server 管理员指南v1.0
Traffic server 管理员指南v1.0
qianshi
Tendances
(20)
Mesos vs Kubernetes: What We Learned Working With Both For Chinese Customers
Mesos vs Kubernetes: What We Learned Working With Both For Chinese Customers
Mysql fast share
Mysql fast share
AWS reInvent 2018 Recap - Solutions Updates part 1
AWS reInvent 2018 Recap - Solutions Updates part 1
构建企业私有云、开启服务新里程——基于Dcos的PAAS实践
构建企业私有云、开启服务新里程——基于Dcos的PAAS实践
基于Fuel的超融合一体机
基于Fuel的超融合一体机
Comboware ComboStack 202105
Comboware ComboStack 202105
Kubernetes project update and how to contribute
Kubernetes project update and how to contribute
美团点评技术沙龙14美团云-Docker平台
美团点评技术沙龙14美团云-Docker平台
企业应用架构:模块化、微服务与 Linux 容器技术
企业应用架构:模块化、微服务与 Linux 容器技术
华为软件定义存储架构分析
华为软件定义存储架构分析
Full stack-development with node js
Full stack-development with node js
阿里云CDN技术演进之路
阿里云CDN技术演进之路
淺談 Kubernetes於大數據生態系的相關開發近況
淺談 Kubernetes於大數據生態系的相關開發近況
美团技术沙龙04 - Kv Tair best practise
美团技术沙龙04 - Kv Tair best practise
Memcached vs redis
Memcached vs redis
构建基于Lamp的网站架构
构建基于Lamp的网站架构
高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕
FIT2CLOUD:云管理及DevOps协作平台
FIT2CLOUD:云管理及DevOps协作平台
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Traffic server 管理员指南v1.0
Traffic server 管理员指南v1.0
En vedette
领域驱动设计与模型驱动开发
领域驱动设计与模型驱动开发
Weijun Zhong
Development with Qt for Windows CE
Development with Qt for Windows CE
account inactive
python高级内存管理
python高级内存管理
rfyiamcool
Enterprise Architecture Implementation And The Open Group Architecture Framew...
Enterprise Architecture Implementation And The Open Group Architecture Framew...
Alan McSweeney
Wp, uxd, and you
Wp, uxd, and you
wcto2017
用戶體驗服務設計流程
用戶體驗服務設計流程
NTUST
Xavier Massaut at UX Antwerp Meetup, 22 nov 2016
Xavier Massaut at UX Antwerp Meetup, 22 nov 2016
UX Antwerp Meetup
專案設計流程 x Prott 蹦出新滋味
專案設計流程 x Prott 蹦出新滋味
Joy Tsai
TDC2017 | São Paulo - Trilha UX Design Coaching I How we figured out we had a...
TDC2017 | São Paulo - Trilha UX Design Coaching I How we figured out we had a...
tdc-globalcode
人機協作迎向Ai+世代
人機協作迎向Ai+世代
Steven Tseng
雲端產品的用戶體驗檢測重要性與作法
雲端產品的用戶體驗檢測重要性與作法
NTUST
擁抱人工智慧帶來的劇烈產業改變 @ Mix Taiwan
擁抱人工智慧帶來的劇烈產業改變 @ Mix Taiwan
Albert Y. C. Chen
InnoDB Locking Explained with Stick Figures
InnoDB Locking Explained with Stick Figures
Karwin Software Solutions LLC
En vedette
(13)
领域驱动设计与模型驱动开发
领域驱动设计与模型驱动开发
Development with Qt for Windows CE
Development with Qt for Windows CE
python高级内存管理
python高级内存管理
Enterprise Architecture Implementation And The Open Group Architecture Framew...
Enterprise Architecture Implementation And The Open Group Architecture Framew...
Wp, uxd, and you
Wp, uxd, and you
用戶體驗服務設計流程
用戶體驗服務設計流程
Xavier Massaut at UX Antwerp Meetup, 22 nov 2016
Xavier Massaut at UX Antwerp Meetup, 22 nov 2016
專案設計流程 x Prott 蹦出新滋味
專案設計流程 x Prott 蹦出新滋味
TDC2017 | São Paulo - Trilha UX Design Coaching I How we figured out we had a...
TDC2017 | São Paulo - Trilha UX Design Coaching I How we figured out we had a...
人機協作迎向Ai+世代
人機協作迎向Ai+世代
雲端產品的用戶體驗檢測重要性與作法
雲端產品的用戶體驗檢測重要性與作法
擁抱人工智慧帶來的劇烈產業改變 @ Mix Taiwan
擁抱人工智慧帶來的劇烈產業改變 @ Mix Taiwan
InnoDB Locking Explained with Stick Figures
InnoDB Locking Explained with Stick Figures
Similaire à Micro service
Beyond rails server
Beyond rails server
Michael Chen
deep inside Sina App Engine cloud service
deep inside Sina App Engine cloud service
cong lei
Sae
Sae
cong lei
新浪微博大规模基于Docker的混合云应用实践 -王关胜
新浪微博大规模基于Docker的混合云应用实践 -王关胜
Weibo Corporation
使用NodeJS构建静态资源管理系统
使用NodeJS构建静态资源管理系统
Frank Xu
云网锦绣 SDN实战研讨会
云网锦绣 SDN实战研讨会
Hardway Hou
Hbase在淘宝的应用与优化 修改
Hbase在淘宝的应用与优化 修改
yp_fangdong
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析
iammutex
Node js feat pegasus
Node js feat pegasus
cnfi
为什么上网浏览要用Shadowsocks?
为什么上网浏览要用Shadowsocks?
zzzzzz gg
Ibm dnt-dcos-v9-3
Ibm dnt-dcos-v9-3
Guangya Liu
美团点评技术沙龙13-前端工程化开发方案app-proto介绍
美团点评技术沙龙13-前端工程化开发方案app-proto介绍
美团点评技术团队
Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储
zhen chen
LVS
LVS
mysqlops
使用LVS集群架设高可扩展的网络服务
使用LVS集群架设高可扩展的网络服务
Wensong Zhang
章文嵩:使用Lvs集群架设高可扩展的网络服务
章文嵩:使用Lvs集群架设高可扩展的网络服务
drewz lin
Mesos-based Data Infrastructure @ Douban
Mesos-based Data Infrastructure @ Douban
Zhong Bo Tian
使用Nginx轻松实现开源负载均衡——对外版
使用Nginx轻松实现开源负载均衡——对外版
pigso
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
drewz lin
徐晓 Qq空间技术架构之峥嵘岁月
徐晓 Qq空间技术架构之峥嵘岁月
drewz lin
Similaire à Micro service
(20)
Beyond rails server
Beyond rails server
deep inside Sina App Engine cloud service
deep inside Sina App Engine cloud service
Sae
Sae
新浪微博大规模基于Docker的混合云应用实践 -王关胜
新浪微博大规模基于Docker的混合云应用实践 -王关胜
使用NodeJS构建静态资源管理系统
使用NodeJS构建静态资源管理系统
云网锦绣 SDN实战研讨会
云网锦绣 SDN实战研讨会
Hbase在淘宝的应用与优化 修改
Hbase在淘宝的应用与优化 修改
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析
Node js feat pegasus
Node js feat pegasus
为什么上网浏览要用Shadowsocks?
为什么上网浏览要用Shadowsocks?
Ibm dnt-dcos-v9-3
Ibm dnt-dcos-v9-3
美团点评技术沙龙13-前端工程化开发方案app-proto介绍
美团点评技术沙龙13-前端工程化开发方案app-proto介绍
Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储
LVS
LVS
使用LVS集群架设高可扩展的网络服务
使用LVS集群架设高可扩展的网络服务
章文嵩:使用Lvs集群架设高可扩展的网络服务
章文嵩:使用Lvs集群架设高可扩展的网络服务
Mesos-based Data Infrastructure @ Douban
Mesos-based Data Infrastructure @ Douban
使用Nginx轻松实现开源负载均衡——对外版
使用Nginx轻松实现开源负载均衡——对外版
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
徐晓 Qq空间技术架构之峥嵘岁月
徐晓 Qq空间技术架构之峥嵘岁月
Plus de rfyiamcool
Golang advance
Golang advance
rfyiamcool
Golang 高性能实战
Golang 高性能实战
rfyiamcool
分析mysql acid 设计实现
分析mysql acid 设计实现
rfyiamcool
Raft
Raft
rfyiamcool
大话redis设计实现
大话redis设计实现
rfyiamcool
python gil
python gil
rfyiamcool
async io frame
async io frame
rfyiamcool
异步io框架的实现
异步io框架的实现
rfyiamcool
美妙的多进程管理
美妙的多进程管理
rfyiamcool
聊聊我接触的集群管理
聊聊我接触的集群管理
rfyiamcool
Plus de rfyiamcool
(10)
Golang advance
Golang advance
Golang 高性能实战
Golang 高性能实战
分析mysql acid 设计实现
分析mysql acid 设计实现
Raft
Raft
大话redis设计实现
大话redis设计实现
python gil
python gil
async io frame
async io frame
异步io框架的实现
异步io框架的实现
美妙的多进程管理
美妙的多进程管理
聊聊我接触的集群管理
聊聊我接触的集群管理
Micro service
1.
微服务那些事⼉ - xiaorui.cc
2.
List 微服务 架构层 缓存层 数据层 部署 所谓经验
3.
前世今⽣ ⼀体化架构 >>> soa服务化
>>> 微服务 dish recipe mp social dish recipe mp social ESB dish recipe mp social api gateway discovery db db db db
4.
micro service 要微服务的优点 松耦合,代码结构更加清晰 开发者友好,避免老代码包袱. 独立发布、快速迭代 故障隔离 增加重用, 可组合
5.
web design (宏) dns Nginx micro
service redis mysql Nginx Nginx micro service redis mysql
6.
web design (微) etcd
s1 api gateway proxy s2proxy s3 engine
7.
协议组合 rpc over tcp;
强约束rpc google grpc apache thrift idl, 协议紧凑, 性能⾼ rpc over http; 不约束rpc http msgpack 协议冗余, 简单, 自定义开发
8.
协议组合 最终: inside; rpc over http msgpack outside; http
json
9.
协议{ "output_type": "json", "call_func": "add_dish", "args":
[], "kwargs": {}, "uid": “s123”, "login": true, "timeout": 5, "async": false, "ip": "", "sn": "", "origin": “", “app_id”: “”, “timestamp”: “”, “sign”: “” } ... ... { "code": "", "error": "", "res": {} }
10.
服务发现调度的演变 静态配置 智能dns调度 中⼼调度 基于调用⽅构建sdk ALl ==
11.
服务发现之静态配置 s1 s2 get hosts
from config.ini; random hosts rpc call 频繁上线 管理麻烦
12.
服务发现之smart dns skydns get domain
from dns s2 逃不出的ttl ? 绕脑筋的A记录 注册上报...dns query s1
13.
服务发现之负载均衡 s1 LB s2 s3 s4 单点瓶颈 ? 单点ha ? LB
hosts from etcd
14.
服务发现之sdk etcd s2 开发难度不简单 ? 多种语⾔多次开发 ? 注册上报... rpc
call watch发现 s1 sdk
15.
那么我们的选择? Etcd s2 注册上报... Rpc Call s1 proxy engine
16.
future !!! 降频 熔断 降级
17.
微服务下的session 共享存储 ? 逻辑复用并且调度器uid hash⽅案
? rpc call user service ? router check user login !
18.
微服务下的接⼝安全 rsa + des 慢,
消息体加密 oauth2 防串改及场景 sign ( jwt ) HMACSHA256( base64UrlEncode(body) + “.”, timestamp + “.”, SECREATE_KEY + “.”, xxx xxx )
19.
缓存层 app redis mysqlinterface redis redis redis redis redisredis redis
20.
缓存层 根据hot及 order by定时服务主动推送热缓存 当数据为空时,只有⼀⼈去db,其他⼈在服务端超时自旋 热数据不采用expire,避免缓存穿透 冷数据采用expire,避免缓存太多 多虚拟节点的⼀致性hash,升级缓存后减少cache
miss
21.
⼀级缓存 (被⼲掉) 服务内部mmap +
heap实现的ttl dict ⼆级缓存 redis多实例切分 解决单节点做rdb引起swap问题 cpu单核问题 分布式扩展 三级缓存 基于Rocksdb实现类redis数据结构
22.
23.
数据层 服务切了,数据当然也要独立切分 开启多实例,按照业务类型选择不同的disk实例 分库分表⼤势所趋 不使用中间件,自⼰开发sql路由
24.
常见的分库分表 数据过度集中, 不适用blance 时间range id range mode引起扩展不易 key
hash … …
25.
场景1 帖⼦id author gtid+user 张三 按照author分库分表,在tiezi_id加⼊分表标志位
or author ! 既想通过author查询,又想通过tiezi_id,如何分库分表?
26.
场景2 tiezi_id author pub_date gtid+user
张三 2017-05-21 按照author分库分表,在tiezi_id加⼊分表标志位 or author ! 查询⽅式 或tid, 或author, 或pub_date, 该如何分库分表? 按照pub_date分库分表, 加⼊tiezi_id 及 author信息 +
27.
场景3 tiezi_id author pub_date
update_date gtid+user 张三 2017-05-21 2017-05-30 查询⽅式 (tid, author, pub_date, update_date), 该如何分库分表? 在场景2的基础上, 再加⼊update_date的分表? 如果update_date的需求小于10% ? 那么多表轮询 !!!
28.
场景4 user target_user … 峰云
李宇春 … 解决⽅法, 两组分库分表 查询⽅式 或user, 或target_uer, 该如何分库分表?
29.
repair deley redis interface 1 2 repair_man check and
set each crud has repair func ! care each except !
30.
事务 ? 事务相关的表尽量在⼀个db库中 强⼀致性, 2pc,
3pc 太耗时… 消息队列最终⼀致性 ⾼效,易理解 读多写少场景用cas
31.
begin update amount-100 …. insert
(gtid, action, status) commit 消息队列处理事务 s1 begin update amount+100 …. insert (gtid, action, status) commit
32.
分布式事务中的死锁 s1 s2
33.
问题 分布式id 伪自增; 独立库分配auto_id 客户端⽣成; snowflake hash节点不够,扩节点? 预先设立16/
32 /64 /128 hash值 外键 ? ⼲掉!!! 分布式系统中杜绝外键 !!!
34.
metrics 性能监控 app api Elasticsearch grafana redis
35.
36.
调试层 (tracing) gateway自动嵌⼊trace_id 每个逻辑块、服务区⼀个span_id span之间存在⽗⼦调用链关系 根据 trace_id
追踪问题 根据span输出全链路的调用关系及时间轴
37.
simple tracing app 日志⽂件 Logstash elasticsearch web ui
38.
业务性能优化 批量io 长连接 缓存 异步io框架 … …
39.
deploy 1. unit testing 2.
docker image 3. deploy push new version node 4. rem old version node
40.
异地多活 程序随便部署,重点在于 DB 解决idc数据同步问题 备idc部分可脏写及重要只读 不采用mysql主从复制,自开发cs dns层切换数据中⼼
41.
– 峰云就她了 “ Q&A
”
Télécharger maintenant