基于传染机制的分布式组件
Martian-cloud 是 Martian 的官方分布式组件,基于传染机制,不再需要注册中心
http://mars-framework.com/img/ws-blank.png
这些服务之间是相互独立的,他们无法发现对方,所以我们需要做一些事
比如像这个样子 [图 1 ]
http://mars-framework.com/img/ws-one.png
也可以是这样子 [图 2 ]
http://mars-framework.com/img/ws-two.png
连接方式随意,只要别让任何服务落单即可
我们用图 1 来举例
<dependency>
<groupId>com.github.yuyenews</groupId>
<artifactId>mars-cloud-starter</artifactId>
<version>最新版,具体看《组件介绍》</version>
</dependency>
/*
这个注解的 serverName 跟你要调用的那个服务的 name 一致(配置类里 cloud 配置的 name )
beanName 不写的话,默认为类名首字母小写
*/
@MarsFeign(serverName="mars-demo",beanName="demoFeign")
public interface DemoFeign {
/*
这里面的所有方法,跟你要调用的那个 API 中的方法名一致
*/
返回类型 insert(DemoEntity entity);
/*
可以用 @MarsContentType 注解 来指定本次请求的 ContentType
*/
@MarsContentType(ContentType = ContentType.JSON)
返回类型 selectList(DemoEntity entity);
}
返回类型 result = MarsRestTemplate.request(服务 name,MarsApi 接口的方法名,new Object[]{参数对象 1,参数对象 2},返回类型.class, ContentType.FORM);
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.