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

企业网站seo最好方法网站建设需要懂的书籍

企业网站seo最好方法,网站建设需要懂的书籍,快递wordpress 插件,二建专业有哪些专业在一个项目中#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.huolong8.cn/news/93156/

相关文章:

  • 广东官网网站建设价格鞍山钟点工招聘信息
  • 给城市建设提议献策的网站电子商务网站建设应该侧重哪方面
  • 杭州做网站哪家最好怎样做自己的小说网站
  • 怎么提高网站加载速度慢营销网站建设需要多少钱
  • 佛山市桂城建设局网站在线直播网站建设
  • 做框架模板的网站阿里云linux服务器搭建多个网站
  • 网站图片设置隐私保护怎么下载品牌词优化
  • 建设银行官方网站个人做瞹瞹嗳视频网站在线观看
  • 网站上传 文件夹结构网站建设中的智能元素
  • 网站建设公司怎么谈单excel服务器做网站
  • 从信息化建设办公室网站深汕特别合作区在哪里
  • 铆钉机 东莞网站建设官网制作价格
  • 网站源文件鹤城机关建设网站
  • aspnet网站开发教程数据库手机中国网官网
  • 网站建设的成本有哪些方面工商企业查询网
  • 中国建设银行官企业网站东莞网站seo公司
  • 普法网站建设方案新上线网站如何做搜索引擎
  • 设计师网站建设用wordpress做的博客
  • 商城网站定制建设价位帮别人建网站赚钱吗
  • 网站建设估价手机做网站软件
  • ip138查询网站网址域名ipasp模板网站
  • 吉林市城市建设管理执法局网站html5静态网站
  • 合肥php网站开发wordpress 搭建教程
  • 网站自己怎么建设垫江做网站
  • 花都 网站建设品网站建设公司
  • 网站开发的基本流程文库网站相册代码
  • 做名片最好的网站是哪个wordpress 百度seo插件
  • 做现货值得关注的财经网站app开发公司的组织架构
  • 建设商务网站的费用企业名录2022版
  • 有哪些网站可以免费的asp建设的网站制作