看网上的描述看不懂,模棱两可的样子。谁来解释下什么是微服务?
1
znood 2018-03-22 09:27:04 +08:00 via iPhone 1
微服务是一种架构方法,将传统应用拆分成各个独立的模块(微服务)运行,并且模块间通过 Restful 或 rpc 方式通信,模块可单独部署、更新、重启等。
常用于容器化部署,Docker,Kubernetes。楼主也可了解下云原生。 |
3
sundev 2018-03-22 09:36:10 +08:00
微服务就跟 Moto Z 手机的一个模块一样。
|
4
caixiexin 2018-03-22 09:37:20 +08:00 via Android
把业务模块尽量按照单职责划分,代码,依赖做到尽可能简单,能够快速部署快速摘除
坏处是模块会非常多,部署可能是灾难,所以出现了 devops 岗位。 |
5
caixiexin 2018-03-22 09:38:55 +08:00 via Android
可以理解成是分布式服务的一种演进
|
6
p2pCoder 2018-03-22 09:42:09 +08:00
大数据风控部门:
每个月都有新接入的数据源,需要实时处理 每个月也有新的模型建立用于风控 每个数据源又要处理后,对接入相应的 BI 或者学习模型 这种业务场景,就需要微服务 |
8
paragon 2018-03-22 09:49:19 +08:00
等你用到的时候就知道了 ~
|
9
Mazexal 2018-03-22 10:00:50 +08:00
把之前大型系统里的功能单独抽出来, 就是微服务了
|
10
zjsxwc OP |
11
th00000 2018-03-22 10:11:08 +08:00 1
比如说你玩魔兽世界要打 20 人战场了, 主服务会将玩家数据打包丢给战场服务器的集群, 将玩家的登陆状态部分切换到战场服务器, 玩家就在战场服务集群上进行战斗, 战斗完毕之后集群返回战斗结果给主服务, 再将部分玩家登陆状态切换回来, 就可以理解为一个简单的微服务架构
|
12
th00000 2018-03-22 10:13:33 +08:00
又或者你要打怪之后, 怪物要进行掉落物品, 因为掉落模块的逻辑是所有的服务器共享的, 所以可以将掉落的服务单独拉出来进行集群, 当任何服务器要进行大怪掉落的时候, 将掉落分组, 掉落 id 等抛给掉落服务集群, 掉落服务会将掉落的物品 ID 列表返回给调用服务, 由主服务将掉落的物品加到你的背包里, 这也是微服务的架构
|
13
znood 2018-03-22 10:14:21 +08:00 via iPhone
@zjsxwc 肯定不是的,微服务是独立进程。
微服务没有官方的定义,只是社区催生出来的一个理念,你理解了就理解了不理解就再看看。关于具体的产品架构还是看设计。 |
15
whypool 2018-03-22 10:23:59 +08:00
部署是灾难,有时候不晓得哪个服务 gg 了,线上先报错了,然后排查重启
|
16
wweir 2018-03-22 10:30:12 +08:00 via iPhone
高内聚,低耦合
耦合低到一定程度就可以仅仅只用几个 rpc 调用来解决,这样按模块裁成组件。 结合调度服务,实现高度的可用性及资源的合理分配 说到底还是通过降低开发难度,来提高服务可靠性,同时降低硬件成本 |
17
moka20477 2018-03-22 10:39:09 +08:00
最简单的说就是从一开始就是大家的目标就是把服务无限的细化拆分,以让其保证最大的低耦合,但是一大堆服务的部署,监控,治理是个极其复杂的事情,近几年微服务火起来了是因为众多技术让微服务治理变成了可能,所以微服务没什么复杂的,就是服务细化拆分而已,真正大家讨论的都是“微服务治理”
|
18
lesxc 2018-03-22 10:42:13 +08:00
以淘宝购物为例(不考虑细节):
1. 访问首页时,A 服务来提供页面展示。A 服务只提页面的快速展示 2. 搜索商品时,B 服务来提供搜索的细节,同时向页面展示商品列表 3. 用户登录, C 服务提供用户登录,包括移动端、pc 端、淘宝账号、支付账户等 4. 支付环节, D 服务提供支付,支付成功后返回商家和用户信息。 以上只包括最简单的流程 ,还有物流、个性推荐、服务治理、业务监控等等各种后台服务。这些服务都布署在单独的服务器上通过 rpc 来调用来完成一次完整购物流程 。 |
19
asaxing 2018-03-22 11:01:23 +08:00
借楼问一下有什么开源的微服务项目吗
|
20
NoahNye 2018-03-22 12:06:47 +08:00 via iPhone
很想用现在 EA 的 dlc 比喻
|
21
feverzsj 2018-03-22 12:08:21 +08:00
你不需要微服务
|
22
pathbox 2018-03-22 12:57:30 +08:00 via iPhone
你要做的是多看书,而且不仅看微服务的书
|
23
print1024 2018-03-22 13:51:29 +08:00
@asaxing http://www.spring4all.com/ 这里大部分都是
|
24
ShareDuck 2018-03-22 14:00:42 +08:00 via Android
大概说一下,例如你要做个 xx 系统的网站,里面包含用户管理等功能,现在你把用户管理这一块单独做成一个独立的网站,独立上线,需要用到这个功能的其他系统调用这个“微服务”就好了。
|
26
p2pCoder 2018-03-22 14:27:53 +08:00
@asaxing python 的话,有 zk consul eureka 的相关包,不过,仅限服务注册 发现与健康检测值了
|
27
zhu327 2018-03-22 15:06:38 +08:00
|
29
solaro 2018-03-22 17:15:40 +08:00
说白了就是 rpc + rpc + rpc
|
30
southsala 2018-03-22 18:29:57 +08:00
就是纵向解耦啊
|
31
hardman 2018-03-22 19:26:47 +08:00 via Android
spring clond 了解下
|
32
Bluecoda 2018-03-23 02:51:50 +08:00 2
|