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

flash网站模版网站开发工程师好不好

flash网站模版,网站开发工程师好不好,wordpress 做管理系统,长沙网络工程学院文章目录概念基于ServiceDiscovery实现服务自动注册和发现Service:服务基本信息InstanceDetails:封装实例用过来保存到zk中ServiceProvider#xff1a;服务提供者ServiceConsumer#xff1a;服务消费者运行基于ServiceDiscovery、ServiceCache实现服务自动注册和发现Registry… 文章目录概念基于ServiceDiscovery实现服务自动注册和发现Service:服务基本信息InstanceDetails:封装实例用过来保存到zk中ServiceProvider服务提供者ServiceConsumer服务消费者运行基于ServiceDiscovery、ServiceCache实现服务自动注册和发现Registry服务注册Registry接口ZookeeperRegistry基于zk 实现服务注册发现ServerInfo注册信息ServiceProviderByCache服务提供者ServiceComsumerByCache服务发现者概念 学习文章https://blog.csdn.net/qq_34021712/article/details/82887942 基于ServiceDiscovery实现服务自动注册和发现 Service:服务基本信息 package com.demo.rpc.curator;import java.util.List;/*** author: weijie* Date: 2020/9/27 16:32* Description: Service:方法、方法描述、方法参数*/ public class Service {private String methodName;private String desc;private ListString params;public String getMethodName() {return methodName;}public void setMethodName(String methodName) {this.methodName methodName;}public String getDesc() {return desc;}public void setDesc(String desc) {this.desc desc;}public ListString getParams() {return params;}public void setParams(ListString params) {this.params params;} } InstanceDetails:封装实例用过来保存到zk中 package com.demo.rpc.curator;import java.util.HashMap; import java.util.Map;public class InstanceDetails {//zk根节点路径public static final String ROOT_PATH /service;//该服务拥有哪些方法public MapString, Service services new HashMap();//服务描述private String serviceDesc;public InstanceDetails() {}public InstanceDetails(String serviceDesc, MapString, Service services) {this.services services;this.serviceDesc serviceDesc;}public static String getRootPath() {return ROOT_PATH;}public MapString, Service getServices() {return services;}public void setServices(MapString, Service services) {this.services services;}public String getServiceDesc() {return serviceDesc;}public void setServiceDesc(String serviceDesc) {this.serviceDesc serviceDesc;} } ServiceProvider服务提供者 package com.demo.rpc.curator;import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; import org.apache.curator.retry.ExponentialBackoffRetry; import org.apache.curator.x.discovery.*; import org.apache.curator.x.discovery.details.JsonInstanceSerializer;import java.io.IOException; import java.util.Arrays; import java.util.HashMap; import java.util.Map;public class ServiceProvider {public static void main(String[] args) throws Exception {CuratorFramework client CuratorFrameworkFactory.newClient(127.0.0.1:2181,2000,2000, new ExponentialBackoffRetry(1000, 3));client.start();client.blockUntilConnected();//服务构造器ServiceInstanceBuilderInstanceDetails serviceInstanceBuilder ServiceInstance.builder();//该服务中所有接口MapString, Service services new HashMap();Service addOrderService new Service();addOrderService.setDesc(添加订单);addOrderService.setMethodName(addOrder);addOrderService.setParams(Arrays.asList(uid, createTime, sid, status));services.put(addOrder, addOrderService);//添加删除订单服务接口Service delOrderService new Service();delOrderService.setDesc(删除订单);delOrderService.setMethodName(delOrder);delOrderService.setParams(Arrays.asList(sid));services.put(delOrder, delOrderService);InstanceDetails payload new InstanceDetails(订单服务, services);//将服务添加到ServiceInstanceServiceInstanceInstanceDetails orderService serviceInstanceBuilder.address(127.0.0.1).port(8080).name(OrderService).payload(payload).uriSpec(new UriSpec({scheme}://{address}:{port})).build();//构建ServiceDiscovery用来做服务发现ServiceDiscoveryInstanceDetails serviceDiscovery ServiceDiscoveryBuilder.builder(InstanceDetails.class).client(client).serializer(new JsonInstanceSerializerInstanceDetails(InstanceDetails.class)).basePath(InstanceDetails.ROOT_PATH).build();//服务注册serviceDiscovery.registerService(orderService);serviceDiscovery.start();System.out.println(服务注册成功);//创建钩子方法正常关闭Runtime.getRuntime().addShutdownHook(new Thread(() - {try {serviceDiscovery.close();client.close();} catch (IOException e) {e.printStackTrace();}System.out.println(shutdown hook...);}));//保持服务运行状态ServiceProvider serviceProvider new ServiceProvider();synchronized (serviceProvider){serviceProvider.wait();}}} ServiceConsumer服务消费者 package com.demo.rpc.curator;import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; import org.apache.curator.retry.ExponentialBackoffRetry; import org.apache.curator.x.discovery.ServiceDiscovery; import org.apache.curator.x.discovery.ServiceDiscoveryBuilder; import org.apache.curator.x.discovery.ServiceInstance; import org.apache.curator.x.discovery.details.JsonInstanceSerializer;import java.util.Collection; import java.util.Map; import java.util.Set; import java.util.concurrent.TimeUnit;public class ServiceConsumer {public static void main(String[] args) throws Exception {CuratorFramework client CuratorFrameworkFactory.newClient(127.0.0.1:2181, new ExponentialBackoffRetry(1000, 3));client.start();client.blockUntilConnected();//构建ServiceDiscovery用来做服务发现ServiceDiscoveryInstanceDetails serviceDiscovery ServiceDiscoveryBuilder.builder(InstanceDetails.class).client(client).basePath(InstanceDetails.ROOT_PATH).serializer(new JsonInstanceSerializerInstanceDetails(InstanceDetails.class)).build();serviceDiscovery.start();//模拟请求调用服务while (true) {CollectionServiceInstanceInstanceDetails orderServices serviceDiscovery.queryForInstances(OrderService);if (orderServices.size() 0) {System.out.println(当前没有发现服务);TimeUnit.SECONDS.sleep(10);continue;}for (ServiceInstanceInstanceDetails service : orderServices) {//获取请求的scheme 例如http://127.0.0.1:8080String uriSpec service.buildUriSpec();//获取服务的其他信息InstanceDetails payload service.getPayload();//服务描述String serviceDesc payload.getServiceDesc();//获取该服务下的所有接口MapString, Service allService payload.getServices();SetMap.EntryString, Service entries allService.entrySet();for (Map.EntryString, Service entry : entries) {System.out.println(serviceDesc uriSpec / service.getName() / entry.getKey() 该方法需要的参数为 entry.getValue().getParams().toString());}}System.out.println(---------------------);Thread.sleep(5 * 1000);}}} 运行 基于ServiceDiscovery、ServiceCache实现服务自动注册和发现 Registry服务注册Registry接口 package com.demo.rpc.curator;import org.apache.curator.x.discovery.ServiceInstance;import java.util.List;public interface RegistryT {void registerService(ServiceInstanceT service) throws Exception;void unRegisterService(ServiceInstanceT service) throws Exception;ListServiceInstanceT queryForInstances(String name) throws Exception;} ZookeeperRegistry基于zk 实现服务注册发现 package com.demo.rpc.curator;import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; import org.apache.curator.retry.ExponentialBackoffRetry; import org.apache.curator.x.discovery.ServiceCache; import org.apache.curator.x.discovery.ServiceDiscovery; import org.apache.curator.x.discovery.ServiceDiscoveryBuilder; import org.apache.curator.x.discovery.ServiceInstance; import org.apache.curator.x.discovery.details.InstanceSerializer; import org.apache.curator.x.discovery.details.JsonInstanceSerializer;import java.util.List; import java.util.stream.Collectors;public class ZookeeperRegistryT implements Registry{private InstanceSerializer serializer new JsonInstanceSerializer(ServerInfo.class);private ServiceDiscoveryT serviceDiscovery;private ServiceCacheT serviceCache;private String ROOT /dubbo-demo;private String serviceName demoService;private String host;public ZookeeperRegistry(String host) {this.host host;}public void start() throws Exception{CuratorFramework client CuratorFrameworkFactory.newClient(this.host, new ExponentialBackoffRetry(1000, 5));client.start();serviceDiscovery ServiceDiscoveryBuilder.builder(ServerInfo.class).client(client).basePath(ROOT).serializer(serializer).build();serviceDiscovery.start();//监听zk节点信息变化方便后续的读取serviceCache serviceDiscovery.serviceCacheBuilder()//多个serviceName如何监听??.name(serviceName).build();serviceDiscovery.start();serviceCache.start();}Overridepublic void registerService(ServiceInstance service) throws Exception {serviceDiscovery.registerService(service);}Overridepublic void unRegisterService(ServiceInstance service) throws Exception {serviceDiscovery.unregisterService(service);}/*** param name* return 根据name查询缓存数据* throws Exception*/Overridepublic ListServiceInstance queryForInstances(String name) throws Exception {return serviceCache.getInstances().stream().filter(s - s.getName().equals(name)).collect(Collectors.toList());} } ServerInfo注册信息 package com.demo.rpc.curator;import java.io.Serializable;public class ServerInfo implements Serializable {private String host;private int port;public ServerInfo() {}public ServerInfo(String host, int port) {this.host host;this.port port;}public String getHost() {return host;}public void setHost(String host) {this.host host;}public int getPort() {return port;}public void setPort(int port) {this.port port;}Overridepublic String toString() {return ServerInfo{ host host \ , port port };} }ServiceProviderByCache服务提供者 package com.demo.rpc.curator;import org.apache.curator.x.discovery.ServiceInstance;public class ServiceProviderByCache {public static void main(String[] args) throws Exception {ZookeeperRegistryServerInfo zookeeperRegistry new ZookeeperRegistry(127.0.0.1:2181);zookeeperRegistry.start();ServerInfo serverInfo new ServerInfo(127.0.0.1, 8080);zookeeperRegistry.registerService(ServiceInstance.builder().name(demoService).payload(serverInfo).build());synchronized (ServiceProviderByCache.class){ServiceProviderByCache.class.wait();}}} ServiceComsumerByCache服务发现者 package com.demo.rpc.curator;import org.apache.curator.x.discovery.ServiceInstance;import java.util.List;public class ServiceComsumerByCache {public static void main(String[] args) throws Exception {ZookeeperRegistryServerInfo zookeeperRegistry new ZookeeperRegistry(127.0.0.1:2181);zookeeperRegistry.start();// while (true){ListServiceInstance serviceInstances zookeeperRegistry.queryForInstances(demoService);for (ServiceInstance serviceInstance : serviceInstances){System.out.println(serviceInstance.getPayload().toString());} // }}}
http://www.huolong8.cn/news/102339/

相关文章:

  • 建设一个网站app需要多少钱廊坊seo排名公司
  • 网站建设情况 报告梅州建站多少钱
  • 郑州网站制作十年乐云seo呼市网站设计
  • 新建网站百度搜不到wordpress 405
  • 传奇手游开服网站响应式网站的组成
  • 网站设置文件夹权限机械网站建设方案
  • 网站制做网页突然无法访问
  • 创建网站平台要多少钱滨江网站建设公司
  • 网站建设系企业网站推广效果指标分析
  • 免费模板下载网站推荐国外黄冈网站推广软件有哪些
  • 网站内链怎么删除上海做网站 公司 哪家好
  • 南宁世尊商贸网站建设二级建造师报考条件2021考试时间
  • 可信网站身份验证哈尔滨门户网站制作哪家好
  • 服装公司网站网页设计平台开发多少钱
  • 电子商务推广网站铜陵公司做网站
  • 培训网站完整页面宝安高端网站建设公司
  • 网站系统解决方案经典 wordpress主题下载
  • 经营网站备案信息做网站公司销售开场白
  • app如何推广以及推广渠道天津seo结算
  • 免费域名模板建站关于建设门户网站的请示
  • 有没有不花钱建设网站的方法wordpress更改ip地址
  • 甘肃省城乡与建设厅网站首页wordpress空间清理
  • 研究院 网站建设一般网站要多大的空间
  • 公司做网站能抵扣进项税吗洛阳网官网
  • 设计与绘制一个网站首页做网站版权所有怎么写
  • 什么网站专门做境外当地游剑阁住房和城乡建设厅网站
  • 网站怎么做留言板天元建设集团电话
  • 意识形态建设专题网站专门找图片素材的网站
  • 手机微信可以做网站吗html音乐网页完整代码
  • 男鞋 东莞网站建设wordpress防黑