请问,solaris有没有类似LVS+hearbeat 或LVS+keepalived这样的组合?

发布于 2022-09-04 19:31:34 字数 752 浏览 20 评论 9

大家好,请问,solaris有没有类似LVS+hearbeat 或LVS+keepalived这样的组合?

现在我需要整web cluser+mysql cluster,Linux下有多种方案可以做:
1. apache转发请求。不知道apache能不能搞mysql cluster。应该不能的。

2. LVS+hearbeat 或LVS+keepalived。在linux下,这是非常好的组合。
目前我有一个问题就是,www.xxx.com部署在2台realserver上,
但是www.xxx.com/rsm 这个rsm.war不支持cluster部署,只能放到一台realserver上。如果第一台server down了,第二台server会启动rsm.war程序。

在linux下,我可以用hearbeat 或keepalived 检测 www.xxx.com/rsm的健康状态,而达到VIP总是指向活着的那个realserver。

我想知道,solaris下,有没有对应的组合。非常急!

请大家给出建议,在线等。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

遗心遗梦遗幸福 2022-09-04 20:11:01

X86的sun cluster不收费呀

南…巷孤猫 2022-09-04 20:11:01

X86的sun cluster不收费呀
waily 发表于 2010-03-05 14:09

    真的么?

朦胧时间 2022-09-04 20:11:00

采用虚拟IP绑定的办法。

import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.util.Iterator;
import java.util.Vector;

public class VIPTestMain {
        public static void main(String args[])throws Exception{               
                addVirtualIP("10.80.1.218");
                Thread.sleep(5000);
                delVirtualIP("10.80.1.218");
        }

        /**
         * TODO: Only linux and SunOS are supported.
         *
         * @param vip
         * @throws Exception
         */
        public static void addVirtualIP(String vip)throws Exception{
                String ethernetCardDeviceName = getEthernetCardDeviceName();
                System.out.println("ethernetCardDeviceName="+ethernetCardDeviceName);
                //
                if(ethernetCardDeviceName==null){
                        return;
                }
                               
                String os_name = System.getProperty("os.name").toLowerCase();
                if(os_name.indexOf("sun")>=0 || os_name.indexOf("solaris")>=0){
                        String command1 = "ifconfig "+ethernetCardDeviceName.trim()+":1 plumb";
                        String command2 = "ifconfig "+ethernetCardDeviceName.trim()+":1 "+vip+" up";
                        System.out.println("command1="+command1);
                        System.out.println("command2="+command2);
                        Runtime.getRuntime().exec(command1);
                        Runtime.getRuntime().exec(command2);                       
                }else if(os_name.indexOf("linux")>=0){
                        String command = "ip addr add "+vip+"/32 dev "+ethernetCardDeviceName;
                        System.out.println("command="+command);
                        Runtime.getRuntime().exec(command);                       
                }
        }
        /**
         * TODO: Only linux and SunOS are supported.
         * @param vip
         * @throws Exception
         */
        public static void delVirtualIP(String vip)throws Exception{
                String ethernetCardDeviceName = getEthernetCardDeviceName();
                System.out.println("ethernetCardDeviceName="+ethernetCardDeviceName);
                //
                if(ethernetCardDeviceName==null){
                        return;
                }
                               
                String os_name = System.getProperty("os.name").toLowerCase();
                if(os_name.indexOf("sun")>=0 || os_name.indexOf("solaris")>=0){
                        String command = "ifconfig "+ethernetCardDeviceName.trim()+":1 unplumb";
                        System.out.println("command="+command);
                        Runtime.getRuntime().exec(command);
                }else if(os_name.indexOf("linux")>=0){
                        String command = "ip addr del "+vip+"/32 dev "+ethernetCardDeviceName;
                        System.out.println("command="+command);
                        Runtime.getRuntime().exec(command);                               
                }                       
        }
       
        /**
         * TODO: Only linux and SunOS are supported.
         * @return
         * @throws Exception
         */
        public static String getEthernetCardDeviceName()throws Exception{
                String os_name = System.getProperty("os.name").toLowerCase();
                String deviceName = null;
                //
                if(os_name.indexOf("sun")>=0 || os_name.indexOf("solaris")>=0){
                        String command = "ifconfig -a";
                        System.out.println("command="+command);
                       
                        Vector v = executeCommand(command);
                        //                       
                        Iterator it = v.iterator();
                        while(it.hasNext()){
                                String item = it.next().toString();
                                if(item!=null){
                                        item = item.trim().toLowerCase();
                                        if(item.indexOf("loopback")<0 && item.indexOf("broadcast")>=0){
                                                System.out.println("item="+item);
                                                if(item.indexOf(":")>=0){
                                                        deviceName = item.substring(0,item.indexOf(":")).trim();
                                                }
                                                break;
                                        }
                                }                               
                        }                       
                }else if(os_name.indexOf("linux")>=0){
                        String command = "ip addr show";
                        Vector v = executeCommand(command);
                        //               
                        /*String firstLine = v.get(0).toString().trim();
                        deviceName = firstLine.substring(0,firstLine.indexOf(" "));*/                       
                        Iterator it = v.iterator();
                        while(it.hasNext()){
                                String item = it.next().toString();
                                if(item!=null){
                                        item = item.trim().toLowerCase();
                                        if(item.indexOf("loopback")<0 && item.indexOf("broadcast")>=0){
                                                System.out.println("item="+item);
                                                String ss[] = item.split(":");
                                               
                                                if(ss.length>=3){
                                                        deviceName = ss[1].trim();
                                                }
                                                break;
                                        }
                                }                               
                        }
                }
               
                return deviceName;
        }
       
        public static Vector executeCommand(String command)throws Exception{
                Process pro =Runtime.getRuntime().exec(command);
                Vector v = new Vector();
                //
                InputStream in = pro.getInputStream();
                InputStreamReader isr = new InputStreamReader(pro.getInputStream());
                LineNumberReader reader = new LineNumberReader (isr);
                String line = null;
                while( (line=reader.readLine())!=null){
                        if(line!=null){
                                System.out.println("line="+line);
                                v.add(line);
                        }                         
                }
                System.out.println("=======================================");
                reader.close();
                isr.close();
                in.close();
               
                return v;
        }       
}

辞取 2022-09-04 20:11:00

大家好,请问,solaris有没有类似LVS+hearbeat 或LVS+keepalived这样的组合?

现在我需要整web cluser+m ...
lovechina 发表于 2010-03-04 11:05

    sun-cluster应该可以,不过这个是收费的!免费的open-ha,好象也能实现,具体没研究过!

嘴硬脾气大 2022-09-04 20:10:57

帮顶 围观
喊佛 发表于 2010-03-04 13:04

围观也很感谢呀!!!

乖乖公主 2022-09-04 20:10:50

帮顶 围观

腹黑女流氓 2022-09-04 20:09:35

我每30分钟来看一次。在线等。请大家帮忙!!!玩solaris的,就chinaunix有技术含量了。

⒈起吃苦の倖褔 2022-09-04 19:55:57

还有一个应用就是,某个java 程序server,在两台PC上运行,但是以master/slave的方式被访问。只有另外一个节点上的程序down掉【PC不见得会down】,那么我需要把Virtual IP绑定到这个slave机器上。在linux下,这都不是问题,solaris下,有对应的解决方案吗?

再比如,mysql cluster,有两个SQL节点对外提供服务,我想做一个VIP指向这两个节点,当某个节点down掉的时候,VIP就只指向这一个节点。这个问题,在soalris下,也没有解决方案!!!

solaris是不是真的没落了?

淤浪 2022-09-04 19:39:28

我搜过chinaunix,以及其他网站,都没有这种玩法。
请大家赐教!如果解决,我会把我的解决过程总结出来,帖这里。

我这种特殊场合在电信环境中整合别人的网管系统时,很容易出现,如果有解决方案我想对大家都有帮助的。
再次谢谢大家。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文