阿里java架构师是如何遇到问题,解决问题,举一反三的

问题出现:由于最近在着手实施应用容器内部署,碰到了一个坑,在docker中部署dubbo应用时,出现外部访问问题,折磨了很久,终于解决,估分享以供参考.

原先使用的是docker默认的网络设置bridge,启动dubbo时,会在注册中心zookeeper上把provider注册成为的docker的内部IP,同一宿主上的容器互访没有问题,但是这样宿主外的机器却无法访问.解决这个问题过程如下

方案一,改默认网络设置为host

聪明的读者看到这,已经能很快知道通过 docker run --net=host ... 实现容器绑定宿主ip可以解决外部访问的问题,在bing上搜到的仅有的两篇关于dubbo在docker内部署的文章,也是这么描述的。

但是,这满足不了我的要求,容器内应用要暴露的不仅仅只有dubbo的端口,还有些其它的端口,绑定了主机ip,会造成同一台宿主上的其它容器为了避免端口冲突,不得不修改暴露的端口号,问题扩散,所以放弃,当然,如果你打算一台宿主只部署一个容器,这个还是可以采用的

方案二,给docker 容器配置主机同域的ip地址

通过第三方工具pipework给容器分配固定ip,这个需要给容器配置网卡,并且需要对容器做些设置,操作过于复杂,考虑到部署以后要移交给公司的运维人员,并且移植性差,所以没有采用

方案三, 深度修改dubbo源码

dubbo 提供了host 配置来指定dubbo的服务ip,如果把host设为宿主的ip, 会出现netty绑定ip地址失败,应为容器内和宿主不通,如果一定要这样做,需要打通容器和宿主机器的ip,这又回到方案二了。

通过深度修改dubbo源码,可以实现用宿主的ip注册到zookeeper上,然后让netty启动服务时绑定容器内部ip,但考虑到dubbo已经是个相对稳定的工程,且代码量庞大,过度修改风险太大,我也不想改动太多,造成一些隐藏的bug,给产品带来风险。

方案四,配合docker,部分修改源码

思考良久后,决定只在dubbo 注册provider 时,把provider的ip地址替换成宿主机器ip,netty启动服务时绑定的还是内部IP, 外部应用访问时,通过宿主的端口映射访问容器内的服务。

具体做法就是,容器启动时,给容器添加namehost,修改源码(修改不超过20行),替换dubbo注册provider时的ip地址.

到此,这个问题终于解决了。

如果想学习Java工程化、高性能及分布式、深入浅出。微服务、架构、Spring,MyBatis,Netty源码分析的朋友可以加我的Java进阶群:694549689,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。

具有1-5工作经验的,面对目前流行的技术不知从何下手,需要突破技术瓶颈的可以加群。

在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的可以加群。

如果没有工作经验,但基础非常扎实,对java工作机制,常用设计思想,常用java开发框架掌握熟练的可以加群。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,657评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,662评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,143评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,732评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,837评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,036评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,126评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,868评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,315评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,641评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,773评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,859评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,584评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,676评论 2 351

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,637评论 18 139
  • 邵京是我自己的名字,我今天想对自己表白几件事。 —1— 亲爱的,你太爱哭了,遇到点事,你就会泪流满面。亲爱的,你要...
    小小京同学阅读 852评论 20 8
  • 最近,我对中国作家写的作品特别感兴趣,从余华,陈忠实的作品我可以看到中国农民生活的状态,他们既是朴实的也是自私的,...
    蓝琳琅阅读 599评论 0 1
  • 2017.6.22-25日四天,我参加了幸福家二阶的学习活动。 有"用"就有用,无"用"就无用!我...
    芷凡bonita阅读 272评论 0 2
  • 和九拍结缘是在两年前的夏天。2015年8月,我带着"五音不全"的儿子来到九拍。其实在此之前对打击乐一窍不通...
    清莯的天空阅读 650评论 0 1