当前位置: 首页 > news >正文

二级域名怎么做网站浙江建设干部学校网站

二级域名怎么做网站,浙江建设干部学校网站,莱芜区平台公司,wordpress做成app在一个项目中#xff0c;我正在私有云中设置Hazelcast集群。 在群集内#xff0c;所有节点都必须互相看见#xff0c;因此在引导过程中#xff0c;Hazelcast将尝试查找其他群集成员。 没有服务器#xff0c;并且所有节点都相等。 在Hazelcast中实现了多种发现成员的技术。… 在一个项目中我正在私有云中设置Hazelcast集群。 在群集内所有节点都必须互相看见因此在引导过程中Hazelcast将尝试查找其他群集成员。 没有服务器并且所有节点都相等。 在Hazelcast中实现了多种发现成员的技术。 不幸的是它不是AWS因此我们无法使用EC2自动发现并且组播被阻止因此内置的组播支持无用。 最后一种选择是TCP / IP群集 其中所有节点的地址都需要在XML配置中进行硬编码 tcp-ip enabledtruemembermachine1/membermembermachine2/membermembermachine3:5799/membermember192.168.1.0-7/membermember192.168.1.21/member /tcp-ip 这不能很好地扩展我们的云中的节点也是动态分配的因此不可能在运行前确定地址。 在这里我在下面展示基于Curator Service Discovery和ZooKeeper的概念证明。 首先让我们跳过普通的旧Java代码中的hazelcast.xml配置和引导集群 Configuration public class HazelcastConfiguration {Bean(destroyMethod shutdown)HazelcastInstance hazelcast(Config config) {return Hazelcast.newHazelcastInstance(config);}BeanConfig config(ApplicationContext applicationContext, NetworkConfig networkConfig) {final Config config new Config();config.setNetworkConfig(networkConfig);config.getGroupConfig().setName(applicationContext.getId());return config;}BeanNetworkConfig networkConfig(Value(${hazelcast.port:5701}) int port, JoinConfig joinConfig) {final NetworkConfig networkConfig new NetworkConfig();networkConfig.setJoin(joinConfig);networkConfig.setPort(port);return networkConfig;}BeanJoinConfig joinConfig(TcpIpConfig tcpIpConfig) {final JoinConfig joinConfig disabledMulticast();joinConfig.setTcpIpConfig(tcpIpConfig);return joinConfig;}private JoinConfig disabledMulticast() {JoinConfig join new JoinConfig();final MulticastConfig multicastConfig new MulticastConfig();multicastConfig.setEnabled(false);join.setMulticastConfig(multicastConfig);return join;}BeanTcpIpConfig tcpIpConfig(ApplicationContext applicationContext, ServiceDiscoveryVoid serviceDiscovery) throws Exception {final TcpIpConfig tcpIpConfig new TcpIpConfig();final ListString instances queryOtherInstancesInZk(applicationContext.getId(), serviceDiscovery);tcpIpConfig.setMembers(instances);tcpIpConfig.setEnabled(true);return tcpIpConfig;}private ListString queryOtherInstancesInZk(String name, ServiceDiscoveryVoid serviceDiscovery) throws Exception {return serviceDiscovery.queryForInstances(name).stream().map(ServiceInstance::buildUriSpec).collect(toList());}} 我使用applicationContext.getId()避免对应用程序名称进行硬编码。 在Spring Boot中可以用--spring.application.name...替换它config.getGroupConfig().setName(...)为集群config.getGroupConfig().setName(...)分配名称也是一个好主意–这将允许我们运行多个集群在同一网络中即使启用了多播也是如此。 最后一个方法queryOtherInstancesInZk()最有趣。 创建TcpIpConfig我们手动提供其他群集成员所在的TCP / IP地址列表。 我们不是硬编码此列表如上面的XML示例而是从Curator查询ServiceDiscovery 。 我们请求应用程序的所有实例并将其传递给TcpIpConfig 。 在进入Curator配置之前只需几句话就可以解释Hazelcast如何使用TCP / IP配置。 显然并非所有节点都同时启动。 当第一个节点启动时Curator几乎不会返回一个实例我们自己因此群集将只有一个成员。 当第二个节点启动时它将看到已经启动的节点并尝试与之形成集群。 显然第一个节点将发现刚刚连接到它的第二个节点。 归纳继续进行-当更多的节点启动时它们从Curator服务发现中获取现有节点并加入它们。 Hazelcast会通过从群集中删除成员并重新平衡数据来避免成员的虚假崩溃。 另一方面馆长会将其从ZooKeeper中删除。 好吧现在ServiceDiscoveryVoid来自哪里 这是完整的配置 Configuration public class CuratorConfiguration {BeanWithLifecycleServiceDiscoveryVoid serviceDiscovery(CuratorFramework curatorFramework, ServiceInstanceVoid serviceInstance) throws Exception {return ServiceDiscoveryBuilder.builder(Void.class).basePath(hazelcast).client(curatorFramework).thisInstance(serviceInstance).build();}BeanWithLifecycleCuratorFramework curatorFramework(Value(${zooKeeper.url:localhost:2181}) String zooKeeperUrl) {ExponentialBackoffRetry retryPolicy new ExponentialBackoffRetry(1000, 3);return CuratorFrameworkFactory.newClient(zooKeeperUrl, retryPolicy);}BeanServiceInstanceVoid serviceInstance(Value(${hazelcast.port:5701}) int port, ApplicationContext applicationContext) throws Exception {final String hostName InetAddress.getLocalHost().getHostName();return ServiceInstance.Voidbuilder().name(applicationContext.getId()).uriSpec(new UriSpec({address}:{port})).address(hostName).port(port).build();}} 默认情况下Hazelcast监听5701但是如果指定的端口被占用它将尝试后续端口。 启动时我们在Curator中注册自己提供主机名和Hazelcast端口。 当我们的应用程序的其他实例启动时他们将看到先前注册的实例。 当应用程序出现故障时Curator将使用ZooKeeper中的临时节点机制注销我们的注册。 顺便说一句BeanWithLifecycle不是来自Spring或Spring Boot我自己创建了它以避免重复 Target({METHOD, ANNOTATION_TYPE}) Retention(RUNTIME) Bean(initMethod start, destroyMethod close) interface BeanWithLifecycle { } 运行ZooKeeper默认情况下在localhost:2181 我们可以启动任意数量的节点它们将很快相互找到对方。 唯一的共享信息是ZooKeeper URL。 翻译自: https://www.javacodegeeks.com/2014/12/hazelcast-member-discovery-using-curator-and-zookeeper.html
http://www.pierceye.com/news/250460/

相关文章:

  • 山西山西省建设厅网站首页哪个网站做分享赚佣金
  • 曲靖网站制作一条龙赣州章贡区邮政编码是多少
  • 海南省网站设计公司网址百度小说风云榜排名
  • 刷网站关键词排名原理寮步建设网站
  • 银川网站建设一条龙服务服装行业网站模板
  • 重庆建站程序建筑网站起名
  • 便宜网站制作wordpress函数手册
  • 适合在家做的网站工作做音乐网站要求
  • 在哪个网站做视频赚钱的建设彩票网站需要多少投资
  • 大连网站建设意动科技推荐做那个的电影网站
  • 博达 网站群建设wordpress打开乱码
  • 电商网站建设代理商定制网站开发介绍图
  • 网站系统问题解决措施上海网站建设系
  • c 做网站简单吗ui设计需要学什么软件
  • 网站建设app开发公司国内免备案空间
  • nas 支持做网站dedecms 做影网站
  • 网上商城网站模板广州建设技术职业学院
  • 养生网站模板下载山东网站建设哪家专业
  • 最新电子产品网站模板网站建设公司 腾佳
  • 跟公司产品做网站用什么程序做网站最好优化
  • 在线代理网页浏览网站山东省城乡住房建设厅网站
  • 网站建设需准备什么彩页模板图片
  • 怎么用网站源码建站网站换空间步骤
  • 酒店网站开发回扣商丘企业网站建设服务
  • 网站建设策划解决方案河北自助建站系统平台
  • 有没有做高仿手表的网站设计师的职责
  • struts2 做的网站seo公司怎样找客户
  • 帮别人做网站赚钱吗中山快速建站合作
  • 保靖网站建设做网站要运用到代码吗
  • 我用织梦5.7做个网站应该把淘宝客店铺链接放到哪frontpage可以制作网页吗