起因

更换电脑,dubbo服务不能调试,win7电脑好使,win10不行

分析

经过调试发现注册的ip地址,不是VPN分配的地址,多方面查找资料说ip排序的问题,尝试一下方法:

  • 网络连接重新命名成一样的
  • 设置网络活跃点数
  • 2台电脑java版本安装一致

以上测试都不能解决,于是调试代码,发现NetUtils获取网卡是直接取的第一块网卡的地址,由于是静态对象,这样启动的时候,根据自己的规则先获取下,赋个初值就可以了,代码如下:

package com.masg.test;

import com.alibaba.dubbo.common.utils.NetUtils;
import com.alibaba.dubbo.container.Main; import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.UnknownHostException;
import java.util.Enumeration;
import java.util.regex.Pattern; public class StartMain { public static void setFinalStatic(Field field, Object newValue) throws Exception {
field.setAccessible(true);
Field modifiersField = Field.class.getDeclaredField("modifiers");
modifiersField.setAccessible(true);
modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
field.set(null, newValue);
} public static InetAddress getLocalHost() throws UnknownHostException {
Pattern IP_PATTERN = Pattern.compile("\\d{1,2}(\\.\\d{1,3}){3,5}$");
try {
Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
if (interfaces != null) {
while (interfaces.hasMoreElements()) {
NetworkInterface network = (NetworkInterface) interfaces.nextElement();
Enumeration<InetAddress> addresses = network.getInetAddresses();
if (addresses != null) {
while (addresses.hasMoreElements()) {
InetAddress address = (InetAddress) addresses.nextElement();
if (address != null && !address.isLoopbackAddress()) {
String name = address.getHostAddress();
if (name != null && !"0.0.0.0".equals(name) && !"127.0.0.1".equals(name) && IP_PATTERN.matcher(name).matches()) {
return address;
}
}
}
}
}
}
} catch (Throwable var8) {
}
return null;
} public static void main(String[] args) throws Exception {
NetUtils net = new NetUtils();
InetAddress address = getLocalHost(); Class<NetUtils> netUtilsClass = (Class<NetUtils>) net.getClass();
Field LOCAL_ADDRESS = netUtilsClass.getDeclaredField("LOCAL_ADDRESS");
setFinalStatic(LOCAL_ADDRESS, address); System.setProperty("dubbo.protocol.dubbo.host", address.getHostAddress()); Main.main(args);
}
}

dubbo服务多网卡IP问题的更多相关文章

  1. (转)淘淘商城系列——引用dubbo服务

    http://blog.csdn.net/yerenyuan_pku/article/details/72758663 上文我们一起学习了如何发布一个dubbo服务,本文我就来教大家如何在web工程中 ...

  2. 每日一技|巧用 Telnet 调试 Dubbo 服务

    个人博客地址 studyidea.cn,点击查看更多原创文章 0x00. 前言 想象这样一个场景,线上某个服务突发异常,导致上游服务调用异常,数据处于中间状态.服务恢复之后,我们需要修复这笔数据至正常 ...

  3. Dubbo 服务 IP 注册错误踩坑经历

    个人博客地址 studyidea.cn,点击查看更多原创文章 踩坑 公司最近新建一个机房,需要将现有系统同步部署到新机房,部署完成之后,两地机房同时对提供服务.系统架构如下图: 这个系统当前对外采用 ...

  4. 监控与管理dubbo服务

    Dubbo是阿里多年前开源的一套服务治理框架,在众多互联网企业里应用广泛.本文介绍了一些如何监控与管理dubbo服务.使用的工具与<dubbox 的各种管理和监管>大致相同,本文更侧重于命 ...

  5. Dubbo 服务导出-Version2.7.5

    1.源码分析 1.1分析服务导出入口 当容器为spring是dubbo会为容器注册两个监听器:DubboLifecycleComponentApplicationListener和DubboBoots ...

  6. Dubbo_创建Dubbo服务并在ZooKeeper注册,然后通过Jar包执行

    一.安装ZooKeeper(略) 二.创建Dubbo服务  1.DemoService 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ...

  7. 改动网卡IP信息

    改动网卡IP信息的情况有非常多种,只是从大体上能够分为两种,一种是暂时改动,重新启动网络服务后改动便会失效:一种是永久改动,重新启动网络服务后才会生效.一般暂时改动应用在暂时的动作中,我们通过分类名字 ...

  8. Tomcat中部署web应用 ---- Dubbo服务消费者Web应用war包的部署

    样例视频:http://www.roncoo.com/course/view/f614343765bc4aac8597c6d8b38f06fd IP: 192.168.2.61 部署容器:apache ...

  9. dubbo服务治理中间件,zookeeper注册中心

    对传统项目架构进行拆分: 集群概念: 面向服务分布式架构: 服务层提供被注册的对象需要实现序列化接口Serializable: 配置表现层和服务层: 依赖包: 服务层: <!-- 定义dubbo ...

  10. dubbo服务的发布和调用

    Dubbo是分布式服务架构,是一个优秀的开源服务型框架,使得应用可以通过高性能的rpc实现服务的输入和输出功能.其实dubbo就是资源调度和治理中心的管理工具. 发布dubbo服务:在提供服务的应用中 ...

随机推荐

  1. pypi镜像-清华

    临时使用 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package 注意,simple 不能少, 是 https 而不是 ...

  2. ASP.NET MVC 返回文件

    将文件写入Response public ActionResult Zip() { string fname = Server.MapPath("~\\App_Data\\TestDB.zi ...

  3. div+css CSS基本

        • css 高度(height) • css 宽度(width)   · • css 边框(border)   · • css 背景(background)   · • css 浮动(floa ...

  4. PHP开启缓存加速

     PHP默认会将Operate Code文件丢弃,缓存加速是将其保存下来,放置共享内存中,以便在下次调用该PHP页面时重用,避免相同代码的重复编译 __________________________ ...

  5. vulnhub:Victim01靶机

    kali:192.168.111.111 靶机:192.168.111.170 信息收集 端口扫描 nmap -A -v -sV -T5 -p- --script=http-enum 192.168. ...

  6. zabbix 监控域名到期时间

    cat userparameter_http.conf UserParameter=http_discovery,/usr/bin/python /etc/zabbix/scripts/base/ht ...

  7. DDD(一)微服务、领域驱动设计、领域模型

    DDD(一)微服务.领域驱动设计.领域模型 如果觉得样式不好:跳转即可 http://www.lifengying.site/(md文件复制过来有些样式会不一样) 什么是微服务 单体结构项目 优点:结 ...

  8. Vmware 虚拟机Ubuntu系统,解决忘记用户名和密码解决办法

    1.在开机界面按住shift,会加载grub的启动界面,找到Advaced options for Ubuntu选项.按"e" 进入编辑模式. 2.光标移动至ro,改为rw,(Li ...

  9. 047_SOQL 基本查询总结

    User currentUser = [SELECT Id, Profile.Name,UserRole.Name FROM User WHERE Id = :UserInfo.getUserId() ...

  10. Sql Server 服务无法正常启动,126异常

    SQL Server 一记 异常信息 方法/步骤 打开[开始菜单]找到软件SQL Server下面的[配置管理器] 可以看到数据库主服务是 '停止' 状态: ![数据库主服务 展开[SQL Serve ...