有什么案例可以参考吗?目前已经有一个版本了,想好好设计一下。
这个应用基于 Springboot 开发,想做一个类似 SPI 注解,有两个 Scope ,一个 single ,一个 distribute ,我看 dubbo 就有这种设计?刚看。一年不到经验,刚入手这个项目。
1
Dmumuxi 2 天前
从打包方式和部署形态入手?单机就都打成一个 jar ,分布式就分模模块打 jar
|
2
bugmakerxs 2 天前
我们目前也有类似需求。我的想法是每个服务都需要将 controller 、service 、api 分成不同 module ,代码分为 AController/AService/AApi BController/BService/BApi ,其中 AApi 和 BApi 根据配置判断是走反射调用本地方法还是 http 调用远程方法;
如果要作为分布式应用,A 服务打包形式为 AController+AService+BApi ; B 服务打包形式为 BController+BService+AApi ,走远程调用; 如果要作为单机应用,打包形式为 AController+AService+BService+AApi+BApi ,api 模块通过反射调用 AService 或者 BService 中的方法。 |
![]() |
3
pangdundun996 2 天前
没懂,单机 /分布式只是部署方式,跟代码有什么关系?
|
![]() |
4
pangdundun996 2 天前
@bugmakerxs 如果是这种要求的话直接分 module 打包就行,dubbo 是支持本地 jvm 调用的
|
5
goinghugh 2 天前
你想要的应该是模块化以及合并部署的能力,蚂蚁的 sofa 有类似的能力; dubbo 能解决调用的问题,模块化估计要自己实现
|
![]() |
6
IvanLi127 2 天前 via Android
分布式的项目部署在同一个机子上不就是单机了?还是说单体?
|
![]() |
7
kytrun 2 天前
|
8
nothingistrue 2 天前
如果是单纯的多节点负载均衡,那单机跟分布式没多大区别,事实上这里压根也就不是分布式。
如果是一个服务,既能单独提供完整单机服务,又能作为服务节点插入到另一个微服务集群中。那么用 Spring Cloud (原生那个,不要用混乱的 Spring Cloud Alibaba )就够了。只要你不搞配置中心,那么,如果禁用了服务注册,或者说连接不上注册中心,那每个服务都是独立的完整服务。如果启用了服务注册,同时又在防火墙上禁用了单个服务的直接访问,那么就没有独立服务,只有微服务集群了。 不要看 Dubbo ,这货本质上是 Java 远程调用框架,不是分布式协作框架。 |
![]() |
9
xiang0818 1 天前
1 年经验,你先理解下什么是分布式吧。
|