10 Star 9 Fork 3

lucky7 / Stardust4J

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
README.md 2.67 KB
一键复制 编辑 原始数据 按行查看 历史
王胜龙 提交于 2017-04-27 17:18 . 更新read me

#Stardust4J

Stardust是一个微服务架构的一个简单实现。Stardust4J是JAVA版客户端和服务端的实现。

http://www.cnblogs.com/loogn/p/6664594.html

.NET版

##Service: web.xml

<web-app>
    <filter>
        <filter-name>StardustFilter</filter-name>
        <filter-class>net.loogn.stardust.server.StardustFilter</filter-class>
        <init-param>
            <param-name>configClass</param-name>
            <param-value>net.loogn.stardust.webnode.MyStardustConfig</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>StardustFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

继承StardustConfig配置服务节点

public class MyStardustConfig extends StardustConfig {

    public void setConfig(ConfigSetter setter) {
        setter.setVersion("1.0")
                .setServiceName("node2")
                .setAddress("127.0.0.1:8086")
                .setConfigCenterUrl("http://localhost:85");
    }

    public void addService(ServiceAddor addor) {
        addor.add(UserService.class); //添加定义服务的类
    }
}

编写服务类

@StardustName("user")
public class UserService {
    //可以没有参数
    @StardustName("hello")
    public String GetStr() {
        return "Hello UserService";
    }
    
    //可以有一个参数接
    public User UpdateUser(User user) {
        System.out.println("反序列化:" + JSON.toJSONString(user));
        user.setName("Update Name");
        user.setAddTime(new Date());
        user.setId(22);
        return user;
    }
}

##Client:

public class Program {
    public static void main(String[] args) throws InterruptedException {
        StardustClient.setConfigCenterUrl("http://localhost:85"); //运行时初始化一次
        try {
            StardustClient node1Client = new StardustClient("node1", "1.2");
            User user = new User();
            user.setName("Update Name");
            user.setAddTime(new Date());
            user.setId(22);
            //返回JSON字符串
            //String json = node1Client.invoke("user", "UpdateUser", user); 
            //User result = JSON.parseObject(json, User.class);
            
            //可直接返回强类型
            User result=node1Client.invoke(User.class, "user", "UpdateUser", user);
            
            System.out.println(JSON.toJSONString(result));
        } catch (Exception exp) {
            System.out.println(exp.getMessage());
        }
    }
}
Java
1
https://gitee.com/loogn/stardust4j.git
git@gitee.com:loogn/stardust4j.git
loogn
stardust4j
Stardust4J
master

搜索帮助