1
hantsy 2020-06-04 11:24:56 +08:00
你这是 Gateway 了,不是 Sidecar 了。
|
2
lsk569937453 OP @hantsy sidecar 是和用户进程跑在一起的,用户使用 redis 的时候原先的方法是 ip:port,使用了 sidecar 后变为直接和本地的 sidecar 通信
|
3
mazhan465 2020-06-04 11:32:42 +08:00
你这和直接把你的 sdk 写成命令行工具,用的时候直接命令行用差不多
|
4
chendy 2020-06-04 11:36:25 +08:00
拉配置,连 redis,数据库连接池…每种语言开发一遍???手撸一切?
|
5
Foralrec 2020-06-04 11:36:26 +08:00
你的想法没有任何问题,不用理会质疑.
所谓的`multi-runtime`就是这个意思. https://www.infoq.com/articles/multi-runtime-microservice-architecture/ |
6
lsk569937453 OP |
7
lsk569937453 OP @chendy 有些和业务场景绑定的,必须手撸啊。
最近在做双中心 redis 集群的建设,涉及到 redis 的双写双读策略,必须要在 sdk 层面做啊。 |
8
kaneg 2020-06-04 12:34:55 +08:00 via iPhone
你的这种改造方式从设计来说是值得的:既可以保持兼容:对使用 sdk 的应用是透明的,又可以降低开发成本。
|
9
wu181184 2020-06-04 14:30:55 +08:00
想法完全没问题,我司已经落地了。
|
10
julyclyde 2020-06-04 15:02:10 +08:00
感觉不是去解决本质问题而有点糊弄的意思
|
11
index90 2020-06-04 15:20:22 +08:00
不就是把进程内调用改成 RPC 吗?
|
12
psx2019 2020-06-04 15:31:04 +08:00
这不就是现在逐步推广的服务网格么(server mesh)?这种是可以的,问题是只有弱业务耦合的好放到 sidecar 中,单个业务强耦合的并不太适合。
|
13
chendy 2020-06-04 15:36:45 +08:00
@lsk569937453 #7 所以,应用和 sidecar 之间通信的 api 是固定的,api 固定了直接放到外面跑就也行了吧…
|
14
lsk569937453 OP @wu181184 你们的 service mesh 是微服务调用的时候做的吗?我现在想要把各个 sdk 放到里面,不知道会不会有影响。毕竟微服务调用的量和访问 redis 的量比起来,应该差好几个数量级
|
15
lsk569937453 OP @index90 对的,就是这个意思
|
16
index90 2020-06-04 16:18:24 +08:00
@lsk569937453 这个跟 service mesh 中的 sidecar 不是一回事,你这个操作是把包组件( sdk 组件)封装成服务。如果你只是把 redis,数据的 tcp 协议封装成 http 协议,意义不大。
|
17
fdingiit 2020-06-04 16:25:21 +08:00
istio
|
18
lsk569937453 OP @index90 包装的 sdk 还是走自己的协议,包装的 redis 还是走 redis 协议,mysql 连接池还是走 mysql 协议
|
19
lsk569937453 OP @index90 其实就是想各个语言的使用方,可以使用官方的 sdk 来和 sidecar 通信。
|
20
joesonw 2020-06-04 17:10:06 +08:00
service mesh 主要是解决可观察性的问题. 之前是要把 lb, tracing, filtering, mtls 放在 sdk 层面, 每个语言都需要. 所以才弄成 sidecar, 因为本来就是与业务无关的. 业务相关的为什么要抽出来.
|
21
index90 2020-06-04 18:40:32 +08:00
@lsk569937453 所以你是希望研发都用官方的 SDK,然后你截获官方 SDK 发出的请求,做了一些 hack 的事情(例如染色?数据抽取?路由?),再转发出去?
这里 tcp 栈的消耗相对于你的 hack 的消耗可能不值一提? 如果只是做数据抽取,抓包会不会更好 如果是改数据包,你的序列化的操作可能才是瓶颈 如果是路由,有很多现成的中间件啊 |
22
asAnotherJack 2020-06-04 18:41:04 +08:00
我觉得可以,我记得 proxysql 是不是就是这样用的啊
|
23
lazyfighter 2020-06-04 19:00:18 +08:00
可行 同时还可以做一些鉴权,命令限制等等
|