想使用微服务框架来构建项目,如何操作呢?

2018-03-22 00:28:07 +08:00
 MrMike

最近在考虑将项目拆分成一个个小模块,运行在 docker 里面,每个模块之间用 restful 的方式来通信,所以在考虑使用微服务的框架。

目前的项目主要用 php 开发的,前两天了解了下 sprin cloud,看到一篇文章说是只能运行 java 的项目,所以就没继续了。

对微服务了解不深,所以请问下有这方面经验的朋友,该如何选择呢?

7062 次点击
所在节点    PHP
66 条回复
yuanfnadi
2018-03-22 08:02:06 +08:00
k8s 可以解决你的任何问题。
p2pCoder
2018-03-22 08:22:51 +08:00
服务注册与发现中心推荐 consul
helloworld12
2018-03-22 09:03:51 +08:00
@sagaxu 你服务器配置是怎样的?
WinMain
2018-03-22 09:04:34 +08:00
spring cloud ? Dubbo ? 这两个用的最多吧,再加上一个 docker 的管理框架。
我们公司用的 spring cloud,感觉很好上手。
feiyu1993
2018-03-22 09:09:58 +08:00
基于 swoole 的 php-msf 微服务框架考虑下。
p2pCoder
2018-03-22 09:12:01 +08:00
如果你要纯用 php 做微服务,包括 服务注册与发现,断路器 路由 网关 消息总线 配置置中心等所有功能,应该是很有挑战的
我现在大数据部门用 python 做数据模型 部署和一些实时爬取的服务,都是用 python 完成注册到 eureka 或者 consul,然后其他用 spring cloud 实现其他功能
WinterWu
2018-03-22 09:17:18 +08:00
主要还是看业务本身,如果业务模型比较单一,用户容易区分,可以直接根据用户垂直切分,业务本身只需要根据需要简单扩容,这样只要在反代或者 LBS 上进行配置好规则,就很容易做到横行扩容。
yuhuan66666
2018-03-22 09:28:19 +08:00
@1762628386 #2 有多慢,你扔下一句话就跑了有慢的例子么 到多少并发时候会出现瓶颈
yuhuan66666
2018-03-22 09:31:17 +08:00
@WinMain #24 请问 你们注册中心用的是 eureka 还是 consul ? 有出现性能瓶颈吗?
eccstartup
2018-03-22 09:31:40 +08:00
@yuhuan66666 嗯,已屏蔽这种不负责任的回答
yuhuan66666
2018-03-22 09:32:35 +08:00
@p2pCoder #22 请问推荐理由是啥? eureka 呢?
p2pCoder
2018-03-22 09:38:15 +08:00
@yuhuan66666 eureka consul 都可以,相比 zk 可用性和恢复能力都更好
jowuIM
2018-03-22 09:41:39 +08:00
为什么一定要微服务,真的需要吗?
jyf
2018-03-22 09:46:41 +08:00
其实我觉得这些技术选择倒不是重要的 重要的是如何拆接口到不同的服务去
yuhuan66666
2018-03-22 10:00:50 +08:00
@p2pCoder #32 感谢
lauix
2018-03-22 10:24:10 +08:00
可以考虑 RPC
nullen
2018-03-22 10:43:26 +08:00
微服务是业务逻辑的重新划分、切分,每个服务负责单一功能(职责),前台业务 拼装后端服务 实现业务逻辑。

对比单体应用,往往是某个类来实现单一职责,前台业务代码通过调用类的方式来实现业务逻辑。
服务化的应用,“类” 就变成一个个的服务,前台业务代码调用后端服务实现业务逻辑,服务之间的通讯方式目前大部分为 RPC。

RPC 协议有很多,可以根据实际情况选择:
1、比如基于 HTTP 协议的 JSON-RPC 也没那么“慢”;
2、看业务要求,性能要求高的地方换 二进制协议的 RPC ( thrift,dubbo,gRPC ),效率更好。根据自己团队的技术情况选择;
3、业界 Java 技术体系的轮子比较多。就我自己而言,我比较喜欢 gRPC。

服务化会带来新的问题:问题排查、各种服务监控会变复杂。
WinMain
2018-03-22 10:46:38 +08:00
@yuhuan66666 你的用户场景是?我们 app 日活不到千万,完全没问题。在没有碰到性能问题的时候,就不用考虑性能问题了,考虑 spring cloud 这个框架有多少大公司在用就可以了。
MrMike
2018-03-22 10:50:46 +08:00
@WinMain spring cloud 只能运行 java 的项目吧,支持其他语言的么?
MrMike
2018-03-22 10:55:52 +08:00
@p2pCoder 不是用 PHP 做纯的微服务,前几天一直在网上查,一查微服务,基本都是 spring cloud or zookeeper,后来还尝试安装了下 spring cloud,但是看到一篇文章说 spring cloud 只支持 java 的程序,我就不敢继续尝试下去了,因为时间消耗不起。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/440258

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX