javahost(JVM虚拟DNS)解决hosts程序中hosts配置问题
最近做HBase项目,需要配置hosts,在本地运行很方便,自己直接配置本地文件hosts就可以。但是项目要上线发布,其他团队成员要使用等等,我是否都要告诉他们怎么配置hosts问题,这样太麻烦,因此我试着寻求另一种解决方案。
如果在不同的运行环境访问不同的数据源服务器,为了方便切换是否使用域名替代IP?如果使用域名的话,在开发环境就需要配置hosts文件。我希望可以不用修改hosts文件就可直接运行程序。通过我的努力,终于找到了javahost(JVM虚拟DNS)来帮我解决这些烦恼。
1、配置maven依赖
在pom.xml加入
<dependency><groupId>io.leopard</groupId><artifactId>javahost</artifactId><version>0.9.6</version>
</dependency>
如果是非maven用户,可以通过以下链接下载jar包.
io.leopard:javahost:0.9.6
2、编写hosts.propertie(src/main/resources/hosts.propertie)或者在类中定义
(1)hosts.propertie
user.mysql.guides.leopard.io=127.0.0.1
spark-01 10.10.xxx.xxx
spark-02 10.10.xxx.xxx
(2)HBaseHosts
public class HBaseHosts {private static Properties props = new Properties();static {props.put("spark-01", "10.10.xxx.xxx");props.put("spark-02", "10.10.xxx.xxx");props.put("spark-03", "10.10.xxx.xxx");props.put("spark-04", "10.10.xxx.xxx"); }public static void getJavaHost(){JavaHost.updateVirtualDns(props);}}
3、设置虚拟DNS
(1)
public class HostsTest {private static void loadDns() throws IOException {Resource resource = new ClassPathResource("/hosts.properties");Properties props = PropertiesLoaderUtils.loadProperties(resource);JavaHost.updateVirtualDns(props);}public static void main(String[] args) throws Exception {loadDns();JavaHost.printAllVirtualDns();// 打印所有虚拟DNS记录System.out.println("IP:" + InetAddress.getByName("user.mysql.guides.leopard.io").getHostAddress());// 验证一下解析是否正确JettyServer.start();// 启动Jetty服务器}}
(2)
public class HBaseUtil {private static Configuration conf;static {System.setProperty("hadoop.home.dir", Thread.currentThread().getContextClassLoader().getResource("hadoop-common-220-bin-master").getPath());HBaseHosts.getJavaHost();conf = HBaseConfiguration.create();conf.set("hbase.zookeeper.quorum", "");conf.set("hbase.zookeeper.property.clientPort", "2181");conf.set("zookeeper.znode.parent", "/hbase");conf.set("hbase.client.retries.number", "1");//default 35conf.set("hbase.rpc.timeout", "3000");//default 60sconf.set("hbase.rpc.shortoperation.timeout", "3000");}public static Configuration getHbaseConnection() {return conf;}}
参考链接:javahost(JVM虚拟DNS)解决hosts程序中hosts配置问题
javahost(JVM虚拟DNS)解决hosts程序中hosts配置问题相关推荐
- 解决WPF程序中ListBox ItemsSource变化时不重置ScrollBar的问题
解决WPF程序中ListBox ItemsSource变化时不重置ScrollBar的问题 参考文章: (1)解决WPF程序中ListBox ItemsSource变化时不重置ScrollBar的问题 ...
- IDE解决算法4中环境配置问题algs.jar
IDE解决算法4中环境配置问题algs.jar 首先我们要下载algs.jar 提取码:wsug ,这个东西官网是访问的慢而且CSDN大部分都要花币,我也是找了好久才找到的.我就直接给pan链接了. ...
- 如何解决”/”应用程序中的服务器错误
如果你在做项目的时候出现了这样的错误,也就是我们在页面传参数的时候,传了个空值给控制器,它就会报这样的错误. 如果我们允许那个参数为空呢?也就是在int后加个问号 Int?:接收的参数允许为空. 这样 ...
- 解决树莓派程序中的中文乱码问题
当我们在使用树莓派的时候,有时候需要将外部的程序放到树莓派中运行,而当我们的程序中含有中文是,一般在树莓派下会变成乱码,这时候我们要将树莓派中的乱码进行修改,但是相信大家会遇到一个问题: 就是明明 ...
- mysql providername_providername是什么 如何解决数据库切换中DBProviderName配置问题
providername是什么,如何配置?解读数据库切换中DBProviderName配置问题? 为了适应应对各种数据库间切换,有时需要自定义写一个通用的SqlHelper.常用的做法就是在Syste ...
- 一次性解决Java程序中的乱码问题
java在字符串中统一用Unicode表示. 对于任意一个字符串:String string = "测试字符串"; 如果源文件是GBK编码,操作系统默认环境编码也为GBK,那么编译 ...
- wangEditor关闭粘贴样式的过滤,解决小程序中xml溢出报错问题
从别的网页上复制文本,粘贴到wangEditor富文本编辑器中,因为wangEditor自带粘贴样式过滤,粘贴过来的样式会被编辑器过滤掉,文章中有很多xml的标签,小程序解析时就会出现报错. 解决办法 ...
- android 调用百度sdk后运行不了,解决android程序中oncreate方法中调用百度地图MKSearchListener接口不执行的问题...
因为工作的需要,我在做软件的时候用到地图,并且需要从地图中搜索公交.商户等信息,因此选择百度地图.百度地图搜索的poi搜索正好符合我的需求,但是软件完成后发现在软件第一次执行的时候总是出错,百度地图无 ...
- 解决centos7虚拟机中网络配置问题
进入到虚拟机后, 编辑ifcfg-ens33 如果不知道地址可以先搜索找到地址然后进入 将bootproto改为 bootproto=static 将onboot改为 onboot=yes 添加 ip ...
最新文章
- YOLOV4知识点分析(二)
- lldb调试使用python脚本问题总结
- 收货地址 - 删除收货地址
- copy与mutableCopy的区别总结
- Oracle建立全文索引详解
- vue限制点击次数_解决vue 按钮多次点击重复提交数据问题
- hibernate mysql 配置文件_hibernate 框架的配置文件和映射文件以及详解
- java pic 通信_dsPic33E:RS485通信问题
- java log4j 相对路径_log4j中配置日志文件相对路径[续集]
- 网易考拉的服务架构如何从单体应用走向微服务化? | 技术头条
- AtomicLong并发编程
- purcell的emacs配置中的自动补全功能开启
- html php交互json 结果集,基于HTML模板和JSON数据的JavaScript交互(移动端)
- MatLab 求平均值,方差,标准差
- 基于php和mysql的网上购物系统设计与实现_基于PHP+MySQL的网上购物系统设计与实现...
- 在keil中创立一个头文件
- iOS微信第三方登录实现
- 20款简洁独特的logo设计
- Qt美化之基础控件美化
- docker php 环境实操